From a997868379732a25e866b94f1c9ea23024f93503 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Fri, 12 Jan 2024 11:56:12 +0100 Subject: [PATCH 01/10] updated opeanapi specs --- api/specs/web-server/_projects_nodes.py | 48 ++++--- .../api/v0/openapi.yaml | 124 +++++++++++++++++- 2 files changed, 147 insertions(+), 25 deletions(-) diff --git a/api/specs/web-server/_projects_nodes.py b/api/specs/web-server/_projects_nodes.py index 820af51c595..88b70c802fc 100644 --- a/api/specs/web-server/_projects_nodes.py +++ b/api/specs/web-server/_projects_nodes.py @@ -6,12 +6,14 @@ from _common import assert_handler_signature_against_model from fastapi import APIRouter, status +from models_library.api_schemas_directorv2.dynamic_services import DynamicServiceGet from models_library.api_schemas_long_running_tasks.tasks import TaskGet from models_library.api_schemas_webserver.projects_nodes import ( NodeCreate, NodeCreated, NodeGet, NodeGetIdle, + NodeGetUnknown, NodeRetrieve, NodeRetrieved, ServiceResourcesDict, @@ -44,20 +46,16 @@ response_model=Envelope[NodeCreated], status_code=status.HTTP_201_CREATED, ) -def create_node(project_id: str, body: NodeCreate): +def create_node(project_id: str, body: NodeCreate): # noqa: ARG001 ... @router.get( "/projects/{project_id}/nodes/{node_id}", - response_model=Envelope[NodeGet | NodeGetIdle], - # responses={"idle": {"model": NodeGetIdle}}, TODO: check this variant + response_model=Envelope[NodeGetIdle | NodeGetUnknown | DynamicServiceGet | NodeGet], ) -def get_node( - project_id: str, - node_id: str, -): - pass +def get_node(project_id: str, node_id: str): # noqa: ARG001 + ... @router.delete( @@ -65,15 +63,17 @@ def get_node( response_model=None, status_code=status.HTTP_204_NO_CONTENT, ) -def delete_node(project_id: str, node_id: str): - pass +def delete_node(project_id: str, node_id: str): # noqa: ARG001 + ... @router.post( "/projects/{project_id}/nodes/{node_id}:retrieve", response_model=Envelope[NodeRetrieved], ) -def retrieve_node(project_id: str, node_id: str, _retrieve: NodeRetrieve): +def retrieve_node( + project_id: str, node_id: str, _retrieve: NodeRetrieve # noqa: ARG001 +): ... @@ -82,7 +82,7 @@ def retrieve_node(project_id: str, node_id: str, _retrieve: NodeRetrieve): status_code=status.HTTP_204_NO_CONTENT, response_model=None, ) -def start_node(project_id: str, node_id: str): +def start_node(project_id: str, node_id: str): # noqa: ARG001 ... @@ -90,7 +90,7 @@ def start_node(project_id: str, node_id: str): "/projects/{project_id}/nodes/{node_id}:stop", response_model=Envelope[TaskGet], ) -def stop_node(project_id: str, node_id: str): +def stop_node(project_id: str, node_id: str): # noqa: ARG001 ... @@ -99,7 +99,7 @@ def stop_node(project_id: str, node_id: str): response_model=None, status_code=status.HTTP_204_NO_CONTENT, ) -def restart_node(project_id: str, node_id: str): +def restart_node(project_id: str, node_id: str): # noqa: ARG001 """Note that it has only effect on nodes associated to dynamic services""" @@ -112,16 +112,18 @@ def restart_node(project_id: str, node_id: str): "/projects/{project_id}/nodes/{node_id}/resources", response_model=Envelope[ServiceResourcesDict], ) -def get_node_resources(project_id: str, node_id: str): - pass +def get_node_resources(project_id: str, node_id: str): # noqa: ARG001 + ... @router.put( "/projects/{project_id}/nodes/{node_id}/resources", response_model=Envelope[ServiceResourcesDict], ) -def replace_node_resources(project_id: str, node_id: str, _new: ServiceResourcesDict): - pass +def replace_node_resources( + project_id: str, node_id: str, _new: ServiceResourcesDict # noqa: ARG001 +): + ... # @@ -134,7 +136,9 @@ def replace_node_resources(project_id: str, node_id: str, _new: ServiceResources response_model=Envelope[_ProjectGroupAccess], summary="Check whether provided group has access to the project services", ) -async def get_project_services_access_for_gid(project_id: ProjectID, for_gid: GroupID): +async def get_project_services_access_for_gid( + project_id: ProjectID, for_gid: GroupID # noqa: ARG001 +): ... @@ -153,7 +157,7 @@ async def get_project_services_access_for_gid(project_id: ProjectID, for_gid: Gr response_model=Envelope[list[_ProjectNodePreview]], summary="Lists all previews in the node's project", ) -async def list_project_nodes_previews(project_id: ProjectID): +async def list_project_nodes_previews(project_id: ProjectID): # noqa: ARG001 ... @@ -166,7 +170,9 @@ async def list_project_nodes_previews(project_id: ProjectID): summary="Gets a give node's preview", responses={status.HTTP_404_NOT_FOUND: {"description": "Node has no preview"}}, ) -async def get_project_node_preview(project_id: ProjectID, node_id: NodeID): +async def get_project_node_preview( + project_id: ProjectID, node_id: NodeID # noqa: ARG001 +): ... diff --git a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml index 15d76e2571f..c0115d0cc3e 100644 --- a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml +++ b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml @@ -2436,7 +2436,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Envelope_Union_NodeGet__NodeGetIdle__' + $ref: '#/components/schemas/Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__' delete: tags: - projects @@ -5710,15 +5710,18 @@ components: $ref: '#/components/schemas/Token' error: title: Error - Envelope_Union_NodeGet__NodeGetIdle__: - title: Envelope[Union[NodeGet, NodeGetIdle]] + Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__: + title: Envelope[Union[NodeGetIdle, NodeGetUnknown, RunningDynamicServiceDetails, + NodeGet]] type: object properties: data: title: Data anyOf: - - $ref: '#/components/schemas/NodeGet' - $ref: '#/components/schemas/NodeGetIdle' + - $ref: '#/components/schemas/NodeGetUnknown' + - $ref: '#/components/schemas/RunningDynamicServiceDetails' + - $ref: '#/components/schemas/NodeGet' error: title: Error Envelope_Union_PricingUnitGet__NoneType__: @@ -7227,6 +7230,28 @@ components: title: Serviceuuid type: string format: uuid + example: + service_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + service_state: idle + NodeGetUnknown: + title: NodeGetUnknown + required: + - serviceState + - serviceUuid + type: object + properties: + serviceState: + title: Servicestate + enum: + - unknown + type: string + serviceUuid: + title: Serviceuuid + type: string + format: uuid + example: + service_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + service_state: unknown NodeRetrieve: title: NodeRetrieve type: object @@ -8774,6 +8799,90 @@ components: - type: integer - type: number - type: string + RunningDynamicServiceDetails: + title: RunningDynamicServiceDetails + required: + - service_key + - service_version + - user_id + - project_id + - service_uuid + - service_host + - service_port + - service_state + type: object + properties: + service_key: + title: Service Key + pattern: ^simcore/services/dynamic/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + description: distinctive name for the node based on the docker registry + path + service_version: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + description: semantic version number of the node + user_id: + title: User Id + exclusiveMinimum: true + type: integer + minimum: 0 + project_id: + title: Project Id + type: string + format: uuid + service_uuid: + title: Service Uuid + type: string + format: uuid + service_basepath: + title: Service Basepath + type: string + description: predefined path where the dynamic service should be served. + If empty, the service shall use the root endpoint. + format: path + boot_type: + allOf: + - $ref: '#/components/schemas/ServiceBootType' + description: Describes how the dynamic services was started (legacy=V0, + modern=V2).Since legacy services do not have this label it defaults to + V0. + default: V0 + service_host: + title: Service Host + type: string + description: the service swarm internal host name + service_port: + title: Service Port + exclusiveMaximum: true + exclusiveMinimum: true + type: integer + description: the service swarm internal port + maximum: 65535 + minimum: 0 + published_port: + title: Published Port + exclusiveMaximum: true + exclusiveMinimum: true + type: integer + description: the service swarm published port if any + deprecated: true + maximum: 65535 + minimum: 0 + entry_point: + title: Entry Point + type: string + description: if empty the service entrypoint is on the root endpoint. + deprecated: true + service_state: + allOf: + - $ref: '#/components/schemas/ServiceState' + description: service current state + service_message: + title: Service Message + type: string + description: additional information related to service state RunningState: title: RunningState enum: @@ -8820,6 +8929,13 @@ components: items: $ref: '#/components/schemas/Structure' additionalProperties: false + ServiceBootType: + title: ServiceBootType + enum: + - V0 + - V2 + type: string + description: An enumeration. ServiceGroupAccessRights: title: ServiceGroupAccessRights type: object From 32df1f4a0b73bbec34689a6d56b63db304e71d75 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Fri, 12 Jan 2024 11:56:28 +0100 Subject: [PATCH 02/10] better log messages --- .../service-library/src/servicelib/rabbitmq/_rpc_router.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py b/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py index 18e9607b202..c38b2820b64 100644 --- a/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py +++ b/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py @@ -64,7 +64,9 @@ async def _wrapper(*args, **kwargs): ): raise - _logger.exception("Unhandled exception:") + _logger.exception( + "Unhandled exception: %s", exc # noqa: TRY401 + ) # NOTE: we do not return internal exceptions over RPC formatted_traceback = "\n".join( traceback.format_tb(exc.__traceback__) @@ -72,7 +74,7 @@ async def _wrapper(*args, **kwargs): raise RPCServerError( method_name=func.__name__, exc_type=f"{exc.__class__.__module__}.{exc.__class__.__name__}", - msg=f"{formatted_traceback}", + msg=f"{exc} {formatted_traceback}", ) from None self.routes[RPCMethodName(func.__name__)] = _wrapper From 0a5e7503b29f51b3abb94ecbb19ffc6e31969882 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Fri, 12 Jan 2024 12:23:51 +0100 Subject: [PATCH 03/10] emit new unknown status for services when it cannot be determined --- .../dynamic_scheduler/api.py | 23 +++++++++++----- .../projects/_nodes_handlers.py | 3 ++- .../unit/isolated/test_dynamic_scheduler.py | 26 +++++++++++++++++-- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/services/web/server/src/simcore_service_webserver/dynamic_scheduler/api.py b/services/web/server/src/simcore_service_webserver/dynamic_scheduler/api.py index ceef916cd29..5c2cff67248 100644 --- a/services/web/server/src/simcore_service_webserver/dynamic_scheduler/api.py +++ b/services/web/server/src/simcore_service_webserver/dynamic_scheduler/api.py @@ -1,3 +1,4 @@ +import logging from contextlib import AsyncExitStack from functools import partial @@ -6,13 +7,17 @@ from models_library.api_schemas_dynamic_scheduler.dynamic_services import ( RPCDynamicServiceCreate, ) -from models_library.api_schemas_webserver.projects_nodes import NodeGet, NodeGetIdle +from models_library.api_schemas_webserver.projects_nodes import ( + NodeGet, + NodeGetIdle, + NodeGetUnknown, +) from models_library.projects import ProjectID from models_library.projects_nodes_io import NodeID from models_library.rabbitmq_messages import ProgressRabbitMessageProject, ProgressType from pydantic.types import NonNegativeFloat, PositiveInt from servicelib.progress_bar import ProgressBarData -from servicelib.rabbitmq import RabbitMQClient +from servicelib.rabbitmq import RabbitMQClient, RPCServerError from servicelib.rabbitmq.rpc_interfaces.dynamic_scheduler import services from servicelib.utils import logged_gather @@ -20,13 +25,19 @@ from ..rabbitmq import get_rabbitmq_client, get_rabbitmq_rpc_client from .settings import DynamicSchedulerSettings, get_plugin_settings +_logger = logging.getLogger(__name__) + async def get_dynamic_service( app: web.Application, *, node_id: NodeID -) -> NodeGetIdle | DynamicServiceGet | NodeGet: - return await services.get_service_status( - get_rabbitmq_rpc_client(app), node_id=node_id - ) +) -> NodeGetIdle | NodeGetUnknown | DynamicServiceGet | NodeGet: + try: + return await services.get_service_status( + get_rabbitmq_rpc_client(app), node_id=node_id + ) + except RPCServerError as e: + _logger.debug("Responding state unknown. Received error: %s", e) + return NodeGetUnknown.from_node_id(node_id) async def run_dynamic_service( diff --git a/services/web/server/src/simcore_service_webserver/projects/_nodes_handlers.py b/services/web/server/src/simcore_service_webserver/projects/_nodes_handlers.py index 4497828d80a..5d1fb8c24f8 100644 --- a/services/web/server/src/simcore_service_webserver/projects/_nodes_handlers.py +++ b/services/web/server/src/simcore_service_webserver/projects/_nodes_handlers.py @@ -16,6 +16,7 @@ NodeCreated, NodeGet, NodeGetIdle, + NodeGetUnknown, NodeRetrieve, ) from models_library.groups import EVERYONE_GROUP_ID @@ -175,7 +176,7 @@ async def get_node(request: web.Request) -> web.Response: reason=f"Service {project_node['key']}:{project_node['version']} is deprecated!" ) - service_data: NodeGetIdle | DynamicServiceGet | NodeGet = ( + service_data: NodeGetIdle | NodeGetUnknown | DynamicServiceGet | NodeGet = ( await dynamic_scheduler_api.get_dynamic_service( app=request.app, node_id=path_params.node_id ) diff --git a/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py b/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py index 9f000d72dac..cc0df270216 100644 --- a/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py +++ b/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py @@ -9,9 +9,14 @@ from models_library.api_schemas_dynamic_scheduler.dynamic_services import ( RPCDynamicServiceCreate, ) -from models_library.api_schemas_webserver.projects_nodes import NodeGet, NodeGetIdle +from models_library.api_schemas_webserver.projects_nodes import ( + NodeGet, + NodeGetIdle, + NodeGetUnknown, +) from models_library.projects_nodes_io import NodeID from pytest_mock import MockerFixture +from servicelib.rabbitmq import RPCServerError from simcore_service_webserver.dynamic_scheduler.api import ( get_dynamic_service, run_dynamic_service, @@ -61,11 +66,28 @@ async def test_get_service_status( mock_rpc_client: None, mocked_app: AsyncMock, node_id: NodeID, - expected_response: NodeGet | NodeGetIdle | DynamicServiceGet, + expected_response: NodeGet | NodeGetIdle | NodeGetUnknown | DynamicServiceGet, ): assert await get_dynamic_service(mocked_app, node_id=node_id) == expected_response +async def test_get_service_status_raises_rpc_server_error( + mocker: MockerFixture, mocked_app: AsyncMock, node_id: NodeID +): + mocked_rpc_client = AsyncMock() + mocked_rpc_client.request = AsyncMock( + side_effect=RPCServerError(exc_type="test", method_name="test", msg="test") + ) + mocker.patch( + "simcore_service_webserver.dynamic_scheduler.api.get_rabbitmq_rpc_client", + return_value=mocked_rpc_client, + ) + + assert await get_dynamic_service( + mocked_app, node_id=node_id + ) == NodeGetUnknown.from_node_id(node_id) + + @pytest.mark.parametrize( "expected_response", [ From d86e189d44a92754ff91d1b7b909d092a50a4999 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Fri, 12 Jan 2024 12:24:11 +0100 Subject: [PATCH 04/10] upon unknown state retry --- .../client/source/class/osparc/data/model/Node.js | 1 + .../client/source/class/osparc/viewer/NodeViewer.js | 1 + 2 files changed, 2 insertions(+) diff --git a/services/static-webserver/client/source/class/osparc/data/model/Node.js b/services/static-webserver/client/source/class/osparc/data/model/Node.js index da59fd9d5fa..d08f8fcb1b3 100644 --- a/services/static-webserver/client/source/class/osparc/data/model/Node.js +++ b/services/static-webserver/client/source/class/osparc/data/model/Node.js @@ -1290,6 +1290,7 @@ qx.Class.define("osparc.data.model.Node", { break; } case "stopping": + case "unknown": case "starting": case "pulling": { status.setInteractive(serviceState); diff --git a/services/static-webserver/client/source/class/osparc/viewer/NodeViewer.js b/services/static-webserver/client/source/class/osparc/viewer/NodeViewer.js index 22a434836ee..19bf8628a14 100644 --- a/services/static-webserver/client/source/class/osparc/viewer/NodeViewer.js +++ b/services/static-webserver/client/source/class/osparc/viewer/NodeViewer.js @@ -127,6 +127,7 @@ qx.Class.define("osparc.viewer.NodeViewer", { qx.event.Timer.once(() => this.__nodeState(), this, interval); break; } + case "unknown": case "starting": case "connecting": case "pulling": { From 3202de4c4fc8b77afc4c71454e50d6032a7e1814 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Fri, 12 Jan 2024 12:24:29 +0100 Subject: [PATCH 05/10] refactor --- .../api_schemas_webserver/projects_nodes.py | 21 +++++++++++++++++++ .../services/director_v2/_public_client.py | 2 +- .../unit/api_rpc/test_api_rpc__services.py | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py b/packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py index 2d21a70eef5..e937b461f4f 100644 --- a/packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py @@ -91,6 +91,10 @@ class NodeGetIdle(OutputSchema): service_state: Literal["idle"] service_uuid: NodeID + @classmethod + def from_node_id(cls, node_id: NodeID) -> "NodeGetIdle": + return cls(service_state="idle", service_uuid=node_id) + class Config: schema_extra: ClassVar[dict[str, Any]] = { "example": { @@ -100,6 +104,23 @@ class Config: } +class NodeGetUnknown(OutputSchema): + service_state: Literal["unknown"] + service_uuid: NodeID + + @classmethod + def from_node_id(cls, node_id: NodeID) -> "NodeGetUnknown": + return cls(service_state="unknown", service_uuid=node_id) + + class Config: + schema_extra: ClassVar[dict[str, Any]] = { + "example": { + "service_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "service_state": "unknown", + } + } + + class NodeRetrieve(InputSchemaWithoutCameCase): port_keys: list[ServicePortKey] = [] diff --git a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/director_v2/_public_client.py b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/director_v2/_public_client.py index 55757eb6909..e9e6ee6fff0 100644 --- a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/director_v2/_public_client.py +++ b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/director_v2/_public_client.py @@ -51,7 +51,7 @@ async def get_status( e.response.status_code # pylint:disable=no-member # type: ignore == status.HTTP_404_NOT_FOUND ): - return NodeGetIdle(service_state="idle", service_uuid=node_id) + return NodeGetIdle.from_node_id(node_id) raise async def run_dynamic_service( diff --git a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py index 6d7bd133630..59968c1361a 100644 --- a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py +++ b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py @@ -160,7 +160,7 @@ async def test_get_state( # node not tracked any of the two directors result = await services.get_service_status(rpc_client, node_id=node_not_found) - assert result == NodeGetIdle(service_state="idle", service_uuid=node_not_found) + assert result == NodeGetIdle.from_node_id(node_not_found) @pytest.fixture From 55806a99db062b17b9a990b8d319332c92e17d17 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Wed, 17 Jan 2024 15:20:33 +0100 Subject: [PATCH 06/10] added a new issues case --- api/specs/web-server/_projects_nodes.py | 1 + 1 file changed, 1 insertion(+) diff --git a/api/specs/web-server/_projects_nodes.py b/api/specs/web-server/_projects_nodes.py index 88b70c802fc..d1b0912ddb6 100644 --- a/api/specs/web-server/_projects_nodes.py +++ b/api/specs/web-server/_projects_nodes.py @@ -51,6 +51,7 @@ def create_node(project_id: str, body: NodeCreate): # noqa: ARG001 @router.get( + # issues with this endpoint https://github.com/ITISFoundation/osparc-simcore/issues/5245 "/projects/{project_id}/nodes/{node_id}", response_model=Envelope[NodeGetIdle | NodeGetUnknown | DynamicServiceGet | NodeGet], ) From c9150b91a54374c2196c08be4d023392dc1c885c Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Wed, 17 Jan 2024 15:43:49 +0100 Subject: [PATCH 07/10] making error more readable client side --- .../service-library/src/servicelib/rabbitmq/_errors.py | 5 ++++- .../src/servicelib/rabbitmq/_rpc_router.py | 7 +++---- .../tests/rabbitmq/test_rabbitmq_rpc_router.py | 2 ++ .../server/tests/unit/isolated/test_dynamic_scheduler.py | 9 ++++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/service-library/src/servicelib/rabbitmq/_errors.py b/packages/service-library/src/servicelib/rabbitmq/_errors.py index 63e7bddbb35..0e3efbf3a11 100644 --- a/packages/service-library/src/servicelib/rabbitmq/_errors.py +++ b/packages/service-library/src/servicelib/rabbitmq/_errors.py @@ -23,4 +23,7 @@ class RemoteMethodNotRegisteredError(BaseRPCError): class RPCServerError(BaseRPCError): - msg_template = "Raised '{exc_type}' while running '{method_name}' method: {msg}" + msg_template = ( + "While running method '{method_name}' raised " + "'{exc_type}': '{exc_message}'\n{traceback}" + ) diff --git a/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py b/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py index c38b2820b64..d0c0d626455 100644 --- a/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py +++ b/packages/service-library/src/servicelib/rabbitmq/_rpc_router.py @@ -64,9 +64,7 @@ async def _wrapper(*args, **kwargs): ): raise - _logger.exception( - "Unhandled exception: %s", exc # noqa: TRY401 - ) + _logger.exception("Unhandled exception:") # NOTE: we do not return internal exceptions over RPC formatted_traceback = "\n".join( traceback.format_tb(exc.__traceback__) @@ -74,7 +72,8 @@ async def _wrapper(*args, **kwargs): raise RPCServerError( method_name=func.__name__, exc_type=f"{exc.__class__.__module__}.{exc.__class__.__name__}", - msg=f"{exc} {formatted_traceback}", + exc_message=f"{exc}", + traceback=f"{formatted_traceback}", ) from None self.routes[RPCMethodName(func.__name__)] = _wrapper diff --git a/packages/service-library/tests/rabbitmq/test_rabbitmq_rpc_router.py b/packages/service-library/tests/rabbitmq/test_rabbitmq_rpc_router.py index 570206c6c9f..4d0c99939ea 100644 --- a/packages/service-library/tests/rabbitmq/test_rabbitmq_rpc_router.py +++ b/packages/service-library/tests/rabbitmq/test_rabbitmq_rpc_router.py @@ -96,6 +96,8 @@ async def test_exposed_methods( router_namespace, RPCMethodName(raising_unexpected_error.__name__), ) + assert "This is not good!" in f"{exc_info.value}" + assert "builtins.ValueError" in f"{exc_info.value}" # This error was classified int he interface with pytest.raises(MyBaseError) as exc_info: diff --git a/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py b/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py index cc0df270216..83de45b76e4 100644 --- a/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py +++ b/services/web/server/tests/unit/isolated/test_dynamic_scheduler.py @@ -75,8 +75,15 @@ async def test_get_service_status_raises_rpc_server_error( mocker: MockerFixture, mocked_app: AsyncMock, node_id: NodeID ): mocked_rpc_client = AsyncMock() + + exc = RuntimeError("a_custom_message") mocked_rpc_client.request = AsyncMock( - side_effect=RPCServerError(exc_type="test", method_name="test", msg="test") + side_effect=RPCServerError( + exc_type=f"{exc.__class__.__module__}.{exc.__class__.__name__}", + exc_message=f"{exc}", + method_name="test", + traceback="test", + ) ) mocker.patch( "simcore_service_webserver.dynamic_scheduler.api.get_rabbitmq_rpc_client", From ccfe35b9f60ebb3a5f58340cbd0fdde7657ae7f4 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Wed, 17 Jan 2024 15:47:11 +0100 Subject: [PATCH 08/10] updated openapi specs --- .../api/v0/openapi.yaml | 6741 ++++++++--------- 1 file changed, 3340 insertions(+), 3401 deletions(-) diff --git a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml index 7e52d36819c..037bd487ec5 100644 --- a/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml +++ b/services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml @@ -1,92 +1,91 @@ openapi: 3.0.2 info: title: simcore-service-webserver - description: - " Main service with an interface (http-API & websockets) to the web - front-end" + description: ' Main service with an interface (http-API & websockets) to the web + front-end' version: 0.37.1 servers: - - url: "" - description: webserver - - url: http://{host}:{port} - description: development server - variables: - host: - default: localhost - port: - default: "8001" +- url: '' + description: webserver +- url: http://{host}:{port} + description: development server + variables: + host: + default: localhost + port: + default: '8001' paths: /v0/activity/status: get: tags: - - tasks + - tasks summary: Get Activity Status operationId: get_activity_status responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_uuid.UUID__models_library.api_schemas_webserver.activity.Activity__" + $ref: '#/components/schemas/Envelope_dict_uuid.UUID__models_library.api_schemas_webserver.activity.Activity__' /v0/email:test: post: tags: - - admin + - admin summary: Test Email operationId: test_email parameters: - - required: false - schema: - title: X-Simcore-Products-Name - type: string - name: x-simcore-products-name - in: header + - required: false + schema: + title: X-Simcore-Products-Name + type: string + name: x-simcore-products-name + in: header requestBody: content: application/json: schema: - $ref: "#/components/schemas/TestEmail" + $ref: '#/components/schemas/TestEmail' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Union_TestFailed__TestPassed__" + $ref: '#/components/schemas/Envelope_Union_TestFailed__TestPassed__' /v0/announcements: get: tags: - - announcements + - announcements summary: List Announcements operationId: list_announcements responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.announcements._models.Announcement__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.announcements._models.Announcement__' /v0/auth/request-account: post: tags: - - auth + - auth summary: Request Product Account operationId: request_product_account requestBody: content: application/json: schema: - $ref: "#/components/schemas/AccountRequestInfo" + $ref: '#/components/schemas/AccountRequestInfo' required: true responses: - "204": + '204': description: Successful Response /v0/auth/register/invitations:check: post: tags: - - auth + - auth summary: Check Registration Invitation description: Check invitation and returns associated email or None operationId: auth_check_registration_invitation @@ -94,19 +93,19 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/InvitationCheck" + $ref: '#/components/schemas/InvitationCheck' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_InvitationInfo_" + $ref: '#/components/schemas/Envelope_InvitationInfo_' /v0/auth/register: post: tags: - - auth + - auth summary: Register description: User registration operationId: auth_register @@ -114,66 +113,65 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/RegisterBody" + $ref: '#/components/schemas/RegisterBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" + $ref: '#/components/schemas/Envelope_Log_' /v0/auth/unregister: post: tags: - - auth + - auth summary: Unregister Account operationId: unregister_account requestBody: content: application/json: schema: - $ref: "#/components/schemas/UnregisterCheck" + $ref: '#/components/schemas/UnregisterCheck' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "409": + $ref: '#/components/schemas/Envelope_Log_' + '409': description: Conflict content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/verify-phone-number: post: tags: - - auth + - auth summary: Register Phone - description: - user tries to verify phone number for 2 Factor Authentication when + description: user tries to verify phone number for 2 Factor Authentication when registering operationId: auth_register_phone requestBody: content: application/json: schema: - $ref: "#/components/schemas/RegisterPhoneBody" + $ref: '#/components/schemas/RegisterPhoneBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_RegisterPhoneNextPage_" + $ref: '#/components/schemas/Envelope_RegisterPhoneNextPage_' /v0/auth/validate-code-register: post: tags: - - auth + - auth summary: Phone Confirmation description: user enters 2 Factor Authentication code when registering operationId: auth_phone_confirmation @@ -181,19 +179,19 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/PhoneConfirmationBody" + $ref: '#/components/schemas/PhoneConfirmationBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" + $ref: '#/components/schemas/Envelope_Log_' /v0/auth/login: post: tags: - - auth + - auth summary: Login description: user logs in operationId: auth_login @@ -201,25 +199,25 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/LoginBody" + $ref: '#/components/schemas/LoginBody' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_LoginNextPage_" - "401": + $ref: '#/components/schemas/Envelope_LoginNextPage_' + '401': description: unauthorized reset due to invalid token code content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/validate-code-login: post: tags: - - auth + - auth summary: Login 2Fa description: user enters 2 Factor Authentication code when login in operationId: auth_login_2fa @@ -227,25 +225,25 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/LoginTwoFactorAuthBody" + $ref: '#/components/schemas/LoginTwoFactorAuthBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "401": + $ref: '#/components/schemas/Envelope_Log_' + '401': description: unauthorized reset due to invalid token code content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/two_factor:resend: post: tags: - - auth + - auth summary: Resend 2Fa Code description: Resends 2FA either via email or sms operationId: auth_resend_2fa_code @@ -253,25 +251,25 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Resend2faBody" + $ref: '#/components/schemas/Resend2faBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "401": + $ref: '#/components/schemas/Envelope_Log_' + '401': description: unauthorized reset due to invalid token code content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/logout: post: tags: - - auth + - auth summary: Logout description: user logout operationId: auth_logout @@ -279,19 +277,19 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/LogoutBody" + $ref: '#/components/schemas/LogoutBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" + $ref: '#/components/schemas/Envelope_Log_' /v0/auth/reset-password: post: tags: - - auth + - auth summary: Reset Password description: a non logged-in user requests a password reset operationId: auth_reset_password @@ -299,58 +297,58 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ResetPasswordBody" + $ref: '#/components/schemas/ResetPasswordBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "503": + $ref: '#/components/schemas/Envelope_Log_' + '503': description: Service Unavailable content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/reset-password/{code}: post: tags: - - auth + - auth summary: Reset Password Allowed description: changes password using a token code without being logged in operationId: auth_reset_password_allowed parameters: - - required: true - schema: - title: Code - type: string - name: code - in: path + - required: true + schema: + title: Code + type: string + name: code + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ResetPasswordConfirmation" + $ref: '#/components/schemas/ResetPasswordConfirmation' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "401": + $ref: '#/components/schemas/Envelope_Log_' + '401': description: unauthorized reset due to invalid token code content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/change-email: post: tags: - - auth + - auth summary: Change Email description: logged in user changes email operationId: auth_change_email @@ -358,31 +356,31 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ChangeEmailBody" + $ref: '#/components/schemas/ChangeEmailBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "401": + $ref: '#/components/schemas/Envelope_Log_' + '401': description: unauthorized user. Login required content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" - "503": + $ref: '#/components/schemas/Envelope_Error_' + '503': description: unable to send confirmation email content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/change-password: post: tags: - - auth + - auth summary: Change Password description: logged in user changes password operationId: auth_change_password @@ -390,65 +388,65 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ChangePasswordBody" + $ref: '#/components/schemas/ChangePasswordBody' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" - "401": + $ref: '#/components/schemas/Envelope_Log_' + '401': description: unauthorized user. Login required content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" - "409": + $ref: '#/components/schemas/Envelope_Error_' + '409': description: mismatch between new and confirmation passwords content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" - "422": + $ref: '#/components/schemas/Envelope_Error_' + '422': description: current password is invalid content: application/json: schema: - $ref: "#/components/schemas/Envelope_Error_" + $ref: '#/components/schemas/Envelope_Error_' /v0/auth/confirmation/{code}: get: tags: - - auth + - auth summary: Email Confirmation description: email link sent to user to confirm an action operationId: auth_confirmation parameters: - - required: true - schema: - title: Code - type: string - name: code - in: path + - required: true + schema: + title: Code + type: string + name: code + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Log_" + $ref: '#/components/schemas/Envelope_Log_' 3XX: description: redirection to specific ui application page /v0/auth/api-keys: get: tags: - - auth + - auth summary: List Api Keys description: lists display names of API keys by this user operationId: list_api_keys responses: - "200": + '200': description: returns the display names of API keys content: application/json: @@ -457,15 +455,15 @@ paths: type: array items: type: string - "400": + '400': description: key name requested is invalid - "401": + '401': description: requires login to list keys - "403": + '403': description: not enough permissions to list keys post: tags: - - auth + - auth summary: Create Api Key description: creates API keys to access public API operationId: create_api_key @@ -473,24 +471,24 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKeyCreate" + $ref: '#/components/schemas/ApiKeyCreate' required: true responses: - "200": + '200': description: Authorization granted returning API key content: application/json: schema: - $ref: "#/components/schemas/ApiKeyGet" - "400": + $ref: '#/components/schemas/ApiKeyGet' + '400': description: key name requested is invalid - "401": + '401': description: requires login to list keys - "403": + '403': description: not enough permissions to list keys delete: tags: - - auth + - auth summary: Delete Api Key description: deletes API key by name operationId: delete_api_key @@ -498,336 +496,336 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ApiKeyCreate" + $ref: '#/components/schemas/ApiKeyCreate' required: true responses: - "204": + '204': description: api key successfully deleted - "401": + '401': description: requires login to delete a key - "403": + '403': description: not enough permissions to delete a key /v0/catalog/services: get: tags: - - catalog + - catalog summary: List Services operationId: list_services responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceGet__' /v0/catalog/services/{service_key}/{service_version}: get: tags: - - catalog + - catalog summary: Get Service operationId: get_service parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ServiceGet_" + $ref: '#/components/schemas/Envelope_ServiceGet_' patch: tags: - - catalog + - catalog summary: Update Service operationId: update_service parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ServiceUpdate" + $ref: '#/components/schemas/ServiceUpdate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ServiceGet_" + $ref: '#/components/schemas/Envelope_ServiceGet_' /v0/catalog/services/{service_key}/{service_version}/inputs: get: tags: - - catalog + - catalog summary: List Service Inputs operationId: list_service_inputs parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceInputGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceInputGet__' /v0/catalog/services/{service_key}/{service_version}/inputs/{input_key}: get: tags: - - catalog + - catalog summary: Get Service Input operationId: get_service_input parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path - - required: true - schema: - title: Input Key - pattern: ^[-_a-zA-Z0-9]+$ - type: string - name: input_key - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path + - required: true + schema: + title: Input Key + pattern: ^[-_a-zA-Z0-9]+$ + type: string + name: input_key + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ServiceInputGet_" + $ref: '#/components/schemas/Envelope_ServiceInputGet_' /v0/catalog/services/{service_key}/{service_version}/inputs:match: get: tags: - - catalog + - catalog summary: Get Compatible Inputs Given Source Output operationId: get_compatible_inputs_given_source_output parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path - - required: true - schema: - title: Fromservice - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: fromService - in: query - - required: true - schema: - title: Fromversion - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: fromVersion - in: query - - required: true - schema: - title: Fromoutput - pattern: ^[-_a-zA-Z0-9]+$ - type: string - name: fromOutput - in: query + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path + - required: true + schema: + title: Fromservice + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: fromService + in: query + - required: true + schema: + title: Fromversion + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: fromVersion + in: query + - required: true + schema: + title: Fromoutput + pattern: ^[-_a-zA-Z0-9]+$ + type: string + name: fromOutput + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.services.ServicePortKey__" + $ref: '#/components/schemas/Envelope_list_models_library.services.ServicePortKey__' /v0/catalog/services/{service_key}/{service_version}/outputs: get: tags: - - catalog + - catalog summary: List Service Outputs operationId: list_service_outputs parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.services.ServicePortKey__" + $ref: '#/components/schemas/Envelope_list_models_library.services.ServicePortKey__' /v0/catalog/services/{service_key}/{service_version}/outputs/{output_key}: get: tags: - - catalog + - catalog summary: Get Service Output operationId: get_service_output parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path - - required: true - schema: - title: Output Key - pattern: ^[-_a-zA-Z0-9]+$ - type: string - name: output_key - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path + - required: true + schema: + title: Output Key + pattern: ^[-_a-zA-Z0-9]+$ + type: string + name: output_key + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceOutputGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.catalog.ServiceOutputGet__' /v0/catalog/services/{service_key}/{service_version}/outputs:match: get: tags: - - catalog + - catalog summary: Get Compatible Outputs Given Target Input operationId: get_compatible_outputs_given_target_input parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path - - required: true - schema: - title: Toservice - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: toService - in: query - - required: true - schema: - title: Toversion - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: toVersion - in: query - - required: true - schema: - title: Toinput - pattern: ^[-_a-zA-Z0-9]+$ - type: string - name: toInput - in: query + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path + - required: true + schema: + title: Toservice + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: toService + in: query + - required: true + schema: + title: Toversion + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: toVersion + in: query + - required: true + schema: + title: Toinput + pattern: ^[-_a-zA-Z0-9]+$ + type: string + name: toInput + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.services.ServicePortKey__" + $ref: '#/components/schemas/Envelope_list_models_library.services.ServicePortKey__' /v0/catalog/services/{service_key}/{service_version}/resources: get: tags: - - catalog + - catalog summary: Get Service Resources operationId: get_service_resources parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path responses: - "200": + '200': description: Successful Response content: application/json: @@ -837,67 +835,67 @@ paths: /v0/catalog/services/{service_key}/{service_version}/pricing-plan: get: tags: - - catalog - - pricing-plans + - catalog + - pricing-plans summary: Retrieve default pricing plan for provided service operationId: get_service_pricing_plan parameters: - - required: true - schema: - title: Service Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: service_key - in: path - - required: true - schema: - title: Service Version - pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ - type: string - name: service_version - in: path + - required: true + schema: + title: Service Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: service_key + in: path + - required: true + schema: + title: Service Version + pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ + type: string + name: service_version + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ServicePricingPlanGet_" + $ref: '#/components/schemas/Envelope_ServicePricingPlanGet_' /v0/clusters: get: tags: - - clusters + - clusters summary: List Clusters operationId: list_clusters responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.clusters.ClusterGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.clusters.ClusterGet__' post: tags: - - clusters + - clusters summary: Create Cluster operationId: create_cluster requestBody: content: application/json: schema: - $ref: "#/components/schemas/ClusterCreate" + $ref: '#/components/schemas/ClusterCreate' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ClusterGet_" + $ref: '#/components/schemas/Envelope_ClusterGet_' /v0/clusters:ping: post: tags: - - clusters + - clusters summary: Ping Cluster description: Test connectivity with cluster operationId: ping_cluster @@ -905,686 +903,686 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ClusterPing" + $ref: '#/components/schemas/ClusterPing' required: true responses: - "204": + '204': description: Successful Response /v0/clusters/{cluster_id}: get: tags: - - clusters + - clusters summary: Get Cluster operationId: get_cluster parameters: - - required: true - schema: - title: Cluster Id - minimum: 0 - type: integer - name: cluster_id - in: path + - required: true + schema: + title: Cluster Id + minimum: 0 + type: integer + name: cluster_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ClusterGet_" + $ref: '#/components/schemas/Envelope_ClusterGet_' delete: tags: - - clusters + - clusters summary: Delete Cluster operationId: delete_cluster parameters: - - required: true - schema: - title: Cluster Id - minimum: 0 - type: integer - name: cluster_id - in: path + - required: true + schema: + title: Cluster Id + minimum: 0 + type: integer + name: cluster_id + in: path responses: - "204": + '204': description: Successful Response patch: tags: - - clusters + - clusters summary: Update Cluster operationId: update_cluster parameters: - - required: true - schema: - title: Cluster Id - minimum: 0 - type: integer - name: cluster_id - in: path + - required: true + schema: + title: Cluster Id + minimum: 0 + type: integer + name: cluster_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ClusterPatch" + $ref: '#/components/schemas/ClusterPatch' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ClusterGet_" + $ref: '#/components/schemas/Envelope_ClusterGet_' /v0/clusters/{cluster_id}/details: get: tags: - - clusters + - clusters summary: Get Cluster Details operationId: get_cluster_details parameters: - - required: true - schema: - title: Cluster Id - minimum: 0 - type: integer - name: cluster_id - in: path + - required: true + schema: + title: Cluster Id + minimum: 0 + type: integer + name: cluster_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ClusterDetails_" + $ref: '#/components/schemas/Envelope_ClusterDetails_' /v0/clusters/{cluster_id}:ping: post: tags: - - clusters + - clusters summary: Ping Cluster Cluster Id description: Tests connectivity with cluster operationId: ping_cluster_cluster_id parameters: - - required: true - schema: - title: Cluster Id - minimum: 0 - type: integer - name: cluster_id - in: path + - required: true + schema: + title: Cluster Id + minimum: 0 + type: integer + name: cluster_id + in: path responses: - "204": + '204': description: Successful Response /v0/computations/{project_id}: get: tags: - - computations - - projects + - computations + - projects summary: Get Computation operationId: get_computation parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ComputationTaskGet_" + $ref: '#/components/schemas/Envelope_ComputationTaskGet_' /v0/computations/{project_id}:start: post: tags: - - computations - - projects + - computations + - projects summary: Start Computation operationId: start_computation parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ComputationStart" + $ref: '#/components/schemas/ComputationStart' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope__ComputationStarted_" + $ref: '#/components/schemas/Envelope__ComputationStarted_' /v0/computations/{project_id}:stop: post: tags: - - computations - - projects + - computations + - projects summary: Stop Computation operationId: stop_computation parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "204": + '204': description: Successful Response /v0/: get: tags: - - maintenance + - maintenance summary: Healthcheck Readiness Probe - description: "Readiness probe: check if the container is ready to receive traffic" + description: 'Readiness probe: check if the container is ready to receive traffic' operationId: healthcheck_readiness_probe responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_HealthInfoDict_" + $ref: '#/components/schemas/Envelope_HealthInfoDict_' /v0/health: get: tags: - - maintenance + - maintenance summary: Healthcheck Liveness Probe - description: "Liveness probe: check if the container is alive" + description: 'Liveness probe: check if the container is alive' operationId: healthcheck_liveness_probe responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_str__Any__" + $ref: '#/components/schemas/Envelope_dict_str__Any__' /v0/config: get: tags: - - maintenance + - maintenance summary: Front end runtime configuration description: Returns app and products configs operationId: get_config responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_str__Any__" + $ref: '#/components/schemas/Envelope_dict_str__Any__' /v0/scheduled_maintenance: get: tags: - - maintenance + - maintenance summary: Get Scheduled Maintenance operationId: get_scheduled_maintenance responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_str_" + $ref: '#/components/schemas/Envelope_str_' /v0/status: get: tags: - - maintenance + - maintenance summary: checks status of self and connected services operationId: get_app_status responses: - "200": + '200': description: Returns app status check content: application/json: schema: - $ref: "#/components/schemas/Envelope_AppStatusCheck_" + $ref: '#/components/schemas/Envelope_AppStatusCheck_' /v0/status/diagnostics: get: tags: - - maintenance + - maintenance summary: Get App Diagnostics operationId: get_app_diagnostics parameters: - - required: false - schema: - title: Top Tracemalloc - type: integer - name: top_tracemalloc - in: query + - required: false + schema: + title: Top Tracemalloc + type: integer + name: top_tracemalloc + in: query responses: - "200": + '200': description: Returns app diagnostics report content: application/json: schema: - $ref: "#/components/schemas/Envelope_StatusDiagnosticsGet_" + $ref: '#/components/schemas/Envelope_StatusDiagnosticsGet_' /v0/status/{service_name}: get: tags: - - maintenance + - maintenance summary: Get Service Status operationId: get_service_status parameters: - - required: true - schema: - title: Service Name - type: string - name: service_name - in: path + - required: true + schema: + title: Service Name + type: string + name: service_name + in: path responses: - "200": + '200': description: Returns app status check content: application/json: schema: - $ref: "#/components/schemas/Envelope_AppStatusCheck_" + $ref: '#/components/schemas/Envelope_AppStatusCheck_' /v0/projects/{project_id}:xport: post: tags: - - projects - - exporter + - projects + - exporter summary: Export Project description: creates an archive of the project and downloads it operationId: export_project parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path responses: - "200": + '200': description: Successful Response /v0/groups: get: tags: - - groups + - groups summary: List Groups operationId: list_groups responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_AllUsersGroups_" + $ref: '#/components/schemas/Envelope_AllUsersGroups_' post: tags: - - groups + - groups summary: Create Group operationId: create_group responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_UsersGroup_" + $ref: '#/components/schemas/Envelope_UsersGroup_' /v0/groups/{gid}: get: tags: - - groups + - groups summary: Get Group operationId: get_group parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_UsersGroup_" + $ref: '#/components/schemas/Envelope_UsersGroup_' delete: tags: - - groups + - groups summary: Delete Group operationId: delete_group parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path responses: - "204": + '204': description: Successful Response patch: tags: - - groups + - groups summary: Update Group operationId: update_group parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_UsersGroup_" + $ref: '#/components/schemas/Envelope_UsersGroup_' /v0/groups/{gid}/users: get: tags: - - groups + - groups summary: Get Group Users operationId: get_group_users parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.groups.GroupUserGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.groups.GroupUserGet__' post: tags: - - groups + - groups summary: Add Group User operationId: add_group_user parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/GroupUserGet" + $ref: '#/components/schemas/GroupUserGet' required: true responses: - "204": + '204': description: Successful Response /v0/groups/{gid}/users/{uid}: get: tags: - - groups + - groups summary: Get Group User operationId: get_group_user parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path - - required: true - schema: - title: Uid - exclusiveMinimum: true - type: integer - minimum: 0 - name: uid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path + - required: true + schema: + title: Uid + exclusiveMinimum: true + type: integer + minimum: 0 + name: uid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GroupUserGet_" + $ref: '#/components/schemas/Envelope_GroupUserGet_' delete: tags: - - groups + - groups summary: Delete Group User operationId: delete_group_user parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path - - required: true - schema: - title: Uid - exclusiveMinimum: true - type: integer - minimum: 0 - name: uid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path + - required: true + schema: + title: Uid + exclusiveMinimum: true + type: integer + minimum: 0 + name: uid + in: path responses: - "204": + '204': description: Successful Response patch: tags: - - groups + - groups summary: Update Group User operationId: update_group_user parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path - - required: true - schema: - title: Uid - exclusiveMinimum: true - type: integer - minimum: 0 - name: uid - in: path + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path + - required: true + schema: + title: Uid + exclusiveMinimum: true + type: integer + minimum: 0 + name: uid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/GroupUserGet" + $ref: '#/components/schemas/GroupUserGet' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GroupUserGet_" + $ref: '#/components/schemas/Envelope_GroupUserGet_' /v0/groups/{gid}/classifiers: get: tags: - - groups + - groups summary: Get Group Classifiers operationId: get_group_classifiers parameters: - - required: true - schema: - title: Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: gid - in: path - - required: false - schema: - title: Tree View - enum: - - std - type: string - default: std - name: tree_view - in: query + - required: true + schema: + title: Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: gid + in: path + - required: false + schema: + title: Tree View + enum: + - std + type: string + default: std + name: tree_view + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_str__Any__" + $ref: '#/components/schemas/Envelope_dict_str__Any__' /v0/groups/sparc/classifiers/scicrunch-resources/{rrid}: get: tags: - - groups + - groups summary: Get Scicrunch Resource operationId: get_scicrunch_resource parameters: - - required: true - schema: - title: Rrid - type: string - name: rrid - in: path + - required: true + schema: + title: Rrid + type: string + name: rrid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ResearchResource_" + $ref: '#/components/schemas/Envelope_ResearchResource_' post: tags: - - groups + - groups summary: Add Scicrunch Resource operationId: add_scicrunch_resource parameters: - - required: true - schema: - title: Rrid - type: string - name: rrid - in: path + - required: true + schema: + title: Rrid + type: string + name: rrid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ResearchResource_" + $ref: '#/components/schemas/Envelope_ResearchResource_' /v0/groups/sparc/classifiers/scicrunch-resources:search: get: tags: - - groups + - groups summary: Search Scicrunch Resources operationId: search_scicrunch_resources parameters: - - required: true - schema: - title: Guess Name - type: string - name: guess_name - in: query + - required: true + schema: + title: Guess Name + type: string + name: guess_name + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.scicrunch.models.ResourceHit__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.scicrunch.models.ResourceHit__' /v0/tasks: get: tags: - - long-running-tasks + - long-running-tasks summary: List Tasks operationId: list_tasks responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_long_running_tasks.tasks.TaskGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_long_running_tasks.tasks.TaskGet__' /v0/tasks/{task_id}: get: tags: - - long-running-tasks + - long-running-tasks summary: Get Task Status operationId: get_task_status parameters: - - required: true - schema: - title: Task Id - type: string - name: task_id - in: path + - required: true + schema: + title: Task Id + type: string + name: task_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TaskStatus_" + $ref: '#/components/schemas/Envelope_TaskStatus_' delete: tags: - - long-running-tasks + - long-running-tasks summary: Cancel And Delete Task operationId: cancel_and_delete_task parameters: - - required: true - schema: - title: Task Id - type: string - name: task_id - in: path + - required: true + schema: + title: Task Id + type: string + name: task_id + in: path responses: - "204": + '204': description: Successful Response /v0/tasks/{task_id}/result: get: tags: - - long-running-tasks + - long-running-tasks summary: Get Task Result operationId: get_task_result parameters: - - required: true - schema: - title: Task Id - type: string - name: task_id - in: path + - required: true + schema: + title: Task Id + type: string + name: task_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: @@ -1592,214 +1590,214 @@ paths: /v0/projects/{project_uuid}/checkpoint/{ref_id}/iterations: get: tags: - - projects - - metamodeling + - projects + - metamodeling summary: List Project Iterations operationId: list_project_iterations parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Ref Id - type: integer - name: ref_id - in: path - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Ref Id + type: integer + name: ref_id + in: path + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_ProjectIterationItem_" + $ref: '#/components/schemas/Page_ProjectIterationItem_' /v0/projects/{project_uuid}/checkpoint/{ref_id}/iterations/-/results: get: tags: - - projects - - metamodeling + - projects + - metamodeling summary: List Project Iterations Results operationId: list_project_iterations_results parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Ref Id - type: integer - name: ref_id - in: path - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Ref Id + type: integer + name: ref_id + in: path + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_ProjectIterationResultItem_" + $ref: '#/components/schemas/Page_ProjectIterationResultItem_' /view: get: tags: - - nih-sparc + - nih-sparc summary: Get Redirection To Viewer description: Opens a viewer in osparc for data in the NIH-sparc portal operationId: get_redirection_to_viewer parameters: - - required: true - schema: - title: File Type - type: string - name: file_type - in: query - - required: true - schema: - title: Viewer Key - pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ - type: string - name: viewer_key - in: query - - required: true - schema: - title: File Size - exclusiveMinimum: true - type: integer - minimum: 0 - name: file_size - in: query - - required: true - schema: - title: Download Link - maxLength: 2083 - minLength: 1 - type: string - format: uri - name: download_link - in: query - - required: false - schema: - title: File Name - type: string - default: unknown - name: file_name - in: query + - required: true + schema: + title: File Type + type: string + name: file_type + in: query + - required: true + schema: + title: Viewer Key + pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ + type: string + name: viewer_key + in: query + - required: true + schema: + title: File Size + exclusiveMinimum: true + type: integer + minimum: 0 + name: file_size + in: query + - required: true + schema: + title: Download Link + maxLength: 2083 + minLength: 1 + type: string + format: uri + name: download_link + in: query + - required: false + schema: + title: File Name + type: string + default: unknown + name: file_name + in: query requestBody: content: application/json: schema: - $ref: "#/components/schemas/ServiceKeyVersion" + $ref: '#/components/schemas/ServiceKeyVersion' required: true responses: - "302": + '302': description: Opens osparc and starts viewer for selected data /study/{id}: get: tags: - - nih-sparc + - nih-sparc summary: Get Redirection To Study Page description: Opens a study published in osparc operationId: get_redirection_to_study_page parameters: - - required: true - schema: - title: Id - type: string - format: uuid - name: id - in: path + - required: true + schema: + title: Id + type: string + format: uuid + name: id + in: path responses: - "302": + '302': description: Opens osparc and opens a copy of publised study /v0/services: get: tags: - - nih-sparc + - nih-sparc summary: List Latest Services description: Returns a list latest version of services operationId: list_latest_services responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet__' /v0/viewers: get: tags: - - nih-sparc + - nih-sparc summary: List Viewers - description: "Lists all publically available viewers + description: 'Lists all publically available viewers Notice that this might contain multiple services for the same filetype - If file_type is provided, then it filters viewer for that filetype" + If file_type is provided, then it filters viewer for that filetype' operationId: list_viewers parameters: - - required: false - schema: - title: File Type - type: string - name: file_type - in: query + - required: false + schema: + title: File Type + type: string + name: file_type + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__' /v0/viewers/default: get: tags: - - nih-sparc + - nih-sparc summary: List Default Viewers - description: "Lists the default viewer for each supported filetype + description: 'Lists the default viewer for each supported filetype This was interfaced as a subcollection of viewers because it is a very common @@ -1809,1101 +1807,1098 @@ paths: Only publicaly available viewers - If file_type is provided, then it filters viewer for that filetype" + If file_type is provided, then it filters viewer for that filetype' operationId: list_default_viewers parameters: - - required: false - schema: - title: File Type - type: string - name: file_type - in: query + - required: false + schema: + title: File Type + type: string + name: file_type + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__' /v0/credits-price: get: tags: - - products + - products summary: Get Current Product Price operationId: get_current_product_price responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GetCreditPrice_" + $ref: '#/components/schemas/Envelope_GetCreditPrice_' /v0/products/{product_name}: get: tags: - - products + - products summary: Get Product operationId: get_product parameters: - - required: true - schema: - title: Product Name - anyOf: - - maxLength: 50 - minLength: 1 - type: string - - enum: - - current - type: string - name: product_name - in: path + - required: true + schema: + title: Product Name + anyOf: + - maxLength: 50 + minLength: 1 + type: string + - enum: + - current + type: string + name: product_name + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GetProduct_" + $ref: '#/components/schemas/Envelope_GetProduct_' /v0/products/{product_name}/templates/{template_id}: put: tags: - - products + - products summary: Update Product Template operationId: update_product_template parameters: - - required: true - schema: - title: Product Name - anyOf: - - maxLength: 50 - minLength: 1 - type: string - - enum: - - current - type: string - name: product_name - in: path - - required: true - schema: - title: Template Id - maxLength: 50 + - required: true + schema: + title: Product Name + anyOf: + - maxLength: 50 minLength: 1 type: string - name: template_id - in: path + - enum: + - current + type: string + name: product_name + in: path + - required: true + schema: + title: Template Id + maxLength: 50 + minLength: 1 + type: string + name: template_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/UpdateProductTemplate" + $ref: '#/components/schemas/UpdateProductTemplate' required: true responses: - "204": + '204': description: Successful Response /v0/invitation:generate: post: tags: - - products + - products summary: Generate Invitation operationId: generate_invitation requestBody: content: application/json: schema: - $ref: "#/components/schemas/GenerateInvitation" + $ref: '#/components/schemas/GenerateInvitation' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_InvitationGenerated_" + $ref: '#/components/schemas/Envelope_InvitationGenerated_' /v0/projects/{project_uuid}/comments: get: tags: - - projects - - comments + - projects + - comments summary: Retrieve all comments for a specific project. operationId: list_project_comments parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: false - schema: - title: Limit - type: integer - default: 20 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: false + schema: + title: Limit + type: integer + default: 20 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.projects_comments.ProjectsCommentsAPI__" + $ref: '#/components/schemas/Envelope_list_models_library.projects_comments.ProjectsCommentsAPI__' post: tags: - - projects - - comments - summary: - Create a new comment for a specific project. The request body should + - projects + - comments + summary: Create a new comment for a specific project. The request body should contain the comment contents and user information. operationId: create_project_comment parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/_ProjectCommentsBodyParams" + $ref: '#/components/schemas/_ProjectCommentsBodyParams' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_Literal__comment_id____pydantic.types.PositiveInt__" + $ref: '#/components/schemas/Envelope_dict_Literal__comment_id____pydantic.types.PositiveInt__' /v0/projects/{project_uuid}/comments/{comment_id}: get: tags: - - projects - - comments + - projects + - comments summary: Retrieve a specific comment by its ID within a project. operationId: get_project_comment parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Comment Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: comment_id - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Comment Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: comment_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectsCommentsAPI_" + $ref: '#/components/schemas/Envelope_ProjectsCommentsAPI_' put: tags: - - projects - - comments - summary: - Update the contents of a specific comment for a project. The request + - projects + - comments + summary: Update the contents of a specific comment for a project. The request body should contain the updated comment contents. operationId: update_project_comment parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Comment Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: comment_id - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Comment Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: comment_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/_ProjectCommentsBodyParams" + $ref: '#/components/schemas/_ProjectCommentsBodyParams' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectsCommentsAPI_" + $ref: '#/components/schemas/Envelope_ProjectsCommentsAPI_' delete: tags: - - projects - - comments + - projects + - comments summary: Delete a specific comment associated with a project. operationId: delete_project_comment parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Comment Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: comment_id - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Comment Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: comment_id + in: path responses: - "204": + '204': description: Successful Response /v0/projects: get: tags: - - projects + - projects summary: List Projects operationId: list_projects parameters: - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query - - required: false - schema: - allOf: - - $ref: "#/components/schemas/ProjectTypeAPI" - default: all - name: type - in: query - - required: false - schema: - title: Show Hidden - type: boolean - default: false - name: show_hidden - in: query - - required: false - schema: - title: Search - maxLength: 100 - type: string - name: search - in: query + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query + - required: false + schema: + allOf: + - $ref: '#/components/schemas/ProjectTypeAPI' + default: all + name: type + in: query + - required: false + schema: + title: Show Hidden + type: boolean + default: false + name: show_hidden + in: query + - required: false + schema: + title: Search + maxLength: 100 + type: string + name: search + in: query requestBody: content: application/json: schema: - $ref: "#/components/schemas/Body_list_projects" + $ref: '#/components/schemas/Body_list_projects' responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_ProjectListItem_" + $ref: '#/components/schemas/Page_ProjectListItem_' post: tags: - - projects + - projects summary: Creates a new project or copies an existing one operationId: create_project parameters: - - required: false - schema: - title: From Study - type: string - format: uuid - name: from_study - in: query - - required: false - schema: - title: As Template - type: boolean - default: false - name: as_template - in: query - - required: false - schema: - title: Copy Data - type: boolean - default: true - name: copy_data - in: query - - required: false - schema: - title: Hidden - type: boolean - default: false - name: hidden - in: query + - required: false + schema: + title: From Study + type: string + format: uuid + name: from_study + in: query + - required: false + schema: + title: As Template + type: boolean + default: false + name: as_template + in: query + - required: false + schema: + title: Copy Data + type: boolean + default: true + name: copy_data + in: query + - required: false + schema: + title: Hidden + type: boolean + default: false + name: hidden + in: query requestBody: content: application/json: schema: - title: " Create" + title: ' Create' anyOf: - - $ref: "#/components/schemas/ProjectCreateNew" - - $ref: "#/components/schemas/ProjectCopyOverride" + - $ref: '#/components/schemas/ProjectCreateNew' + - $ref: '#/components/schemas/ProjectCopyOverride' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TaskGet_" + $ref: '#/components/schemas/Envelope_TaskGet_' /v0/projects/active: get: tags: - - projects + - projects summary: Get Active Project operationId: get_active_project parameters: - - required: true - schema: - title: Client Session Id - type: string - name: client_session_id - in: query + - required: true + schema: + title: Client Session Id + type: string + name: client_session_id + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' /v0/projects/{project_id}: get: tags: - - projects + - projects summary: Get Project operationId: get_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' put: tags: - - projects + - projects summary: Replace Project description: Replaces (i.e. full update) a project resource operationId: replace_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ProjectReplace" + $ref: '#/components/schemas/ProjectReplace' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' delete: tags: - - projects + - projects summary: Delete Project operationId: delete_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "204": + '204': description: Successful Response patch: tags: - - projects + - projects summary: Update Project description: Partial update of a project resource operationId: update_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ProjectUpdate" + $ref: '#/components/schemas/ProjectUpdate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' /v0/projects/{project_id}:clone: post: tags: - - projects + - projects summary: Clone Project operationId: clone_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TaskGet_" + $ref: '#/components/schemas/Envelope_TaskGet_' /v0/projects/{project_id}/inactivity: get: tags: - - projects + - projects summary: Get Project Inactivity operationId: get_project_inactivity parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GetProjectInactivityResponse_" + $ref: '#/components/schemas/Envelope_GetProjectInactivityResponse_' /v0/projects/{project_id}/metadata: get: tags: - - projects - - metadata + - projects + - metadata summary: Get Project Metadata operationId: get_project_metadata parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectMetadataGet_" + $ref: '#/components/schemas/Envelope_ProjectMetadataGet_' patch: tags: - - projects - - metadata + - projects + - metadata summary: Update Project Metadata operationId: update_project_metadata parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ProjectMetadataUpdate" + $ref: '#/components/schemas/ProjectMetadataUpdate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectMetadataGet_" + $ref: '#/components/schemas/Envelope_ProjectMetadataGet_' /v0/projects/{project_id}/nodes: post: tags: - - projects - - nodes + - projects + - nodes summary: Create Node operationId: create_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/NodeCreate" + $ref: '#/components/schemas/NodeCreate' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_NodeCreated_" + $ref: '#/components/schemas/Envelope_NodeCreated_' /v0/projects/{project_id}/nodes/{node_id}: get: tags: - - projects - - nodes + - projects + - nodes summary: Get Node operationId: get_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__" + $ref: '#/components/schemas/Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__' delete: tags: - - projects - - nodes + - projects + - nodes summary: Delete Node operationId: delete_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "204": + '204': description: Successful Response /v0/projects/{project_id}/nodes/{node_id}:retrieve: post: tags: - - projects - - nodes + - projects + - nodes summary: Retrieve Node operationId: retrieve_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/NodeRetrieve" + $ref: '#/components/schemas/NodeRetrieve' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_NodeRetrieved_" + $ref: '#/components/schemas/Envelope_NodeRetrieved_' /v0/projects/{project_id}/nodes/{node_id}:start: post: tags: - - projects - - nodes + - projects + - nodes summary: Start Node operationId: start_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "204": + '204': description: Successful Response /v0/projects/{project_id}/nodes/{node_id}:stop: post: tags: - - projects - - nodes + - projects + - nodes summary: Stop Node operationId: stop_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TaskGet_" + $ref: '#/components/schemas/Envelope_TaskGet_' /v0/projects/{project_id}/nodes/{node_id}:restart: post: tags: - - projects - - nodes + - projects + - nodes summary: Restart Node description: Note that it has only effect on nodes associated to dynamic services operationId: restart_node parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "204": + '204': description: Successful Response /v0/projects/{project_id}/nodes/{node_id}/resources: get: tags: - - projects - - nodes + - projects + - nodes summary: Get Node Resources operationId: get_node_resources parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__" + $ref: '#/components/schemas/Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__' put: tags: - - projects - - nodes + - projects + - nodes summary: Replace Node Resources operationId: replace_node_resources parameters: - - required: true - schema: - title: Project Id - type: string - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + name: node_id + in: path requestBody: content: application/json: schema: - title: " New" + title: ' New' type: object required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__" + $ref: '#/components/schemas/Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__' /v0/projects/{project_id}/nodes/-/services:access: get: tags: - - projects - - nodes + - projects + - nodes summary: Check whether provided group has access to the project services operationId: get_project_services_access_for_gid parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: true - schema: - title: For Gid - exclusiveMinimum: true - type: integer - minimum: 0 - name: for_gid - in: query + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: true + schema: + title: For Gid + exclusiveMinimum: true + type: integer + minimum: 0 + name: for_gid + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope__ProjectGroupAccess_" + $ref: '#/components/schemas/Envelope__ProjectGroupAccess_' /v0/projects/{project_id}/nodes/-/preview: get: tags: - - projects - - nodes + - projects + - nodes summary: Lists all previews in the node's project operationId: list_project_nodes_previews parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview__' /v0/projects/{project_id}/nodes/{node_id}/preview: get: tags: - - projects - - nodes + - projects + - nodes summary: Gets a give node's preview operationId: get_project_node_preview parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - format: uuid - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + format: uuid + name: node_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope__ProjectNodePreview_" - "404": + $ref: '#/components/schemas/Envelope__ProjectNodePreview_' + '404': description: Node has no preview /v0/projects/{project_id}/nodes/{node_id}/pricing-unit: get: tags: - - projects + - projects summary: Get currently connected pricing unit to the project node. operationId: get_project_node_pricing_unit parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - format: uuid - name: node_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + format: uuid + name: node_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Union_PricingUnitGet__NoneType__" - ? /v0/projects/{project_id}/nodes/{node_id}/pricing-plan/{pricing_plan_id}/pricing-unit/{pricing_unit_id} - : put: + $ref: '#/components/schemas/Envelope_Union_PricingUnitGet__NoneType__' + /v0/projects/{project_id}/nodes/{node_id}/pricing-plan/{pricing_plan_id}/pricing-unit/{pricing_unit_id}: + put: tags: - - projects - summary: - Connect pricing unit to the project node (Project node can have only + - projects + summary: Connect pricing unit to the project node (Project node can have only one pricing unit) operationId: connect_pricing_unit_to_project_node parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: true - schema: - title: Node Id - type: string - format: uuid - name: node_id - in: path - - required: true - schema: - title: Pricing Plan Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: pricing_plan_id - in: path - - required: true - schema: - title: Pricing Unit Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: pricing_unit_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: true + schema: + title: Node Id + type: string + format: uuid + name: node_id + in: path + - required: true + schema: + title: Pricing Plan Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: pricing_plan_id + in: path + - required: true + schema: + title: Pricing Unit Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: pricing_unit_id + in: path responses: - "204": + '204': description: Successful Response /v0/projects/{project_id}/inputs: get: tags: - - projects - - ports + - projects + - ports summary: Get Project Inputs description: New in version *0.10* operationId: get_project_inputs parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__" + $ref: '#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__' patch: tags: - - projects - - ports + - projects + - ports summary: Update Project Inputs description: New in version *0.10* operationId: update_project_inputs parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: schema: - title: " Updates" + title: ' Updates' type: array items: - $ref: "#/components/schemas/ProjectInputUpdate" + $ref: '#/components/schemas/ProjectInputUpdate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__" + $ref: '#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__' /v0/projects/{project_id}/outputs: get: tags: - - projects - - ports + - projects + - ports summary: Get Project Outputs description: New in version *0.10* operationId: get_project_outputs parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectOutputGet__" + $ref: '#/components/schemas/Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectOutputGet__' /v0/projects/{project_id}/metadata/ports: get: tags: - - projects - - ports + - projects + - ports summary: List Project Metadata Ports description: New in version *0.12* operationId: list_project_metadata_ports parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet__' /v0/projects/{project_id}:open: post: tags: - - projects + - projects summary: Open Project operationId: open_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: false - schema: - title: Disable Service Auto Start - type: boolean - default: false - name: disable_service_auto_start - in: query + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: false + schema: + title: Disable Service Auto Start + type: boolean + default: false + name: disable_service_auto_start + in: query requestBody: content: application/json: @@ -2912,26 +2907,26 @@ paths: type: string required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' /v0/projects/{project_id}:close: post: tags: - - projects + - projects summary: Close Project operationId: close_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path requestBody: content: application/json: @@ -2940,140 +2935,140 @@ paths: type: string required: true responses: - "204": + '204': description: Successful Response /v0/projects/{project_id}/state: get: tags: - - projects + - projects summary: Get Project State operationId: get_project_state parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectState_" + $ref: '#/components/schemas/Envelope_ProjectState_' /v0/projects/{project_uuid}/tags/{tag_id}: put: tags: - - projects - - tags + - projects + - tags summary: Add Tag description: Links an existing label with an existing study operationId: add_tag parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Tag Id - type: integer - name: tag_id - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Tag Id + type: integer + name: tag_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' delete: tags: - - projects - - tags + - projects + - tags summary: Remove Tag description: Removes an existing link between a label and a study operationId: remove_tag parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: true - schema: - title: Tag Id - type: integer - name: tag_id - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: true + schema: + title: Tag Id + type: integer + name: tag_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProjectGet_" + $ref: '#/components/schemas/Envelope_ProjectGet_' /v0/projects/{project_id}/wallet: get: tags: - - projects + - projects summary: Get current connected wallet to the project. operationId: get_project_wallet parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_Union_WalletGet__NoneType__" + $ref: '#/components/schemas/Envelope_Union_WalletGet__NoneType__' /v0/projects/{project_id}/wallet/{wallet_id}: put: tags: - - projects + - projects summary: Connect wallet to the project (Project can have only one wallet) operationId: connect_wallet_to_project parameters: - - required: true - schema: - title: Project Id - type: string - format: uuid - name: project_id - in: path - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Project Id + type: string + format: uuid + name: project_id + in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGet_" + $ref: '#/components/schemas/Envelope_WalletGet_' /v0/publications/service-submission: post: tags: - - publication + - publication summary: Service Submission description: Submits files with new service candidate operationId: service_submission @@ -3081,89 +3076,88 @@ paths: content: multipart/form-data: schema: - $ref: "#/components/schemas/Body_service_submission" + $ref: '#/components/schemas/Body_service_submission' required: true responses: - "204": + '204': description: Successful Response /v0/services/-/resource-usages: get: tags: - - usage - summary: - Retrieve finished and currently running user services (user and product + - usage + summary: Retrieve finished and currently running user services (user and product are taken from context, optionally wallet_id parameter might be provided). operationId: list_resource_usage_services parameters: - - required: false - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: query - - required: false - schema: - title: Limit - type: integer - default: 20 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: false + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: query + - required: false + schema: + title: Limit + type: integer + default: 20 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.resource_usage.ServiceRunGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.resource_usage.ServiceRunGet__' /v0/pricing-plans/{pricing_plan_id}/pricing-units/{pricing_unit_id}: get: tags: - - pricing-plans + - pricing-plans summary: Retrieve detail information about pricing unit operationId: get_pricing_plan_unit parameters: - - required: true - schema: - title: Pricing Plan Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: pricing_plan_id - in: path - - required: true - schema: - title: Pricing Unit Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: pricing_unit_id - in: path + - required: true + schema: + title: Pricing Plan Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: pricing_plan_id + in: path + - required: true + schema: + title: Pricing Unit Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: pricing_unit_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_PricingUnitGet_" + $ref: '#/components/schemas/Envelope_PricingUnitGet_' /v0/storage/locations: get: tags: - - storage + - storage summary: Get available storage locations description: Returns the list of available storage locations operationId: get_storage_locations responses: - "200": + '200': description: Successful Response content: application/json: @@ -3171,1377 +3165,1368 @@ paths: title: Response Get Storage Locations type: array items: - $ref: "#/components/schemas/DatasetMetaData" + $ref: '#/components/schemas/DatasetMetaData' /v0/storage/locations/{location_id}:sync: post: tags: - - storage - summary: - Manually triggers the synchronisation of the file meta data table in + - storage + summary: Manually triggers the synchronisation of the file meta data table in the database description: Returns an object containing added, changed and removed paths operationId: synchronise_meta_data_table parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: false - schema: - title: Dry Run - type: boolean - default: false - name: dry_run - in: query - - required: false - schema: - title: Fire And Forget - type: boolean - default: false - name: fire_and_forget - in: query + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: false + schema: + title: Dry Run + type: boolean + default: false + name: dry_run + in: query + - required: false + schema: + title: Fire And Forget + type: boolean + default: false + name: fire_and_forget + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TableSynchronisation_" + $ref: '#/components/schemas/Envelope_TableSynchronisation_' /v0/storage/locations/{location_id}/datasets: get: tags: - - storage + - storage summary: Get datasets metadata description: returns all the top level datasets a user has access to operationId: get_datasets_metadata parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.storage.schemas.DatasetMetaData__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.storage.schemas.DatasetMetaData__' /v0/storage/locations/{location_id}/files/metadata: get: tags: - - storage + - storage summary: Get datasets metadata - description: - returns all the file meta data a user has access to (uuid_filter + description: returns all the file meta data a user has access to (uuid_filter may be used) operationId: get_files_metadata parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: false - schema: - title: Uuid Filter - type: string - default: "" - name: uuid_filter - in: query - - description: - Automatic directory expansion. This will be replaced by pagination + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: false + schema: + title: Uuid Filter + type: string + default: '' + name: uuid_filter + in: query + - description: Automatic directory expansion. This will be replaced by pagination + the future + required: false + schema: + title: Expand Dirs + type: boolean + description: Automatic directory expansion. This will be replaced by pagination the future - required: false - schema: - title: Expand Dirs - type: boolean - description: - Automatic directory expansion. This will be replaced by pagination - the future - default: true - name: expand_dirs - in: query + default: true + name: expand_dirs + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.storage.schemas.DatasetMetaData__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.storage.schemas.DatasetMetaData__' /v0/storage/locations/{location_id}/datasets/{dataset_id}/metadata: get: tags: - - storage + - storage summary: Get Files Metadata description: returns all the file meta data inside dataset with dataset_id operationId: get_files_metadata_dataset parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: Dataset Id - type: string - name: dataset_id - in: path - - description: - Automatic directory expansion. This will be replaced by pagination + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: Dataset Id + type: string + name: dataset_id + in: path + - description: Automatic directory expansion. This will be replaced by pagination + the future + required: false + schema: + title: Expand Dirs + type: boolean + description: Automatic directory expansion. This will be replaced by pagination the future - required: false - schema: - title: Expand Dirs - type: boolean - description: - Automatic directory expansion. This will be replaced by pagination - the future - default: true - name: expand_dirs - in: query + default: true + name: expand_dirs + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_storage.FileMetaDataGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_storage.FileMetaDataGet__' /v0/storage/locations/{location_id}/files/{file_id}/metadata: get: tags: - - storage + - storage summary: Get File Metadata - description: - returns the file meta data of file_id if user_id has the rights + description: returns the file meta data of file_id if user_id has the rights to operationId: get_file_metadata parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: title: Response Get File Metadata anyOf: - - $ref: "#/components/schemas/FileMetaData" - - $ref: "#/components/schemas/Envelope_FileMetaDataGet_" + - $ref: '#/components/schemas/FileMetaData' + - $ref: '#/components/schemas/Envelope_FileMetaDataGet_' /v0/storage/locations/{location_id}/files/{file_id}: get: tags: - - storage + - storage summary: Returns download link for requested file description: creates a download file link if user has the rights to operationId: download_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path - - required: false - schema: - allOf: - - $ref: "#/components/schemas/LinkType" - default: PRESIGNED - name: link_type - in: query + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path + - required: false + schema: + allOf: + - $ref: '#/components/schemas/LinkType' + default: PRESIGNED + name: link_type + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_PresignedLink_" + $ref: '#/components/schemas/Envelope_PresignedLink_' put: tags: - - storage + - storage summary: Returns upload link - description: - creates one or more upload file links if user has the rights to, + description: creates one or more upload file links if user has the rights to, expects the client to complete/abort upload operationId: upload_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path - - required: true - schema: - title: File Size - type: integer - name: file_size - in: query - - required: false - schema: - allOf: - - $ref: "#/components/schemas/LinkType" - default: PRESIGNED - name: link_type - in: query - - required: false - schema: - title: Is Directory - type: boolean - default: false - name: is_directory - in: query + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path + - required: true + schema: + title: File Size + type: integer + name: file_size + in: query + - required: false + schema: + allOf: + - $ref: '#/components/schemas/LinkType' + default: PRESIGNED + name: link_type + in: query + - required: false + schema: + title: Is Directory + type: boolean + default: false + name: is_directory + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: title: Response Upload File anyOf: - - $ref: "#/components/schemas/Envelope_FileUploadSchema_" - - $ref: "#/components/schemas/Envelope_AnyUrl_" + - $ref: '#/components/schemas/Envelope_FileUploadSchema_' + - $ref: '#/components/schemas/Envelope_AnyUrl_' delete: tags: - - storage + - storage summary: Deletes File description: deletes file if user has the rights to operationId: delete_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path responses: - "204": + '204': description: Successful Response /v0/storage/locations/{location_id}/files/{file_id}:abort: post: tags: - - storage + - storage summary: Abort Upload File - description: "aborts an upload if user has the rights to, and reverts + description: 'aborts an upload if user has the rights to, and reverts - to the latest version if available, else will delete the file" + to the latest version if available, else will delete the file' operationId: abort_upload_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path responses: - "204": + '204': description: Successful Response /v0/storage/locations/{location_id}/files/{file_id}:complete: post: tags: - - storage + - storage summary: Complete Upload File description: completes an upload if the user has the rights to operationId: complete_upload_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/Envelope_FileUploadCompletionBody_" + $ref: '#/components/schemas/Envelope_FileUploadCompletionBody_' required: true responses: - "202": + '202': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_FileUploadCompleteResponse_" - ? /v0/storage/locations/{location_id}/files/{file_id}:complete/futures/{future_id} - : post: + $ref: '#/components/schemas/Envelope_FileUploadCompleteResponse_' + /v0/storage/locations/{location_id}/files/{file_id}:complete/futures/{future_id}: + post: tags: - - storage + - storage summary: Check for upload completion description: Returns state of upload completion operationId: is_completed_upload_file parameters: - - required: true - schema: - title: Location Id - type: integer - name: location_id - in: path - - required: true - schema: - title: File Id - type: string - name: file_id - in: path - - required: true - schema: - title: Future Id - type: string - name: future_id - in: path + - required: true + schema: + title: Location Id + type: integer + name: location_id + in: path + - required: true + schema: + title: File Id + type: string + name: file_id + in: path + - required: true + schema: + title: Future Id + type: string + name: future_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_FileUploadCompleteFutureResponse_" + $ref: '#/components/schemas/Envelope_FileUploadCompleteFutureResponse_' /v0/tags: get: tags: - - tags + - tags summary: List Tags operationId: list_tags responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.tags._handlers.TagGet__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.tags._handlers.TagGet__' post: tags: - - tags + - tags summary: Create Tag operationId: create_tag requestBody: content: application/json: schema: - $ref: "#/components/schemas/TagCreate" + $ref: '#/components/schemas/TagCreate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TagGet_" + $ref: '#/components/schemas/Envelope_TagGet_' /v0/tags/{tag_id}: delete: tags: - - tags + - tags summary: Delete Tag operationId: delete_tag parameters: - - required: true - schema: - title: Tag Id - type: integer - name: tag_id - in: path + - required: true + schema: + title: Tag Id + type: integer + name: tag_id + in: path responses: - "204": + '204': description: Successful Response patch: tags: - - tags + - tags summary: Update Tag operationId: update_tag parameters: - - required: true - schema: - title: Tag Id - type: integer - name: tag_id - in: path + - required: true + schema: + title: Tag Id + type: integer + name: tag_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/TagUpdate" + $ref: '#/components/schemas/TagUpdate' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_TagGet_" + $ref: '#/components/schemas/Envelope_TagGet_' /v0/me: get: tags: - - user + - user summary: Get My Profile operationId: get_my_profile responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ProfileGet_" + $ref: '#/components/schemas/Envelope_ProfileGet_' put: tags: - - user + - user summary: Update My Profile operationId: update_my_profile requestBody: content: application/json: schema: - $ref: "#/components/schemas/ProfileUpdate" + $ref: '#/components/schemas/ProfileUpdate' required: true responses: - "204": + '204': description: Successful Response /v0/me/preferences/{preference_id}: patch: tags: - - user + - user summary: Set Frontend Preference operationId: set_frontend_preference parameters: - - required: true - schema: - title: Preference Id - type: string - name: preference_id - in: path + - required: true + schema: + title: Preference Id + type: string + name: preference_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/PatchRequestBody" + $ref: '#/components/schemas/PatchRequestBody' required: true responses: - "204": + '204': description: Successful Response /v0/me/tokens: get: tags: - - user + - user summary: List Tokens operationId: list_tokens responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.users.schemas.ThirdPartyToken__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.users.schemas.ThirdPartyToken__' post: tags: - - user + - user summary: Create Token operationId: create_token requestBody: content: application/json: schema: - $ref: "#/components/schemas/TokenCreate" + $ref: '#/components/schemas/TokenCreate' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ThirdPartyToken_" + $ref: '#/components/schemas/Envelope_ThirdPartyToken_' /v0/me/tokens/{service}: get: tags: - - user + - user summary: Get Token operationId: get_token parameters: - - required: true - schema: - title: Service - type: string - name: service - in: path + - required: true + schema: + title: Service + type: string + name: service + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_ThirdPartyToken_" + $ref: '#/components/schemas/Envelope_ThirdPartyToken_' delete: tags: - - user + - user summary: Delete Token operationId: delete_token parameters: - - required: true - schema: - title: Service - type: string - name: service - in: path + - required: true + schema: + title: Service + type: string + name: service + in: path responses: - "204": + '204': description: Successful Response /v0/me/notifications: get: tags: - - user + - user summary: List User Notifications operationId: list_user_notifications responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.users._notifications.UserNotification__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.users._notifications.UserNotification__' post: tags: - - user + - user summary: Create User Notification operationId: create_user_notification requestBody: content: application/json: schema: - $ref: "#/components/schemas/UserNotificationCreate" + $ref: '#/components/schemas/UserNotificationCreate' required: true responses: - "204": + '204': description: Successful Response /v0/me/notifications/{notification_id}: patch: tags: - - user + - user summary: Mark Notification As Read operationId: mark_notification_as_read parameters: - - required: true - schema: - title: Notification Id - type: string - name: notification_id - in: path + - required: true + schema: + title: Notification Id + type: string + name: notification_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/UserNotificationPatch" + $ref: '#/components/schemas/UserNotificationPatch' required: true responses: - "204": + '204': description: Successful Response /v0/me/permissions: get: tags: - - user + - user summary: List User Permissions operationId: list_user_permissions responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.users.schemas.PermissionGet__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.users.schemas.PermissionGet__' /v0/repos/projects: get: tags: - - repository + - repository summary: List Repos operationId: list_repos parameters: - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_RepoApiModel_" + $ref: '#/components/schemas/Page_RepoApiModel_' /v0/repos/projects/{project_uuid}/checkpoints: get: tags: - - repository + - repository summary: List Checkpoints operationId: list_checkpoints parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_CheckpointApiModel_" + $ref: '#/components/schemas/Page_CheckpointApiModel_' post: tags: - - repository + - repository summary: Create Checkpoint operationId: create_checkpoint parameters: - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/CheckpointNew" + $ref: '#/components/schemas/CheckpointNew' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_CheckpointApiModel_" + $ref: '#/components/schemas/Envelope_CheckpointApiModel_' /v0/repos/projects/{project_uuid}/checkpoints/{ref_id}: get: tags: - - repository + - repository summary: Get Checkpoint operationId: get_checkpoint parameters: - - required: true - schema: - title: Ref Id - anyOf: - - type: integer - - type: string - - enum: - - HEAD - type: string - name: ref_id - in: path - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Ref Id + anyOf: + - type: integer + - type: string + - enum: + - HEAD + type: string + name: ref_id + in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_CheckpointApiModel_" + $ref: '#/components/schemas/Envelope_CheckpointApiModel_' patch: tags: - - repository + - repository summary: Update Checkpoint description: Update Checkpoint Annotations operationId: update_checkpoint parameters: - - required: true - schema: - title: Ref Id - anyOf: - - type: integer - - type: string - name: ref_id - in: path - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Ref Id + anyOf: + - type: integer + - type: string + name: ref_id + in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/CheckpointAnnotations" + $ref: '#/components/schemas/CheckpointAnnotations' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_CheckpointApiModel_" + $ref: '#/components/schemas/Envelope_CheckpointApiModel_' /v0/repos/projects/{project_uuid}/checkpoints/{ref_id}/workbench/view: get: tags: - - repository + - repository summary: View Project Workbench operationId: view_project_workbench parameters: - - required: true - schema: - title: Ref Id - anyOf: - - type: integer - - type: string - name: ref_id - in: path - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Ref Id + anyOf: + - type: integer + - type: string + name: ref_id + in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WorkbenchViewApiModel_" + $ref: '#/components/schemas/Envelope_WorkbenchViewApiModel_' /v0/repos/projects/{project_uuid}/checkpoints/{ref_id}:checkout: post: tags: - - repository + - repository summary: Checkout operationId: checkout parameters: - - required: true - schema: - title: Ref Id - anyOf: - - type: integer - - type: string - name: ref_id - in: path - - required: true - schema: - title: Project Uuid - type: string - format: uuid - name: project_uuid - in: path + - required: true + schema: + title: Ref Id + anyOf: + - type: integer + - type: string + name: ref_id + in: path + - required: true + schema: + title: Project Uuid + type: string + format: uuid + name: project_uuid + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_CheckpointApiModel_" + $ref: '#/components/schemas/Envelope_CheckpointApiModel_' /v0/wallets: get: tags: - - wallets + - wallets summary: List Wallets operationId: list_wallets responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits__' post: tags: - - wallets + - wallets summary: Create Wallet operationId: create_wallet requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateWalletBodyParams" + $ref: '#/components/schemas/CreateWalletBodyParams' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGet_" + $ref: '#/components/schemas/Envelope_WalletGet_' /v0/wallets/default: get: tags: - - wallets + - wallets summary: Get Default Wallet operationId: get_default_wallet responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGetWithAvailableCredits_" + $ref: '#/components/schemas/Envelope_WalletGetWithAvailableCredits_' /v0/wallets/{wallet_id}: get: tags: - - wallets + - wallets summary: Get Wallet operationId: get_wallet parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGetWithAvailableCredits_" + $ref: '#/components/schemas/Envelope_WalletGetWithAvailableCredits_' put: tags: - - wallets + - wallets summary: Update Wallet operationId: update_wallet parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/PutWalletBodyParams" + $ref: '#/components/schemas/PutWalletBodyParams' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGet_" + $ref: '#/components/schemas/Envelope_WalletGet_' /v0/wallets/{wallet_id}/payments: post: tags: - - wallets + - wallets summary: Create Payment description: Creates payment to wallet `wallet_id` operationId: create_payment parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateWalletPayment" + $ref: '#/components/schemas/CreateWalletPayment' required: true responses: - "202": + '202': description: Payment initialized content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletPaymentInitiated_" + $ref: '#/components/schemas/Envelope_WalletPaymentInitiated_' /v0/wallets/-/payments: get: tags: - - wallets + - wallets summary: List All Payments - description: - Lists all user payments to his/her wallets (only the ones he/she + description: Lists all user payments to his/her wallets (only the ones he/she created) operationId: list_all_payments parameters: - - required: false - schema: - title: Limit - exclusiveMaximum: true - minimum: 1 - type: integer - default: 20 - maximum: 50 - name: limit - in: query - - required: false - schema: - title: Offset - minimum: 0 - type: integer - default: 0 - name: offset - in: query + - required: false + schema: + title: Limit + exclusiveMaximum: true + minimum: 1 + type: integer + default: 20 + maximum: 50 + name: limit + in: query + - required: false + schema: + title: Offset + minimum: 0 + type: integer + default: 0 + name: offset + in: query responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Page_PaymentTransaction_" + $ref: '#/components/schemas/Page_PaymentTransaction_' /v0/wallets/{wallet_id}/payments/{payment_id}:cancel: post: tags: - - wallets + - wallets summary: Cancel Payment operationId: cancel_payment parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Payment Id - maxLength: 50 - minLength: 1 - type: string - name: payment_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Payment Id + maxLength: 50 + minLength: 1 + type: string + name: payment_id + in: path responses: - "204": + '204': description: Successfully cancelled /v0/wallets/{wallet_id}/payments-methods:init: post: tags: - - wallets + - wallets summary: Init Creation Of Payment Method operationId: init_creation_of_payment_method parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "202": + '202': description: Successfully initialized content: application/json: schema: - $ref: "#/components/schemas/Envelope_PaymentMethodInitiated_" + $ref: '#/components/schemas/Envelope_PaymentMethodInitiated_' /v0/wallets/{wallet_id}/payments-methods/{payment_method_id}:cancel: post: tags: - - wallets + - wallets summary: Cancel Creation Of Payment Method operationId: cancel_creation_of_payment_method parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Payment Method Id - maxLength: 50 - minLength: 1 - type: string - name: payment_method_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Payment Method Id + maxLength: 50 + minLength: 1 + type: string + name: payment_method_id + in: path responses: - "204": + '204': description: Successfully cancelled /v0/wallets/{wallet_id}/payments-methods: get: tags: - - wallets + - wallets summary: List Payments Methods description: Lists all payments method associated to `wallet_id` operationId: list_payments_methods parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_models_library.api_schemas_webserver.wallets.PaymentMethodGet__" + $ref: '#/components/schemas/Envelope_list_models_library.api_schemas_webserver.wallets.PaymentMethodGet__' /v0/wallets/{wallet_id}/payments-methods/{payment_method_id}: get: tags: - - wallets + - wallets summary: Get Payment Method operationId: get_payment_method parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Payment Method Id - maxLength: 50 - minLength: 1 - type: string - name: payment_method_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Payment Method Id + maxLength: 50 + minLength: 1 + type: string + name: payment_method_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_PaymentMethodGet_" + $ref: '#/components/schemas/Envelope_PaymentMethodGet_' delete: tags: - - wallets + - wallets summary: Delete Payment Method operationId: delete_payment_method parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Payment Method Id - maxLength: 50 - minLength: 1 - type: string - name: payment_method_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Payment Method Id + maxLength: 50 + minLength: 1 + type: string + name: payment_method_id + in: path responses: - "204": + '204': description: Successfully deleted /v0/wallets/{wallet_id}/payments-methods/{payment_method_id}:pay: post: tags: - - wallets + - wallets summary: Pay With Payment Method operationId: pay_with_payment_method parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Payment Method Id - maxLength: 50 - minLength: 1 - type: string - name: payment_method_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Payment Method Id + maxLength: 50 + minLength: 1 + type: string + name: payment_method_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateWalletPayment" + $ref: '#/components/schemas/CreateWalletPayment' required: true responses: - "202": + '202': description: Pay with payment-method content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletPaymentInitiated_" + $ref: '#/components/schemas/Envelope_WalletPaymentInitiated_' /v0/wallets/{wallet_id}/auto-recharge: get: tags: - - wallets + - wallets summary: Get Wallet Autorecharge operationId: get_wallet_autorecharge parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GetWalletAutoRecharge_" + $ref: '#/components/schemas/Envelope_GetWalletAutoRecharge_' put: tags: - - wallets + - wallets summary: Replace Wallet Autorecharge operationId: replace_wallet_autorecharge parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/ReplaceWalletAutoRecharge" + $ref: '#/components/schemas/ReplaceWalletAutoRecharge' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_GetWalletAutoRecharge_" + $ref: '#/components/schemas/Envelope_GetWalletAutoRecharge_' /v0/wallets/{wallet_id}/groups/{group_id}: put: tags: - - wallets + - wallets summary: Update Wallet Group operationId: update_wallet_group parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Group Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: group_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Group Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: group_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/_WalletsGroupsBodyParams" + $ref: '#/components/schemas/_WalletsGroupsBodyParams' required: true responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGroupGet_" + $ref: '#/components/schemas/Envelope_WalletGroupGet_' post: tags: - - wallets + - wallets summary: Create Wallet Group operationId: create_wallet_group parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Group Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: group_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Group Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: group_id + in: path requestBody: content: application/json: schema: - $ref: "#/components/schemas/_WalletsGroupsBodyParams" + $ref: '#/components/schemas/_WalletsGroupsBodyParams' required: true responses: - "201": + '201': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_WalletGroupGet_" + $ref: '#/components/schemas/Envelope_WalletGroupGet_' delete: tags: - - wallets + - wallets summary: Delete Wallet Group operationId: delete_wallet_group parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path - - required: true - schema: - title: Group Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: group_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path + - required: true + schema: + title: Group Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: group_id + in: path responses: - "204": + '204': description: Successful Response /v0/wallets/{wallet_id}/groups: get: tags: - - wallets + - wallets summary: List Wallet Groups operationId: list_wallet_groups parameters: - - required: true - schema: - title: Wallet Id - exclusiveMinimum: true - type: integer - minimum: 0 - name: wallet_id - in: path + - required: true + schema: + title: Wallet Id + exclusiveMinimum: true + type: integer + minimum: 0 + name: wallet_id + in: path responses: - "200": + '200': description: Successful Response content: application/json: schema: - $ref: "#/components/schemas/Envelope_list_simcore_service_webserver.wallets._groups_api.WalletGroupGet__" + $ref: '#/components/schemas/Envelope_list_simcore_service_webserver.wallets._groups_api.WalletGroupGet__' components: schemas: AccessEnum: title: AccessEnum enum: - - ReadAndWrite - - Invisible - - ReadOnly + - ReadAndWrite + - Invisible + - ReadOnly type: string description: An enumeration. AccessRights: title: AccessRights required: - - read - - write - - delete + - read + - write + - delete type: object properties: read: @@ -4560,7 +4545,7 @@ components: AccountRequestInfo: title: AccountRequestInfo required: - - form + - form type: object properties: form: @@ -4569,14 +4554,14 @@ components: Activity: title: Activity required: - - stats - - limits + - stats + - limits type: object properties: stats: - $ref: "#/components/schemas/Stats" + $ref: '#/components/schemas/Stats' limits: - $ref: "#/components/schemas/Limits" + $ref: '#/components/schemas/Limits' queued: title: Queued type: boolean @@ -4585,19 +4570,19 @@ components: type: object properties: me: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' organizations: title: Organizations type: array items: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' all: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' product: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' example: me: - gid: "27" + gid: '27' label: A user description: A very special user accessRights: @@ -4605,24 +4590,23 @@ components: write: true delete: true organizations: - - gid: "15" - label: ITIS Foundation - description: - The Foundation for Research on Information Technologies in - Society - accessRights: - read: true - write: false - delete: false - - gid: "16" - label: Blue Fundation - description: Some foundation - accessRights: - read: true - write: false - delete: false + - gid: '15' + label: ITIS Foundation + description: The Foundation for Research on Information Technologies in + Society + accessRights: + read: true + write: false + delete: false + - gid: '16' + label: Blue Fundation + description: Some foundation + accessRights: + read: true + write: false + delete: false all: - gid: "0" + gid: '0' label: All description: Open to all users accessRights: @@ -4632,17 +4616,17 @@ components: Annotation: title: Annotation required: - - type - - color - - attributes + - type + - color + - attributes type: object properties: type: title: Type enum: - - note - - rect - - text + - note + - rect + - text type: string color: title: Color @@ -4656,14 +4640,14 @@ components: Announcement: title: Announcement required: - - id - - products - - start - - end - - title - - description - - link - - widgets + - id + - products + - start + - end + - title + - description + - link + - widgets type: object properties: id: @@ -4696,14 +4680,14 @@ components: type: array items: enum: - - login - - ribbon - - user-menu + - login + - ribbon + - user-menu type: string ApiKeyCreate: title: ApiKeyCreate required: - - display_name + - display_name type: object properties: display_name: @@ -4713,16 +4697,15 @@ components: expiration: title: Expiration type: number - description: - Time delta from creation time to expiration. If None, then + description: Time delta from creation time to expiration. If None, then it does not expire. format: time-delta ApiKeyGet: title: ApiKeyGet required: - - display_name - - api_key - - api_secret + - display_name + - api_key + - api_secret type: object properties: display_name: @@ -4738,8 +4721,8 @@ components: AppStatusCheck: title: AppStatusCheck required: - - app_name - - version + - app_name + - version type: object properties: app_name: @@ -4758,8 +4741,7 @@ components: sessions: title: Sessions type: object - description: - Client sessions info. If single session per app, then is denoted + description: Client sessions info. If single session per app, then is denoted as main default: {} url: @@ -4774,15 +4756,14 @@ components: maxLength: 65536 minLength: 1 type: string - description: - Link to diagnostics report sub-resource. This MIGHT take some + description: Link to diagnostics report sub-resource. This MIGHT take some time to compute format: uri Author: title: Author required: - - name - - email + - name + - email type: object properties: name: @@ -4803,9 +4784,9 @@ components: Badge: title: Badge required: - - name - - image - - url + - name + - image + - url type: object properties: name: @@ -4835,25 +4816,25 @@ components: title: Order By type: array items: - $ref: "#/components/schemas/ProjectOrderBy" + $ref: '#/components/schemas/ProjectOrderBy' filters: - $ref: "#/components/schemas/ProjectListFilters" + $ref: '#/components/schemas/ProjectListFilters' Body_service_submission: title: Body_service_submission required: - - _file + - _file type: object properties: _file: - title: " File" + title: ' File' type: string description: metadata.json submission file format: binary BootChoice: title: BootChoice required: - - label - - description + - label + - description type: object properties: label: @@ -4865,18 +4846,18 @@ components: BootMode: title: BootMode enum: - - CPU - - GPU - - MPI + - CPU + - GPU + - MPI type: string description: An enumeration. BootOption: title: BootOption required: - - label - - description - - default - - items + - label + - description + - default + - items type: object properties: label: @@ -4892,11 +4873,11 @@ components: title: Items type: object additionalProperties: - $ref: "#/components/schemas/BootChoice" + $ref: '#/components/schemas/BootChoice' ChangeEmailBody: title: ChangeEmailBody required: - - email + - email type: object properties: email: @@ -4907,9 +4888,9 @@ components: ChangePasswordBody: title: ChangePasswordBody required: - - current - - new - - confirm + - current + - new + - confirm type: object properties: current: @@ -4941,11 +4922,11 @@ components: CheckpointApiModel: title: CheckpointApiModel required: - - id - - checksum - - created_at - - tags - - url + - id + - checksum + - created_at + - tags + - url type: object properties: id: @@ -4985,7 +4966,7 @@ components: CheckpointNew: title: CheckpointNew required: - - tag + - tag type: object properties: tag: @@ -4997,9 +4978,9 @@ components: ClusterAccessRights: title: ClusterAccessRights required: - - read - - write - - delete + - read + - write + - delete type: object properties: read: @@ -5018,10 +4999,10 @@ components: ClusterCreate: title: ClusterCreate required: - - name - - type - - endpoint - - authentication + - name + - type + - endpoint + - authentication type: object properties: name: @@ -5032,7 +5013,7 @@ components: title: Description type: string type: - $ref: "#/components/schemas/ClusterTypeInModel" + $ref: '#/components/schemas/ClusterTypeInModel' owner: title: Owner exclusiveMinimum: true @@ -5054,27 +5035,26 @@ components: authentication: title: Authentication anyOf: - - $ref: "#/components/schemas/SimpleAuthentication" - - $ref: "#/components/schemas/KerberosAuthentication" - - $ref: "#/components/schemas/JupyterHubTokenAuthentication" + - $ref: '#/components/schemas/SimpleAuthentication' + - $ref: '#/components/schemas/KerberosAuthentication' + - $ref: '#/components/schemas/JupyterHubTokenAuthentication' accessRights: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/ClusterAccessRights" + $ref: '#/components/schemas/ClusterAccessRights' ClusterDetails: title: ClusterDetails required: - - scheduler - - dashboardLink + - scheduler + - dashboardLink type: object properties: scheduler: title: Scheduler allOf: - - $ref: "#/components/schemas/Scheduler" - description: - This contains dask scheduler information given by the underlying + - $ref: '#/components/schemas/Scheduler' + description: This contains dask scheduler information given by the underlying dask library dashboardLink: title: Dashboardlink @@ -5086,12 +5066,12 @@ components: ClusterGet: title: ClusterGet required: - - name - - type - - owner - - endpoint - - authentication - - id + - name + - type + - owner + - endpoint + - authentication + - id type: object properties: name: @@ -5102,7 +5082,7 @@ components: title: Description type: string type: - $ref: "#/components/schemas/ClusterTypeInModel" + $ref: '#/components/schemas/ClusterTypeInModel' owner: title: Owner exclusiveMinimum: true @@ -5124,16 +5104,16 @@ components: authentication: title: Authentication anyOf: - - $ref: "#/components/schemas/SimpleAuthentication" - - $ref: "#/components/schemas/KerberosAuthentication" - - $ref: "#/components/schemas/JupyterHubTokenAuthentication" - - $ref: "#/components/schemas/NoAuthentication" + - $ref: '#/components/schemas/SimpleAuthentication' + - $ref: '#/components/schemas/KerberosAuthentication' + - $ref: '#/components/schemas/JupyterHubTokenAuthentication' + - $ref: '#/components/schemas/NoAuthentication' description: Dask gateway authentication accessRights: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/ClusterAccessRights" + $ref: '#/components/schemas/ClusterAccessRights' id: title: Id minimum: 0 @@ -5150,7 +5130,7 @@ components: title: Description type: string type: - $ref: "#/components/schemas/ClusterTypeInModel" + $ref: '#/components/schemas/ClusterTypeInModel' owner: title: Owner exclusiveMinimum: true @@ -5171,19 +5151,19 @@ components: authentication: title: Authentication anyOf: - - $ref: "#/components/schemas/SimpleAuthentication" - - $ref: "#/components/schemas/KerberosAuthentication" - - $ref: "#/components/schemas/JupyterHubTokenAuthentication" + - $ref: '#/components/schemas/SimpleAuthentication' + - $ref: '#/components/schemas/KerberosAuthentication' + - $ref: '#/components/schemas/JupyterHubTokenAuthentication' accessRights: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/ClusterAccessRights" + $ref: '#/components/schemas/ClusterAccessRights' ClusterPing: title: ClusterPing required: - - endpoint - - authentication + - endpoint + - authentication type: object properties: endpoint: @@ -5195,23 +5175,23 @@ components: authentication: title: Authentication anyOf: - - $ref: "#/components/schemas/SimpleAuthentication" - - $ref: "#/components/schemas/KerberosAuthentication" - - $ref: "#/components/schemas/JupyterHubTokenAuthentication" - - $ref: "#/components/schemas/NoAuthentication" + - $ref: '#/components/schemas/SimpleAuthentication' + - $ref: '#/components/schemas/KerberosAuthentication' + - $ref: '#/components/schemas/JupyterHubTokenAuthentication' + - $ref: '#/components/schemas/NoAuthentication' description: Dask gateway authentication ClusterTypeInModel: title: ClusterTypeInModel enum: - - AWS - - ON_PREMISE - - ON_DEMAND + - AWS + - ON_PREMISE + - ON_DEMAND type: string description: An enumeration. CodePageParams: title: CodePageParams required: - - message + - message type: object properties: message: @@ -5256,7 +5236,7 @@ components: CreateWalletBodyParams: title: CreateWalletBodyParams required: - - name + - name type: object properties: name: @@ -5271,7 +5251,7 @@ components: CreateWalletPayment: title: CreateWalletPayment required: - - priceDollars + - priceDollars type: object properties: priceDollars: @@ -5288,23 +5268,23 @@ components: DatCoreFileLink: title: DatCoreFileLink required: - - store - - path - - label - - dataset + - store + - path + - label + - dataset type: object properties: store: title: Store type: integer - description: "The store identifier: 0 for simcore S3, 1 for datcore" + description: 'The store identifier: 0 for simcore S3, 1 for datcore' path: title: Path anyOf: - - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ - type: string - - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ - type: string + - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ + type: string + - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ + type: string description: The path to the file in the storage provider domain label: title: Label @@ -5313,14 +5293,12 @@ components: eTag: title: Etag type: string - description: - Entity tag that uniquely represents the file. The method to + description: Entity tag that uniquely represents the file. The method to generate the tag is not specified (black box). dataset: title: Dataset type: string - description: - Unique identifier to access the dataset on datcore (REQUIRED + description: Unique identifier to access the dataset on datcore (REQUIRED for datcore) additionalProperties: false description: I/O port type to hold a link to a file in DATCORE storage @@ -5347,7 +5325,7 @@ components: DownloadLink: title: DownloadLink required: - - downloadLink + - downloadLink type: object properties: downloadLink: @@ -5361,8 +5339,7 @@ components: type: string description: Display name additionalProperties: false - description: - I/O port type to hold a generic download link to a file (e.g. S3 + description: I/O port type to hold a generic download link to a file (e.g. S3 pre-signed link, etc) EmptyModel: title: EmptyModel @@ -5374,7 +5351,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/AllUsersGroups" + $ref: '#/components/schemas/AllUsersGroups' error: title: Error Envelope_AnyUrl_: @@ -5394,7 +5371,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/AppStatusCheck" + $ref: '#/components/schemas/AppStatusCheck' error: title: Error Envelope_CheckpointApiModel_: @@ -5402,7 +5379,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/CheckpointApiModel" + $ref: '#/components/schemas/CheckpointApiModel' error: title: Error Envelope_ClusterDetails_: @@ -5410,7 +5387,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ClusterDetails" + $ref: '#/components/schemas/ClusterDetails' error: title: Error Envelope_ClusterGet_: @@ -5418,7 +5395,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ClusterGet" + $ref: '#/components/schemas/ClusterGet' error: title: Error Envelope_ComputationTaskGet_: @@ -5426,7 +5403,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ComputationTaskGet" + $ref: '#/components/schemas/ComputationTaskGet' error: title: Error Envelope_Error_: @@ -5434,7 +5411,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/Error" + $ref: '#/components/schemas/Error' error: title: Error Envelope_FileMetaDataGet_: @@ -5442,7 +5419,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/FileMetaDataGet" + $ref: '#/components/schemas/FileMetaDataGet' error: title: Error Envelope_FileUploadCompleteFutureResponse_: @@ -5450,7 +5427,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/FileUploadCompleteFutureResponse" + $ref: '#/components/schemas/FileUploadCompleteFutureResponse' error: title: Error Envelope_FileUploadCompleteResponse_: @@ -5458,7 +5435,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/FileUploadCompleteResponse" + $ref: '#/components/schemas/FileUploadCompleteResponse' error: title: Error Envelope_FileUploadCompletionBody_: @@ -5466,7 +5443,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/FileUploadCompletionBody" + $ref: '#/components/schemas/FileUploadCompletionBody' error: title: Error Envelope_FileUploadSchema_: @@ -5474,7 +5451,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/FileUploadSchema" + $ref: '#/components/schemas/FileUploadSchema' error: title: Error Envelope_GetCreditPrice_: @@ -5482,7 +5459,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/GetCreditPrice" + $ref: '#/components/schemas/GetCreditPrice' error: title: Error Envelope_GetProduct_: @@ -5490,7 +5467,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/GetProduct" + $ref: '#/components/schemas/GetProduct' error: title: Error Envelope_GetProjectInactivityResponse_: @@ -5498,7 +5475,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/GetProjectInactivityResponse" + $ref: '#/components/schemas/GetProjectInactivityResponse' error: title: Error Envelope_GetWalletAutoRecharge_: @@ -5506,7 +5483,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/GetWalletAutoRecharge" + $ref: '#/components/schemas/GetWalletAutoRecharge' error: title: Error Envelope_GroupUserGet_: @@ -5514,7 +5491,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/GroupUserGet" + $ref: '#/components/schemas/GroupUserGet' error: title: Error Envelope_HealthInfoDict_: @@ -5522,7 +5499,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/HealthInfoDict" + $ref: '#/components/schemas/HealthInfoDict' error: title: Error Envelope_InvitationGenerated_: @@ -5530,7 +5507,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/InvitationGenerated" + $ref: '#/components/schemas/InvitationGenerated' error: title: Error Envelope_InvitationInfo_: @@ -5538,7 +5515,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/InvitationInfo" + $ref: '#/components/schemas/InvitationInfo' error: title: Error Envelope_Log_: @@ -5546,7 +5523,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/Log" + $ref: '#/components/schemas/Log' error: title: Error Envelope_LoginNextPage_: @@ -5554,7 +5531,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/LoginNextPage" + $ref: '#/components/schemas/LoginNextPage' error: title: Error Envelope_NodeCreated_: @@ -5562,7 +5539,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/NodeCreated" + $ref: '#/components/schemas/NodeCreated' error: title: Error Envelope_NodeRetrieved_: @@ -5570,7 +5547,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/NodeRetrieved" + $ref: '#/components/schemas/NodeRetrieved' error: title: Error Envelope_PaymentMethodGet_: @@ -5578,7 +5555,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/PaymentMethodGet" + $ref: '#/components/schemas/PaymentMethodGet' error: title: Error Envelope_PaymentMethodInitiated_: @@ -5586,7 +5563,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/PaymentMethodInitiated" + $ref: '#/components/schemas/PaymentMethodInitiated' error: title: Error Envelope_PresignedLink_: @@ -5594,7 +5571,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/PresignedLink" + $ref: '#/components/schemas/PresignedLink' error: title: Error Envelope_PricingUnitGet_: @@ -5602,7 +5579,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/PricingUnitGet" + $ref: '#/components/schemas/PricingUnitGet' error: title: Error Envelope_ProfileGet_: @@ -5610,7 +5587,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ProfileGet" + $ref: '#/components/schemas/ProfileGet' error: title: Error Envelope_ProjectGet_: @@ -5618,7 +5595,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ProjectGet" + $ref: '#/components/schemas/ProjectGet' error: title: Error Envelope_ProjectMetadataGet_: @@ -5626,7 +5603,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ProjectMetadataGet" + $ref: '#/components/schemas/ProjectMetadataGet' error: title: Error Envelope_ProjectState_: @@ -5634,7 +5611,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ProjectState" + $ref: '#/components/schemas/ProjectState' error: title: Error Envelope_ProjectsCommentsAPI_: @@ -5642,7 +5619,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ProjectsCommentsAPI" + $ref: '#/components/schemas/ProjectsCommentsAPI' error: title: Error Envelope_RegisterPhoneNextPage_: @@ -5650,7 +5627,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/RegisterPhoneNextPage" + $ref: '#/components/schemas/RegisterPhoneNextPage' error: title: Error Envelope_ResearchResource_: @@ -5658,7 +5635,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ResearchResource" + $ref: '#/components/schemas/ResearchResource' error: title: Error Envelope_ServiceGet_: @@ -5666,7 +5643,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/models_library__api_schemas_webserver__catalog__ServiceGet" + $ref: '#/components/schemas/models_library__api_schemas_webserver__catalog__ServiceGet' error: title: Error Envelope_ServiceInputGet_: @@ -5674,7 +5651,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ServiceInputGet" + $ref: '#/components/schemas/ServiceInputGet' error: title: Error Envelope_ServicePricingPlanGet_: @@ -5682,7 +5659,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/ServicePricingPlanGet" + $ref: '#/components/schemas/ServicePricingPlanGet' error: title: Error Envelope_StatusDiagnosticsGet_: @@ -5690,7 +5667,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/StatusDiagnosticsGet" + $ref: '#/components/schemas/StatusDiagnosticsGet' error: title: Error Envelope_TableSynchronisation_: @@ -5698,7 +5675,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/TableSynchronisation" + $ref: '#/components/schemas/TableSynchronisation' error: title: Error Envelope_TagGet_: @@ -5706,7 +5683,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/TagGet" + $ref: '#/components/schemas/TagGet' error: title: Error Envelope_TaskGet_: @@ -5714,7 +5691,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/TaskGet" + $ref: '#/components/schemas/TaskGet' error: title: Error Envelope_TaskStatus_: @@ -5722,7 +5699,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/TaskStatus" + $ref: '#/components/schemas/TaskStatus' error: title: Error Envelope_ThirdPartyToken_: @@ -5730,22 +5707,21 @@ components: type: object properties: data: - $ref: "#/components/schemas/ThirdPartyToken" + $ref: '#/components/schemas/ThirdPartyToken' error: title: Error - ? Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__ - : title: - Envelope[Union[NodeGetIdle, NodeGetUnknown, RunningDynamicServiceDetails, + Envelope_Union_NodeGetIdle__NodeGetUnknown__RunningDynamicServiceDetails__NodeGet__: + title: Envelope[Union[NodeGetIdle, NodeGetUnknown, RunningDynamicServiceDetails, NodeGet]] type: object properties: data: title: Data anyOf: - - $ref: "#/components/schemas/NodeGetIdle" - - $ref: "#/components/schemas/NodeGetUnknown" - - $ref: "#/components/schemas/RunningDynamicServiceDetails" - - $ref: "#/components/schemas/NodeGet" + - $ref: '#/components/schemas/NodeGetIdle' + - $ref: '#/components/schemas/NodeGetUnknown' + - $ref: '#/components/schemas/RunningDynamicServiceDetails' + - $ref: '#/components/schemas/NodeGet' error: title: Error Envelope_Union_PricingUnitGet__NoneType__: @@ -5753,7 +5729,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/PricingUnitGet" + $ref: '#/components/schemas/PricingUnitGet' error: title: Error Envelope_Union_TestFailed__TestPassed__: @@ -5763,8 +5739,8 @@ components: data: title: Data anyOf: - - $ref: "#/components/schemas/TestFailed" - - $ref: "#/components/schemas/TestPassed" + - $ref: '#/components/schemas/TestFailed' + - $ref: '#/components/schemas/TestPassed' error: title: Error Envelope_Union_WalletGet__NoneType__: @@ -5772,7 +5748,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WalletGet" + $ref: '#/components/schemas/WalletGet' error: title: Error Envelope_UsersGroup_: @@ -5780,7 +5756,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/UsersGroup" + $ref: '#/components/schemas/UsersGroup' error: title: Error Envelope_WalletGetWithAvailableCredits_: @@ -5788,7 +5764,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WalletGetWithAvailableCredits" + $ref: '#/components/schemas/WalletGetWithAvailableCredits' error: title: Error Envelope_WalletGet_: @@ -5796,7 +5772,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WalletGet" + $ref: '#/components/schemas/WalletGet' error: title: Error Envelope_WalletGroupGet_: @@ -5804,7 +5780,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WalletGroupGet" + $ref: '#/components/schemas/WalletGroupGet' error: title: Error Envelope_WalletPaymentInitiated_: @@ -5812,7 +5788,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WalletPaymentInitiated" + $ref: '#/components/schemas/WalletPaymentInitiated' error: title: Error Envelope_WorkbenchViewApiModel_: @@ -5820,7 +5796,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/WorkbenchViewApiModel" + $ref: '#/components/schemas/WorkbenchViewApiModel' error: title: Error Envelope__ComputationStarted_: @@ -5828,7 +5804,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/_ComputationStarted" + $ref: '#/components/schemas/_ComputationStarted' error: title: Error Envelope__ProjectGroupAccess_: @@ -5836,7 +5812,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/_ProjectGroupAccess" + $ref: '#/components/schemas/_ProjectGroupAccess' error: title: Error Envelope__ProjectNodePreview_: @@ -5844,7 +5820,7 @@ components: type: object properties: data: - $ref: "#/components/schemas/_ProjectNodePreview" + $ref: '#/components/schemas/_ProjectNodePreview' error: title: Error Envelope_dict_Literal__comment_id____pydantic.types.PositiveInt__: @@ -5860,8 +5836,8 @@ components: minimum: 0 error: title: Error - ? Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__ - : title: Envelope[dict[models_library.docker.DockerGenericTag, models_library.services_resources.ImageResources]] + Envelope_dict_models_library.docker.DockerGenericTag__models_library.services_resources.ImageResources__: + title: Envelope[dict[models_library.docker.DockerGenericTag, models_library.services_resources.ImageResources]] type: object properties: data: @@ -5878,37 +5854,37 @@ components: type: object error: title: Error - ? Envelope_dict_uuid.UUID__models_library.api_schemas_webserver.activity.Activity__ - : title: Envelope[dict[uuid.UUID, models_library.api_schemas_webserver.activity.Activity]] + Envelope_dict_uuid.UUID__models_library.api_schemas_webserver.activity.Activity__: + title: Envelope[dict[uuid.UUID, models_library.api_schemas_webserver.activity.Activity]] type: object properties: data: title: Data type: object additionalProperties: - $ref: "#/components/schemas/Activity" + $ref: '#/components/schemas/Activity' error: title: Error - ? Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__ - : title: Envelope[dict[uuid.UUID, simcore_service_webserver.projects._ports_handlers.ProjectInputGet]] + Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectInputGet__: + title: Envelope[dict[uuid.UUID, simcore_service_webserver.projects._ports_handlers.ProjectInputGet]] type: object properties: data: title: Data type: object additionalProperties: - $ref: "#/components/schemas/ProjectInputGet" + $ref: '#/components/schemas/ProjectInputGet' error: title: Error - ? Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectOutputGet__ - : title: Envelope[dict[uuid.UUID, simcore_service_webserver.projects._ports_handlers.ProjectOutputGet]] + Envelope_dict_uuid.UUID__simcore_service_webserver.projects._ports_handlers.ProjectOutputGet__: + title: Envelope[dict[uuid.UUID, simcore_service_webserver.projects._ports_handlers.ProjectOutputGet]] type: object properties: data: title: Data type: object additionalProperties: - $ref: "#/components/schemas/ProjectOutputGet" + $ref: '#/components/schemas/ProjectOutputGet' error: title: Error Envelope_list_models_library.api_schemas_long_running_tasks.tasks.TaskGet__: @@ -5919,7 +5895,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/TaskGet" + $ref: '#/components/schemas/TaskGet' error: title: Error Envelope_list_models_library.api_schemas_storage.FileMetaDataGet__: @@ -5930,7 +5906,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/FileMetaDataGet" + $ref: '#/components/schemas/FileMetaDataGet' error: title: Error Envelope_list_models_library.api_schemas_webserver.catalog.ServiceGet__: @@ -5941,29 +5917,29 @@ components: title: Data type: array items: - $ref: "#/components/schemas/models_library__api_schemas_webserver__catalog__ServiceGet" + $ref: '#/components/schemas/models_library__api_schemas_webserver__catalog__ServiceGet' error: title: Error - ? Envelope_list_models_library.api_schemas_webserver.catalog.ServiceInputGet__ - : title: Envelope[list[models_library.api_schemas_webserver.catalog.ServiceInputGet]] + Envelope_list_models_library.api_schemas_webserver.catalog.ServiceInputGet__: + title: Envelope[list[models_library.api_schemas_webserver.catalog.ServiceInputGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/ServiceInputGet" + $ref: '#/components/schemas/ServiceInputGet' error: title: Error - ? Envelope_list_models_library.api_schemas_webserver.catalog.ServiceOutputGet__ - : title: Envelope[list[models_library.api_schemas_webserver.catalog.ServiceOutputGet]] + Envelope_list_models_library.api_schemas_webserver.catalog.ServiceOutputGet__: + title: Envelope[list[models_library.api_schemas_webserver.catalog.ServiceOutputGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/ServiceOutputGet" + $ref: '#/components/schemas/ServiceOutputGet' error: title: Error Envelope_list_models_library.api_schemas_webserver.clusters.ClusterGet__: @@ -5974,7 +5950,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/ClusterGet" + $ref: '#/components/schemas/ClusterGet' error: title: Error Envelope_list_models_library.api_schemas_webserver.groups.GroupUserGet__: @@ -5985,40 +5961,40 @@ components: title: Data type: array items: - $ref: "#/components/schemas/GroupUserGet" + $ref: '#/components/schemas/GroupUserGet' error: title: Error - ? Envelope_list_models_library.api_schemas_webserver.resource_usage.ServiceRunGet__ - : title: Envelope[list[models_library.api_schemas_webserver.resource_usage.ServiceRunGet]] + Envelope_list_models_library.api_schemas_webserver.resource_usage.ServiceRunGet__: + title: Envelope[list[models_library.api_schemas_webserver.resource_usage.ServiceRunGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/ServiceRunGet" + $ref: '#/components/schemas/ServiceRunGet' error: title: Error - ? Envelope_list_models_library.api_schemas_webserver.wallets.PaymentMethodGet__ - : title: Envelope[list[models_library.api_schemas_webserver.wallets.PaymentMethodGet]] + Envelope_list_models_library.api_schemas_webserver.wallets.PaymentMethodGet__: + title: Envelope[list[models_library.api_schemas_webserver.wallets.PaymentMethodGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/PaymentMethodGet" + $ref: '#/components/schemas/PaymentMethodGet' error: title: Error - ? Envelope_list_models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits__ - : title: Envelope[list[models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits]] + Envelope_list_models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits__: + title: Envelope[list[models_library.api_schemas_webserver.wallets.WalletGetWithAvailableCredits]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/WalletGetWithAvailableCredits" + $ref: '#/components/schemas/WalletGetWithAvailableCredits' error: title: Error Envelope_list_models_library.projects_comments.ProjectsCommentsAPI__: @@ -6029,7 +6005,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/ProjectsCommentsAPI" + $ref: '#/components/schemas/ProjectsCommentsAPI' error: title: Error Envelope_list_models_library.services.ServicePortKey__: @@ -6044,37 +6020,37 @@ components: type: string error: title: Error - ? Envelope_list_simcore_service_webserver.announcements._models.Announcement__ - : title: Envelope[list[simcore_service_webserver.announcements._models.Announcement]] + Envelope_list_simcore_service_webserver.announcements._models.Announcement__: + title: Envelope[list[simcore_service_webserver.announcements._models.Announcement]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/Announcement" + $ref: '#/components/schemas/Announcement' error: title: Error - ? Envelope_list_simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview__ - : title: Envelope[list[simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview]] + Envelope_list_simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview__: + title: Envelope[list[simcore_service_webserver.projects._nodes_handlers._ProjectNodePreview]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/_ProjectNodePreview" + $ref: '#/components/schemas/_ProjectNodePreview' error: title: Error - ? Envelope_list_simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet__ - : title: Envelope[list[simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet]] + Envelope_list_simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet__: + title: Envelope[list[simcore_service_webserver.projects._ports_handlers.ProjectMetadataPortGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/ProjectMetadataPortGet" + $ref: '#/components/schemas/ProjectMetadataPortGet' error: title: Error Envelope_list_simcore_service_webserver.scicrunch.models.ResourceHit__: @@ -6085,7 +6061,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/ResourceHit" + $ref: '#/components/schemas/ResourceHit' error: title: Error Envelope_list_simcore_service_webserver.storage.schemas.DatasetMetaData__: @@ -6096,29 +6072,29 @@ components: title: Data type: array items: - $ref: "#/components/schemas/DatasetMetaData" + $ref: '#/components/schemas/DatasetMetaData' error: title: Error - ? Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet__ - : title: Envelope[list[simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet]] + Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet__: + title: Envelope[list[simcore_service_webserver.studies_dispatcher._rest_handlers.ServiceGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/simcore_service_webserver__studies_dispatcher___rest_handlers__ServiceGet" + $ref: '#/components/schemas/simcore_service_webserver__studies_dispatcher___rest_handlers__ServiceGet' error: title: Error - ? Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__ - : title: Envelope[list[simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer]] + Envelope_list_simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer__: + title: Envelope[list[simcore_service_webserver.studies_dispatcher._rest_handlers.Viewer]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/Viewer" + $ref: '#/components/schemas/Viewer' error: title: Error Envelope_list_simcore_service_webserver.tags._handlers.TagGet__: @@ -6129,18 +6105,18 @@ components: title: Data type: array items: - $ref: "#/components/schemas/TagGet" + $ref: '#/components/schemas/TagGet' error: title: Error - ? Envelope_list_simcore_service_webserver.users._notifications.UserNotification__ - : title: Envelope[list[simcore_service_webserver.users._notifications.UserNotification]] + Envelope_list_simcore_service_webserver.users._notifications.UserNotification__: + title: Envelope[list[simcore_service_webserver.users._notifications.UserNotification]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/UserNotification" + $ref: '#/components/schemas/UserNotification' error: title: Error Envelope_list_simcore_service_webserver.users.schemas.PermissionGet__: @@ -6151,7 +6127,7 @@ components: title: Data type: array items: - $ref: "#/components/schemas/PermissionGet" + $ref: '#/components/schemas/PermissionGet' error: title: Error Envelope_list_simcore_service_webserver.users.schemas.ThirdPartyToken__: @@ -6162,18 +6138,18 @@ components: title: Data type: array items: - $ref: "#/components/schemas/ThirdPartyToken" + $ref: '#/components/schemas/ThirdPartyToken' error: title: Error - ? Envelope_list_simcore_service_webserver.wallets._groups_api.WalletGroupGet__ - : title: Envelope[list[simcore_service_webserver.wallets._groups_api.WalletGroupGet]] + Envelope_list_simcore_service_webserver.wallets._groups_api.WalletGroupGet__: + title: Envelope[list[simcore_service_webserver.wallets._groups_api.WalletGroupGet]] type: object properties: data: title: Data type: array items: - $ref: "#/components/schemas/WalletGroupGet" + $ref: '#/components/schemas/WalletGroupGet' error: title: Error Envelope_str_: @@ -6193,13 +6169,13 @@ components: title: Logs type: array items: - $ref: "#/components/schemas/Log" + $ref: '#/components/schemas/Log' description: log messages errors: title: Errors type: array items: - $ref: "#/components/schemas/ErrorItem" + $ref: '#/components/schemas/ErrorItem' description: errors metadata status: title: Status @@ -6208,15 +6184,14 @@ components: ErrorItem: title: ErrorItem required: - - code - - message + - code + - message type: object properties: code: title: Code type: string - description: - Typically the name of the exception that produced it otherwise + description: Typically the name of the exception that produced it otherwise some known error code message: title: Message @@ -6233,9 +6208,9 @@ components: ExtractedResults: title: ExtractedResults required: - - progress - - labels - - values + - progress + - labels + - values type: object properties: progress: @@ -6263,8 +6238,8 @@ components: 0f1e38c9-dcb7-443c-a745-91b97ac28ccc: out_1: 1 out_2: - - 3 - - 4 + - 3 + - 4 2d0ce8b9-c9c3-43ce-ad2f-ad493898de37: in_1: 7 445b44d1-59b3-425c-ac48-7c13e0f2ea5b: @@ -6310,32 +6285,31 @@ components: type: boolean example: file_uuid: simcore-testing/105/1000/3 - location_id: "0" + location_id: '0' project_name: futurology node_name: alpha file_name: example.txt file_id: N:package:e263da07-2d89-45a6-8b0f-61061b913873 - created_at: "2019-06-19T12:29:03.308611Z" - last_modified: "2019-06-19T12:29:03.78852Z" + created_at: '2019-06-19T12:29:03.308611Z' + last_modified: '2019-06-19T12:29:03.78852Z' file_size: 73 entity_tag: a87ff679a2f3e71d9181a67b7542122c is_directory: false FileMetaDataGet: title: FileMetaDataGet required: - - file_uuid - - location_id - - file_name - - file_id - - created_at - - last_modified + - file_uuid + - location_id + - file_name + - file_id + - created_at + - last_modified type: object properties: file_uuid: title: File Uuid type: string - description: - NOT a unique ID, like (api|uuid)/uuid/file_name or DATCORE + description: NOT a unique ID, like (api|uuid)/uuid/file_name or DATCORE folder structure location_id: title: Location Id @@ -6356,12 +6330,11 @@ components: file_id: title: File Id anyOf: - - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ - type: string - - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ - type: string - description: - THIS IS the unique ID for the file. either (api|project_id)/node_id/file_name.ext + - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ + type: string + - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ + type: string + description: THIS IS the unique ID for the file. either (api|project_id)/node_id/file_name.ext for S3 and N:package:UUID for datcore created_at: title: Created At @@ -6374,21 +6347,19 @@ components: file_size: title: File Size anyOf: - - type: integer - - type: integer + - type: integer + - type: integer description: File size in bytes (-1 means invalid) default: -1 entity_tag: title: Entity Tag type: string - description: - Entity tag (or ETag), represents a specific version of the + description: Entity tag (or ETag), represents a specific version of the file, None if invalid upload or datcore is_soft_link: title: Is Soft Link type: boolean - description: - If true, this file is a soft link.i.e. is another entry with + description: If true, this file is a soft link.i.e. is another entry with the same object_name default: false is_directory: @@ -6400,25 +6371,24 @@ components: title: Sha256 Checksum pattern: ^[a-fA-F0-9]{64}$ type: string - description: - "SHA256 message digest of the file content. Main purpose: cheap - lookup." + description: 'SHA256 message digest of the file content. Main purpose: cheap + lookup.' additionalProperties: false FileUploadCompleteFutureResponse: title: FileUploadCompleteFutureResponse required: - - state + - state type: object properties: state: - $ref: "#/components/schemas/FileUploadCompleteState" + $ref: '#/components/schemas/FileUploadCompleteState' e_tag: title: E Tag type: string FileUploadCompleteLinks: title: FileUploadCompleteLinks required: - - state + - state type: object properties: state: @@ -6430,33 +6400,33 @@ components: FileUploadCompleteResponse: title: FileUploadCompleteResponse required: - - links + - links type: object properties: links: - $ref: "#/components/schemas/FileUploadCompleteLinks" + $ref: '#/components/schemas/FileUploadCompleteLinks' FileUploadCompleteState: title: FileUploadCompleteState enum: - - ok - - nok + - ok + - nok description: An enumeration. FileUploadCompletionBody: title: FileUploadCompletionBody required: - - parts + - parts type: object properties: parts: title: Parts type: array items: - $ref: "#/components/schemas/UploadedPart" + $ref: '#/components/schemas/UploadedPart' FileUploadLinks: title: FileUploadLinks required: - - abort_upload - - complete_upload + - abort_upload + - complete_upload type: object properties: abort_upload: @@ -6474,9 +6444,9 @@ components: FileUploadSchema: title: FileUploadSchema required: - - chunk_size - - urls - - links + - chunk_size + - urls + - links type: object properties: chunk_size: @@ -6491,11 +6461,11 @@ components: type: string format: uri links: - $ref: "#/components/schemas/FileUploadLinks" + $ref: '#/components/schemas/FileUploadLinks' GenerateInvitation: title: GenerateInvitation required: - - guest + - guest type: object properties: guest: @@ -6516,8 +6486,8 @@ components: GetCreditPrice: title: GetCreditPrice required: - - productName - - usdPerCredit + - productName + - usdPerCredit type: object properties: productName: @@ -6527,16 +6497,15 @@ components: title: Usdpercredit minimum: 0.0 type: number - description: - Price of a credit in USD. If None, then this product's price + description: Price of a credit in USD. If None, then this product's price is UNDEFINED GetProduct: title: GetProduct required: - - name - - displayName - - loginSettings - - isPaymentEnabled + - name + - displayName + - loginSettings + - isPaymentEnabled type: object properties: name: @@ -6590,15 +6559,14 @@ components: title: Templates type: array items: - $ref: "#/components/schemas/GetProductTemplate" - description: - List of templates available to this product for communications + $ref: '#/components/schemas/GetProductTemplate' + description: List of templates available to this product for communications (e.g. emails, sms, etc) GetProductTemplate: title: GetProductTemplate required: - - id - - content + - id + - content type: object properties: id: @@ -6612,7 +6580,7 @@ components: GetProjectInactivityResponse: title: GetProjectInactivityResponse required: - - is_inactive + - is_inactive type: object properties: is_inactive: @@ -6621,10 +6589,10 @@ components: GetWalletAutoRecharge: title: GetWalletAutoRecharge required: - - paymentMethodId - - minBalanceInCredits - - topUpAmountInUsd - - monthlyLimitInUsd + - paymentMethodId + - minBalanceInCredits + - topUpAmountInUsd + - monthlyLimitInUsd type: object properties: enabled: @@ -6637,15 +6605,13 @@ components: maxLength: 50 minLength: 1 type: string - description: - Payment method in the wallet used to perform the auto-recharge + description: Payment method in the wallet used to perform the auto-recharge payments or None if still undefined minBalanceInCredits: title: Minbalanceincredits minimum: 0.0 type: number - description: - Minimum balance in credits that triggers an auto-recharge [Read + description: Minimum balance in credits that triggers an auto-recharge [Read only] topUpAmountInUsd: title: Topupamountinusd @@ -6656,15 +6622,14 @@ components: title: Monthlylimitinusd minimum: 0.0 type: number - description: - Maximum amount in USD charged within a natural month.None indicates + description: Maximum amount in USD charged within a natural month.None indicates no limit. GroupAccessRights: title: GroupAccessRights required: - - read - - write - - delete + - read + - write + - delete type: object properties: read: @@ -6680,7 +6645,7 @@ components: GroupUserGet: title: GroupUserGet required: - - accessRights + - accessRights type: object properties: id: @@ -6709,14 +6674,14 @@ components: type: string description: the user primary gid accessRights: - $ref: "#/components/schemas/GroupAccessRights" + $ref: '#/components/schemas/GroupAccessRights' example: - id: "1" + id: '1' login: mr.smith@matrix.com first_name: Mr last_name: Smith gravatar_id: a1af5c6ecc38e81f29695f01d6ceb540 - gid: "3" + gid: '3' accessRights: read: true write: false @@ -6724,9 +6689,9 @@ components: HealthInfoDict: title: HealthInfoDict required: - - name - - version - - api_version + - name + - version + - api_version type: object properties: name: @@ -6741,32 +6706,30 @@ components: ImageResources: title: ImageResources required: - - image - - resources + - image + - resources type: object properties: image: title: Image pattern: ^(?:([a-z0-9-]+(?:\.[a-z0-9-]+)+(?::\d+)?|[a-z0-9-]+:\d+)/)?((?:[a-z0-9][a-z0-9_.-]*/)*[a-z0-9-_]+[a-z0-9])(?::([\w][\w.-]{0,127}))?(\@sha256:[a-fA-F0-9]{32,64})?$ type: string - description: - Used by the frontend to provide a context for the users.Services + description: Used by the frontend to provide a context for the users.Services with a docker-compose spec will have multiple entries.Using the `image:version` instead of the docker-compose spec is more helpful for the end user. resources: title: Resources type: object additionalProperties: - $ref: "#/components/schemas/ResourceValue" + $ref: '#/components/schemas/ResourceValue' boot_modes: type: array items: - $ref: "#/components/schemas/BootMode" - description: - describe how a service shall be booted, using CPU, MPI, openMP + $ref: '#/components/schemas/BootMode' + description: describe how a service shall be booted, using CPU, MPI, openMP or GPU default: - - CPU + - CPU example: image: simcore/service/dynamic/pretty-intense:1.0.0 resources: @@ -6788,7 +6751,7 @@ components: InvitationCheck: title: InvitationCheck required: - - invitation + - invitation type: object properties: invitation: @@ -6799,11 +6762,11 @@ components: InvitationGenerated: title: InvitationGenerated required: - - productName - - issuer - - guest - - created - - invitationLink + - productName + - issuer + - guest + - created + - invitationLink type: object properties: productName: @@ -6850,13 +6813,13 @@ components: JupyterHubTokenAuthentication: title: JupyterHubTokenAuthentication required: - - api_token + - api_token type: object properties: type: title: Type enum: - - jupyterhub + - jupyterhub type: string default: jupyterhub api_token: @@ -6870,15 +6833,15 @@ components: type: title: Type enum: - - kerberos + - kerberos type: string default: kerberos additionalProperties: false Limits: title: Limits required: - - cpus - - mem + - cpus + - mem type: object properties: cpus: @@ -6894,19 +6857,19 @@ components: LinkType: title: LinkType enum: - - PRESIGNED - - S3 + - PRESIGNED + - S3 type: string description: An enumeration. Log: title: Log required: - - message + - message type: object properties: level: allOf: - - $ref: "#/components/schemas/LogLevel" + - $ref: '#/components/schemas/LogLevel' description: log level default: INFO message: @@ -6924,17 +6887,17 @@ components: LogLevel: title: LogLevel enum: - - DEBUG - - INFO - - WARNING - - ERROR + - DEBUG + - INFO + - WARNING + - ERROR type: string description: An enumeration. LoginBody: title: LoginBody required: - - email - - password + - email + - password type: object properties: email: @@ -6950,9 +6913,9 @@ components: LoginNextPage: title: LoginNextPage required: - - name - - code - - reason + - name + - code + - reason type: object properties: name: @@ -6960,7 +6923,7 @@ components: type: string description: Code name to the front-end page. Ideally a PageStr parameters: - $ref: "#/components/schemas/CodePageParams" + $ref: '#/components/schemas/CodePageParams' code: title: Code type: string @@ -6969,7 +6932,7 @@ components: title: Reason type: string deprecated: true - description: "This is the body of a 2XX response to pass the front-end + description: 'This is the body of a 2XX response to pass the front-end what kind of page shall be display next and some information about it @@ -6977,12 +6940,12 @@ components: An analogous structure is used in the redirects (see create_redirect_response) but - using a path+query in the fragment of the URL" + using a path+query in the fragment of the URL' LoginTwoFactorAuthBody: title: LoginTwoFactorAuthBody required: - - email - - code + - email + - code type: object properties: email: @@ -7007,7 +6970,7 @@ components: Marker: title: Marker required: - - color + - color type: object properties: color: @@ -7022,24 +6985,23 @@ components: type: title: Type enum: - - none + - none type: string default: none additionalProperties: false Node: title: Node required: - - key - - version - - label + - key + - version + - label type: object properties: key: title: Key pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ type: string - description: - distinctive name for the node based on the docker registry + description: distinctive name for the node based on the docker registry path version: title: Version @@ -7055,8 +7017,7 @@ components: maximum: 100.0 minimum: 0.0 type: number - description: - the node progress value (deprecated in DB, still used for API + description: the node progress value (deprecated in DB, still used for API only) deprecated: true thumbnail: @@ -7069,8 +7030,7 @@ components: runHash: title: Runhash type: string - description: - the hex digest of the resolved inputs +outputs hash at the + description: the hex digest of the resolved inputs +outputs hash at the time when the last outputs were generated nullable: true inputs: @@ -7080,8 +7040,7 @@ components: inputsUnits: title: Inputsunits type: object - description: - Overrides default unit (if any) defined in the service for + description: Overrides default unit (if any) defined in the service for each port inputAccess: type: object @@ -7117,27 +7076,26 @@ components: position: title: Position allOf: - - $ref: "#/components/schemas/Position" + - $ref: '#/components/schemas/Position' description: Use projects_ui.WorkbenchUI.position instead deprecated: true state: title: State allOf: - - $ref: "#/components/schemas/NodeState" + - $ref: '#/components/schemas/NodeState' description: The node's state object bootOptions: title: Bootoptions type: object - description: - Some services provide alternative parameters to be injected + description: Some services provide alternative parameters to be injected at boot time. The user selection should be stored here, and it will overwrite the services's defaults. additionalProperties: false NodeCreate: title: NodeCreate required: - - service_key - - service_version + - service_key + - service_version type: object properties: service_key: @@ -7154,7 +7112,7 @@ components: NodeCreated: title: NodeCreated required: - - nodeId + - nodeId type: object properties: nodeId: @@ -7164,14 +7122,14 @@ components: NodeGet: title: NodeGet required: - - publishedPort - - serviceUuid - - serviceKey - - serviceVersion - - serviceHost - - servicePort - - serviceState - - userId + - publishedPort + - serviceUuid + - serviceKey + - serviceVersion + - serviceHost + - servicePort + - serviceState + - userId type: object properties: publishedPort: @@ -7185,8 +7143,7 @@ components: entryPoint: title: Entrypoint type: string - description: - The entry point where the service provides its interface if + description: The entry point where the service provides its interface if specified serviceUuid: title: Serviceuuid @@ -7196,20 +7153,19 @@ components: title: Servicekey pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ type: string - description: - distinctive name for the node based on the docker registry + description: distinctive name for the node based on the docker registry path example: - - simcore/services/comp/itis/sleeper - - simcore/services/dynamic/3dviewer + - simcore/services/comp/itis/sleeper + - simcore/services/dynamic/3dviewer serviceVersion: title: Serviceversion pattern: ^(0|[1-9]\d*)(\.(0|[1-9]\d*)){2}(-(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*)(\.(0|[1-9]\d*|\d*[-a-zA-Z][-\da-zA-Z]*))*)?(\+[-\da-zA-Z]+(\.[-\da-zA-Z-]+)*)?$ type: string description: semantic version number example: - - 1.0.0 - - 0.0.1 + - 1.0.0 + - 0.0.1 serviceHost: title: Servicehost type: string @@ -7225,21 +7181,19 @@ components: serviceBasepath: title: Servicebasepath type: string - description: - different base path where current service is mounted otherwise + description: different base path where current service is mounted otherwise defaults to root - default: "" + default: '' serviceState: allOf: - - $ref: "#/components/schemas/ServiceState" - description: - "the service state * 'pending' - The service is waiting for - resources to start * 'pulling' - The service is being pulled from the - registry * 'starting' - The service is starting * 'running' - The - service is running * 'complete' - The service completed * 'failed' + - $ref: '#/components/schemas/ServiceState' + description: 'the service state * ''pending'' - The service is waiting for + resources to start * ''pulling'' - The service is being pulled from the + registry * ''starting'' - The service is starting * ''running'' - The + service is running * ''complete'' - The service completed * ''failed'' - The service failed to start - " + ' serviceMessage: title: Servicemessage type: string @@ -7263,14 +7217,14 @@ components: NodeGetIdle: title: NodeGetIdle required: - - serviceState - - serviceUuid + - serviceState + - serviceUuid type: object properties: serviceState: title: Servicestate enum: - - idle + - idle type: string serviceUuid: title: Serviceuuid @@ -7279,6 +7233,25 @@ components: example: service_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 service_state: idle + NodeGetUnknown: + title: NodeGetUnknown + required: + - serviceState + - serviceUuid + type: object + properties: + serviceState: + title: Servicestate + enum: + - unknown + type: string + serviceUuid: + title: Serviceuuid + type: string + format: uuid + example: + service_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + service_state: unknown NodeRetrieve: title: NodeRetrieve type: object @@ -7293,7 +7266,7 @@ components: NodeRetrieved: title: NodeRetrieved required: - - sizeBytes + - sizeBytes type: object properties: sizeBytes: @@ -7303,8 +7276,8 @@ components: NodeScreenshot: title: NodeScreenshot required: - - thumbnail_url - - file_url + - thumbnail_url + - file_url type: object properties: thumbnail_url: @@ -7340,12 +7313,11 @@ components: items: type: string format: uuid - description: - contains the node inputs dependencies if they need to be computed + description: contains the node inputs dependencies if they need to be computed first currentStatus: allOf: - - $ref: "#/components/schemas/RunningState" + - $ref: '#/components/schemas/RunningState' description: the node's current state default: NOT_STARTED progress: @@ -7353,34 +7325,33 @@ components: maximum: 1.0 minimum: 0.0 type: number - description: - current progress of the task if available (None if not started + description: current progress of the task if available (None if not started or not a computational task) default: 0 additionalProperties: false NotificationCategory: title: NotificationCategory enum: - - NEW_ORGANIZATION - - STUDY_SHARED - - TEMPLATE_SHARED - - ANNOTATION_NOTE - - WALLET_SHARED + - NEW_ORGANIZATION + - STUDY_SHARED + - TEMPLATE_SHARED + - ANNOTATION_NOTE + - WALLET_SHARED type: string description: An enumeration. OrderDirection: title: OrderDirection enum: - - asc - - desc + - asc + - desc type: string description: An enumeration. Owner: title: Owner required: - - user_id - - first_name - - last_name + - user_id + - first_name + - last_name type: object properties: user_id: @@ -7401,9 +7372,9 @@ components: PageLinks: title: PageLinks required: - - self - - first - - last + - self + - first + - last type: object properties: self: @@ -7440,8 +7411,8 @@ components: PageMetaInfoLimitOffset: title: PageMetaInfoLimitOffset required: - - total - - count + - total + - count type: object properties: limit: @@ -7467,122 +7438,122 @@ components: Page_CheckpointApiModel_: title: Page[CheckpointApiModel] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/CheckpointApiModel" + $ref: '#/components/schemas/CheckpointApiModel' additionalProperties: false description: Paginated response model of ItemTs Page_PaymentTransaction_: title: Page[PaymentTransaction] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/PaymentTransaction" + $ref: '#/components/schemas/PaymentTransaction' additionalProperties: false description: Paginated response model of ItemTs Page_ProjectIterationItem_: title: Page[ProjectIterationItem] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/ProjectIterationItem" + $ref: '#/components/schemas/ProjectIterationItem' additionalProperties: false description: Paginated response model of ItemTs Page_ProjectIterationResultItem_: title: Page[ProjectIterationResultItem] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/ProjectIterationResultItem" + $ref: '#/components/schemas/ProjectIterationResultItem' additionalProperties: false description: Paginated response model of ItemTs Page_ProjectListItem_: title: Page[ProjectListItem] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/ProjectListItem" + $ref: '#/components/schemas/ProjectListItem' additionalProperties: false description: Paginated response model of ItemTs Page_RepoApiModel_: title: Page[RepoApiModel] required: - - _meta - - _links - - data + - _meta + - _links + - data type: object properties: _meta: - $ref: "#/components/schemas/PageMetaInfoLimitOffset" + $ref: '#/components/schemas/PageMetaInfoLimitOffset' _links: - $ref: "#/components/schemas/PageLinks" + $ref: '#/components/schemas/PageLinks' data: title: Data type: array items: - $ref: "#/components/schemas/RepoApiModel" + $ref: '#/components/schemas/RepoApiModel' additionalProperties: false description: Paginated response model of ItemTs ParentMetaProjectRef: title: ParentMetaProjectRef required: - - project_id - - ref_id + - project_id + - ref_id type: object properties: project_id: @@ -7603,9 +7574,9 @@ components: PaymentMethodGet: title: PaymentMethodGet required: - - idr - - walletId - - created + - idr + - walletId + - created type: object properties: idr: @@ -7645,9 +7616,9 @@ components: PaymentMethodInitiated: title: PaymentMethodInitiated required: - - walletId - - paymentMethodId - - paymentMethodFormUrl + - walletId + - paymentMethodId + - paymentMethodFormUrl type: object properties: walletId: @@ -7670,12 +7641,12 @@ components: PaymentTransaction: title: PaymentTransaction required: - - paymentId - - priceDollars - - walletId - - osparcCredits - - createdAt - - completedStatus + - paymentId + - priceDollars + - walletId + - osparcCredits + - createdAt + - completedStatus type: object properties: paymentId: @@ -7708,10 +7679,10 @@ components: completedStatus: title: Completedstatus enum: - - PENDING - - SUCCESS - - FAILED - - CANCELED + - PENDING + - SUCCESS + - FAILED + - CANCELED type: string stateMessage: title: Statemessage @@ -7725,8 +7696,8 @@ components: PermissionGet: title: PermissionGet required: - - name - - allowed + - name + - allowed type: object properties: name: @@ -7738,9 +7709,9 @@ components: PhoneConfirmationBody: title: PhoneConfirmationBody required: - - email - - phone - - code + - email + - phone + - code type: object properties: email: @@ -7760,8 +7731,8 @@ components: PortLink: title: PortLink required: - - nodeUuid - - output + - nodeUuid + - output type: object properties: nodeUuid: @@ -7775,14 +7746,13 @@ components: type: string description: The port key in the node given by nodeUuid additionalProperties: false - description: - I/O port type to reference to an output port of another node in + description: I/O port type to reference to an output port of another node in the same project Position: title: Position required: - - x - - y + - x + - y type: object properties: x: @@ -7790,19 +7760,19 @@ components: type: integer description: The x position example: - - "12" + - '12' y: title: Y type: integer description: The y position example: - - "15" + - '15' additionalProperties: false Preference: title: Preference required: - - defaultValue - - value + - defaultValue + - value type: object properties: defaultValue: @@ -7814,7 +7784,7 @@ components: PresignedLink: title: PresignedLink required: - - link + - link type: object properties: link: @@ -7826,17 +7796,17 @@ components: PricingPlanClassification: title: PricingPlanClassification enum: - - TIER + - TIER type: string description: An enumeration. PricingUnitGet: title: PricingUnitGet required: - - pricingUnitId - - unitName - - unitExtraInfo - - currentCostPerUnit - - default + - pricingUnitId + - unitName + - unitExtraInfo + - currentCostPerUnit + - default type: object properties: pricingUnitId: @@ -7859,10 +7829,10 @@ components: ProfileGet: title: ProfileGet required: - - id - - login - - role - - preferences + - id + - login + - role + - preferences type: object properties: id: @@ -7885,30 +7855,29 @@ components: role: title: Role enum: - - ANONYMOUS - - GUEST - - USER - - TESTER - - PRODUCT_OWNER - - ADMIN + - ANONYMOUS + - GUEST + - USER + - TESTER + - PRODUCT_OWNER + - ADMIN type: string groups: - $ref: "#/components/schemas/AllUsersGroups" + $ref: '#/components/schemas/AllUsersGroups' gravatar_id: title: Gravatar Id type: string expirationDate: title: Expirationdate type: string - description: - If user has a trial account, it sets the expiration date, otherwise + description: If user has a trial account, it sets the expiration date, otherwise None format: date preferences: title: Preferences type: object additionalProperties: - $ref: "#/components/schemas/Preference" + $ref: '#/components/schemas/Preference' ProfileUpdate: title: ProfileUpdate type: object @@ -7927,8 +7896,8 @@ components: ProjectCopyOverride: title: ProjectCopyOverride required: - - name - - prjOwner + - name + - prjOwner type: object properties: name: @@ -7950,9 +7919,9 @@ components: ProjectCreateNew: title: ProjectCreateNew required: - - name - - workbench - - accessRights + - name + - workbench + - accessRights type: object properties: uuid: @@ -7978,7 +7947,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/AccessRights" + $ref: '#/components/schemas/AccessRights' tags: title: Tags type: array @@ -7990,20 +7959,20 @@ components: items: type: string ui: - $ref: "#/components/schemas/StudyUI" + $ref: '#/components/schemas/StudyUI' ProjectGet: title: ProjectGet required: - - uuid - - name - - description - - thumbnail - - creationDate - - lastChangeDate - - workbench - - prjOwner - - accessRights - - tags + - uuid + - name + - description + - thumbnail + - creationDate + - lastChangeDate + - workbench + - prjOwner + - accessRights + - tags type: object properties: uuid: @@ -8019,13 +7988,13 @@ components: thumbnail: title: Thumbnail anyOf: - - maxLength: 2083 - minLength: 0 - type: string - format: uri - - enum: - - "" - type: string + - maxLength: 2083 + minLength: 0 + type: string + format: uri + - enum: + - '' + type: string creationDate: title: Creationdate pattern: \d{4}-(12|11|10|0?[1-9])-(31|30|[0-2]?\d)T(2[0-3]|1\d|0?[0-9])(:(\d|[0-5]\d)){2}(\.\d{3})?Z @@ -8045,7 +8014,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/AccessRights" + $ref: '#/components/schemas/AccessRights' tags: title: Tags type: array @@ -8058,12 +8027,12 @@ components: type: string default: [] state: - $ref: "#/components/schemas/ProjectState" + $ref: '#/components/schemas/ProjectState' ui: title: Ui anyOf: - - $ref: "#/components/schemas/EmptyModel" - - $ref: "#/components/schemas/StudyUI" + - $ref: '#/components/schemas/EmptyModel' + - $ref: '#/components/schemas/StudyUI' quality: title: Quality type: object @@ -8072,20 +8041,19 @@ components: title: Dev type: object permalink: - $ref: "#/components/schemas/ProjectPermalink" + $ref: '#/components/schemas/ProjectPermalink' ProjectInputGet: title: ProjectInputGet required: - - key - - value - - label + - key + - value + - label type: object properties: key: title: Key type: string - description: - Project port's unique identifer. Same as the UUID of the associated + description: Project port's unique identifer. Same as the UUID of the associated port node format: uuid value: @@ -8097,15 +8065,14 @@ components: ProjectInputUpdate: title: ProjectInputUpdate required: - - key - - value + - key + - value type: object properties: key: title: Key type: string - description: - Project port's unique identifer. Same as the UUID of the associated + description: Project port's unique identifer. Same as the UUID of the associated port node format: uuid value: @@ -8114,11 +8081,11 @@ components: ProjectIterationItem: title: ProjectIterationItem required: - - name - - parent - - iteration_index - - workcopy_project_id - - workcopy_project_url + - name + - parent + - iteration_index + - workcopy_project_id + - workcopy_project_url type: object properties: name: @@ -8128,7 +8095,7 @@ components: parent: title: Parent allOf: - - $ref: "#/components/schemas/ParentMetaProjectRef" + - $ref: '#/components/schemas/ParentMetaProjectRef' description: Reference to the the meta-project that created this iteration iteration_index: title: Iteration Index @@ -8138,8 +8105,7 @@ components: workcopy_project_id: title: Workcopy Project Id type: string - description: - ID to this iteration's working copy.A working copy is a real + description: ID to this iteration's working copy.A working copy is a real project where this iteration is run format: uuid workcopy_project_url: @@ -8152,12 +8118,12 @@ components: ProjectIterationResultItem: title: ProjectIterationResultItem required: - - name - - parent - - iteration_index - - workcopy_project_id - - workcopy_project_url - - results + - name + - parent + - iteration_index + - workcopy_project_id + - workcopy_project_url + - results type: object properties: name: @@ -8167,7 +8133,7 @@ components: parent: title: Parent allOf: - - $ref: "#/components/schemas/ParentMetaProjectRef" + - $ref: '#/components/schemas/ParentMetaProjectRef' description: Reference to the the meta-project that created this iteration iteration_index: title: Iteration Index @@ -8177,8 +8143,7 @@ components: workcopy_project_id: title: Workcopy Project Id type: string - description: - ID to this iteration's working copy.A working copy is a real + description: ID to this iteration's working copy.A working copy is a real project where this iteration is run format: uuid workcopy_project_url: @@ -8189,7 +8154,7 @@ components: description: reference to a working copy project format: uri results: - $ref: "#/components/schemas/ExtractedResults" + $ref: '#/components/schemas/ExtractedResults' ProjectListFilters: title: ProjectListFilters type: object @@ -8207,24 +8172,23 @@ components: items: type: string additionalProperties: false - description: - "inspired by Docker API https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList. + description: 'inspired by Docker API https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList. Encoded as JSON. Each available filter can have its own logic (should be well - documented)" + documented)' ProjectListItem: title: ProjectListItem required: - - uuid - - name - - description - - thumbnail - - creationDate - - lastChangeDate - - workbench - - prjOwner - - accessRights - - tags + - uuid + - name + - description + - thumbnail + - creationDate + - lastChangeDate + - workbench + - prjOwner + - accessRights + - tags type: object properties: uuid: @@ -8240,13 +8204,13 @@ components: thumbnail: title: Thumbnail anyOf: - - maxLength: 2083 - minLength: 0 - type: string - format: uri - - enum: - - "" - type: string + - maxLength: 2083 + minLength: 0 + type: string + format: uri + - enum: + - '' + type: string creationDate: title: Creationdate pattern: \d{4}-(12|11|10|0?[1-9])-(31|30|[0-2]?\d)T(2[0-3]|1\d|0?[0-9])(:(\d|[0-5]\d)){2}(\.\d{3})?Z @@ -8266,7 +8230,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/AccessRights" + $ref: '#/components/schemas/AccessRights' tags: title: Tags type: array @@ -8279,12 +8243,12 @@ components: type: string default: [] state: - $ref: "#/components/schemas/ProjectState" + $ref: '#/components/schemas/ProjectState' ui: title: Ui anyOf: - - $ref: "#/components/schemas/EmptyModel" - - $ref: "#/components/schemas/StudyUI" + - $ref: '#/components/schemas/EmptyModel' + - $ref: '#/components/schemas/StudyUI' quality: title: Quality type: object @@ -8293,12 +8257,12 @@ components: title: Dev type: object permalink: - $ref: "#/components/schemas/ProjectPermalink" + $ref: '#/components/schemas/ProjectPermalink' ProjectLocked: title: ProjectLocked required: - - value - - status + - value + - status type: object properties: value: @@ -8308,17 +8272,17 @@ components: owner: title: Owner allOf: - - $ref: "#/components/schemas/Owner" + - $ref: '#/components/schemas/Owner' description: If locked, the user that owns the lock status: allOf: - - $ref: "#/components/schemas/ProjectStatus" + - $ref: '#/components/schemas/ProjectStatus' description: The status of the project additionalProperties: false ProjectMetadataGet: title: ProjectMetadataGet required: - - projectUuid + - projectUuid type: object properties: projectUuid: @@ -8330,30 +8294,29 @@ components: type: object additionalProperties: anyOf: - - type: boolean - - type: integer - - type: number - - type: string + - type: boolean + - type: integer + - type: number + - type: string description: Custom key-value map ProjectMetadataPortGet: title: ProjectMetadataPortGet required: - - key - - kind + - key + - kind type: object properties: key: title: Key type: string - description: - Project port's unique identifer. Same as the UUID of the associated + description: Project port's unique identifer. Same as the UUID of the associated port node format: uuid kind: title: Kind enum: - - input - - output + - input + - output type: string content_schema: title: Content Schema @@ -8362,7 +8325,7 @@ components: ProjectMetadataUpdate: title: ProjectMetadataUpdate required: - - custom + - custom type: object properties: custom: @@ -8370,10 +8333,10 @@ components: type: object additionalProperties: anyOf: - - type: boolean - - type: integer - - type: number - - type: string + - type: boolean + - type: integer + - type: number + - type: string ProjectOrderBy: title: ProjectOrderBy type: object @@ -8383,23 +8346,22 @@ components: type: string direction: allOf: - - $ref: "#/components/schemas/OrderDirection" + - $ref: '#/components/schemas/OrderDirection' default: desc additionalProperties: false description: inspired by Google AIP https://google.aip.dev/132#ordering ProjectOutputGet: title: ProjectOutputGet required: - - key - - value - - label + - key + - value + - label type: object properties: key: title: Key type: string - description: - Project port's unique identifer. Same as the UUID of the associated + description: Project port's unique identifer. Same as the UUID of the associated port node format: uuid value: @@ -8411,8 +8373,8 @@ components: ProjectPermalink: title: ProjectPermalink required: - - url - - is_public + - url + - is_public type: object properties: url: @@ -8427,13 +8389,13 @@ components: ProjectReplace: title: ProjectReplace required: - - uuid - - name - - description - - creationDate - - lastChangeDate - - workbench - - accessRights + - uuid + - name + - description + - creationDate + - lastChangeDate + - workbench + - accessRights type: object properties: uuid: @@ -8467,7 +8429,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/AccessRights" + $ref: '#/components/schemas/AccessRights' tags: title: Tags type: array @@ -8480,56 +8442,56 @@ components: items: type: string ui: - $ref: "#/components/schemas/StudyUI" + $ref: '#/components/schemas/StudyUI' quality: title: Quality type: object ProjectRunningState: title: ProjectRunningState required: - - value + - value type: object properties: value: allOf: - - $ref: "#/components/schemas/RunningState" + - $ref: '#/components/schemas/RunningState' description: The running state of the project additionalProperties: false ProjectState: title: ProjectState required: - - locked - - state + - locked + - state type: object properties: locked: title: Locked allOf: - - $ref: "#/components/schemas/ProjectLocked" + - $ref: '#/components/schemas/ProjectLocked' description: The project lock state state: title: State allOf: - - $ref: "#/components/schemas/ProjectRunningState" + - $ref: '#/components/schemas/ProjectRunningState' description: The project running state additionalProperties: false ProjectStatus: title: ProjectStatus enum: - - CLOSED - - CLOSING - - CLONING - - EXPORTING - - OPENING - - OPENED + - CLOSED + - CLOSING + - CLONING + - EXPORTING + - OPENING + - OPENED type: string description: An enumeration. ProjectTypeAPI: title: ProjectTypeAPI enum: - - all - - template - - user + - all + - template + - user type: string description: An enumeration. ProjectUpdate: @@ -8555,7 +8517,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/AccessRights" + $ref: '#/components/schemas/AccessRights' tags: title: Tags type: array @@ -8567,19 +8529,19 @@ components: items: type: string ui: - $ref: "#/components/schemas/StudyUI" + $ref: '#/components/schemas/StudyUI' quality: title: Quality type: object ProjectsCommentsAPI: title: ProjectsCommentsAPI required: - - comment_id - - project_uuid - - user_id - - contents - - created - - modified + - comment_id + - project_uuid + - user_id + - contents + - created + - modified type: object properties: comment_id: @@ -8617,8 +8579,8 @@ components: PutWalletBodyParams: title: PutWalletBodyParams required: - - name - - status + - name + - status type: object properties: name: @@ -8631,12 +8593,12 @@ components: title: Thumbnail type: string status: - $ref: "#/components/schemas/WalletStatus" + $ref: '#/components/schemas/WalletStatus' RegisterBody: title: RegisterBody required: - - email - - password + - email + - password type: object properties: email: @@ -8662,8 +8624,8 @@ components: RegisterPhoneBody: title: RegisterPhoneBody required: - - email - - phone + - email + - phone type: object properties: email: @@ -8678,8 +8640,8 @@ components: RegisterPhoneNextPage: title: RegisterPhoneNextPage required: - - name - - message + - name + - message type: object properties: name: @@ -8687,7 +8649,7 @@ components: type: string description: Code name to the front-end page. Ideally a PageStr parameters: - $ref: "#/components/schemas/_PageParams" + $ref: '#/components/schemas/_PageParams' logger: title: Logger type: string @@ -8696,15 +8658,15 @@ components: level: title: Level enum: - - INFO - - WARNING - - ERROR + - INFO + - WARNING + - ERROR type: string default: INFO message: title: Message type: string - description: "This is the body of a 2XX response to pass the front-end + description: 'This is the body of a 2XX response to pass the front-end what kind of page shall be display next and some information about it @@ -8712,13 +8674,13 @@ components: An analogous structure is used in the redirects (see create_redirect_response) but - using a path+query in the fragment of the URL" + using a path+query in the fragment of the URL' ReplaceWalletAutoRecharge: title: ReplaceWalletAutoRecharge required: - - enabled - - paymentMethodId - - topUpAmountInUsd + - enabled + - paymentMethodId + - topUpAmountInUsd type: object properties: enabled: @@ -8740,8 +8702,8 @@ components: RepoApiModel: title: RepoApiModel required: - - project_uuid - - url + - project_uuid + - url type: object properties: project_uuid: @@ -8757,17 +8719,16 @@ components: ResearchResource: title: ResearchResource required: - - rrid - - name - - description + - rrid + - name + - description type: object properties: rrid: title: Rrid pattern: ^(RRID:)([^_\s]{1,30})_(\S{1,30})$ type: string - description: - Unique identifier used as classifier, i.e. to tag studies and + description: Unique identifier used as classifier, i.e. to tag studies and services name: title: Name @@ -8778,7 +8739,7 @@ components: Resend2faBody: title: Resend2faBody required: - - email + - email type: object properties: email: @@ -8789,15 +8750,15 @@ components: via: title: Via enum: - - SMS - - Email + - SMS + - Email type: string default: SMS additionalProperties: false ResetPasswordBody: title: ResetPasswordBody required: - - email + - email type: object properties: email: @@ -8807,8 +8768,8 @@ components: ResetPasswordConfirmation: title: ResetPasswordConfirmation required: - - password - - confirm + - password + - confirm type: object properties: password: @@ -8825,8 +8786,8 @@ components: ResourceHit: title: ResourceHit required: - - rid - - name + - rid + - name type: object properties: rid: @@ -8838,41 +8799,40 @@ components: ResourceValue: title: ResourceValue required: - - limit - - reservation + - limit + - reservation type: object properties: limit: title: Limit anyOf: - - type: integer - - type: number - - type: string + - type: integer + - type: number + - type: string reservation: title: Reservation anyOf: - - type: integer - - type: number - - type: string + - type: integer + - type: number + - type: string RunningDynamicServiceDetails: title: RunningDynamicServiceDetails required: - - service_key - - service_version - - user_id - - project_id - - service_uuid - - service_host - - service_port - - service_state + - service_key + - service_version + - user_id + - project_id + - service_uuid + - service_host + - service_port + - service_state type: object properties: service_key: title: Service Key pattern: ^simcore/services/dynamic/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ type: string - description: - distinctive name for the node based on the docker registry + description: distinctive name for the node based on the docker registry path service_version: title: Service Version @@ -8895,15 +8855,13 @@ components: service_basepath: title: Service Basepath type: string - description: - predefined path where the dynamic service should be served. + description: predefined path where the dynamic service should be served. If empty, the service shall use the root endpoint. format: path boot_type: allOf: - - $ref: "#/components/schemas/ServiceBootType" - description: - Describes how the dynamic services was started (legacy=V0, + - $ref: '#/components/schemas/ServiceBootType' + description: Describes how the dynamic services was started (legacy=V0, modern=V2).Since legacy services do not have this label it defaults to V0. default: V0 @@ -8935,7 +8893,7 @@ components: deprecated: true service_state: allOf: - - $ref: "#/components/schemas/ServiceState" + - $ref: '#/components/schemas/ServiceState' description: service current state service_message: title: Service Message @@ -8944,25 +8902,25 @@ components: RunningState: title: RunningState enum: - - UNKNOWN - - PUBLISHED - - NOT_STARTED - - PENDING - - WAITING_FOR_RESOURCES - - STARTED - - SUCCESS - - FAILED - - ABORTED - - WAITING_FOR_CLUSTER + - UNKNOWN + - PUBLISHED + - NOT_STARTED + - PENDING + - WAITING_FOR_RESOURCES + - STARTED + - SUCCESS + - FAILED + - ABORTED + - WAITING_FOR_CLUSTER type: string - description: "State of execution of a project's computational workflow + description: 'State of execution of a project''s computational workflow - SEE StateType for task state" + SEE StateType for task state' Scheduler: title: Scheduler required: - - status + - status type: object properties: status: @@ -8973,11 +8931,11 @@ components: title: Workers type: object additionalProperties: - $ref: "#/components/schemas/Worker" + $ref: '#/components/schemas/Worker' SelectBox: title: SelectBox required: - - structure + - structure type: object properties: structure: @@ -8985,13 +8943,13 @@ components: minItems: 1 type: array items: - $ref: "#/components/schemas/Structure" + $ref: '#/components/schemas/Structure' additionalProperties: false ServiceBootType: title: ServiceBootType enum: - - V0 - - V2 + - V0 + - V2 type: string description: An enumeration. ServiceGroupAccessRights: @@ -9011,10 +8969,10 @@ components: ServiceInputGet: title: ServiceInputGet required: - - label - - description - - type - - keyId + - label + - description + - type + - keyId type: object properties: unitLong: @@ -9028,9 +8986,8 @@ components: displayOrder: title: Displayorder type: number - description: - "DEPRECATED: new display order is taken from the item position. - This will be removed." + description: 'DEPRECATED: new display order is taken from the item position. + This will be removed.' deprecated: true label: title: Label @@ -9046,8 +9003,7 @@ components: title: Type pattern: ^(number|integer|boolean|string|ref_contentSchema|data:([^/\s,]+/[^/\s,]+|\[[^/\s,]+/[^/\s,]+(,[^/\s]+/[^/,\s]+)*\]))$ type: string - description: - data type expected on this input glob matching for data type + description: data type expected on this input glob matching for data type is allowed contentSchema: title: Contentschema @@ -9064,16 +9020,15 @@ components: defaultValue: title: Defaultvalue anyOf: - - type: boolean - - type: integer - - type: number - - type: string + - type: boolean + - type: integer + - type: number + - type: string widget: title: Widget allOf: - - $ref: "#/components/schemas/Widget" - description: - custom widget to use instead of the default one determined + - $ref: '#/components/schemas/Widget' + description: custom widget to use instead of the default one determined from the data-type keyId: title: Keyid @@ -9099,16 +9054,15 @@ components: ServiceKeyVersion: title: ServiceKeyVersion required: - - key - - version + - key + - version type: object properties: key: title: Key pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ type: string - description: - distinctive name for the node based on the docker registry + description: distinctive name for the node based on the docker registry path version: title: Version @@ -9119,10 +9073,10 @@ components: ServiceOutputGet: title: ServiceOutputGet required: - - label - - description - - type - - keyId + - label + - description + - type + - keyId type: object properties: unitLong: @@ -9136,9 +9090,8 @@ components: displayOrder: title: Displayorder type: number - description: - "DEPRECATED: new display order is taken from the item position. - This will be removed." + description: 'DEPRECATED: new display order is taken from the item position. + This will be removed.' deprecated: true label: title: Label @@ -9154,8 +9107,7 @@ components: title: Type pattern: ^(number|integer|boolean|string|ref_contentSchema|data:([^/\s,]+/[^/\s,]+|\[[^/\s,]+/[^/\s,]+(,[^/\s]+/[^/,\s]+)*\]))$ type: string - description: - data type expected on this input glob matching for data type + description: data type expected on this input glob matching for data type is allowed contentSchema: title: Contentschema @@ -9172,9 +9124,8 @@ components: widget: title: Widget allOf: - - $ref: "#/components/schemas/Widget" - description: - custom widget to use instead of the default one determined + - $ref: '#/components/schemas/Widget' + description: custom widget to use instead of the default one determined from the data-type deprecated: true keyId: @@ -9196,13 +9147,13 @@ components: ServicePricingPlanGet: title: ServicePricingPlanGet required: - - pricingPlanId - - displayName - - description - - classification - - createdAt - - pricingPlanKey - - pricingUnits + - pricingPlanId + - displayName + - description + - classification + - createdAt + - pricingPlanKey + - pricingUnits type: object properties: pricingPlanId: @@ -9217,7 +9168,7 @@ components: title: Description type: string classification: - $ref: "#/components/schemas/PricingPlanClassification" + $ref: '#/components/schemas/PricingPlanClassification' createdAt: title: Createdat type: string @@ -9229,22 +9180,22 @@ components: title: Pricingunits type: array items: - $ref: "#/components/schemas/PricingUnitGet" + $ref: '#/components/schemas/PricingUnitGet' ServiceRunGet: title: ServiceRunGet required: - - service_run_id - - user_id - - project_id - - project_name - - node_id - - node_name - - service_key - - service_version - - service_type - - service_resources - - started_at - - service_run_status + - service_run_id + - user_id + - project_id + - project_name + - node_id + - node_name + - service_key + - service_version + - service_type + - service_resources + - started_at + - service_run_status type: object properties: service_run_id: @@ -9300,33 +9251,33 @@ components: type: string format: date-time service_run_status: - $ref: "#/components/schemas/ServiceRunStatus" + $ref: '#/components/schemas/ServiceRunStatus' ServiceRunStatus: title: ServiceRunStatus enum: - - RUNNING - - SUCCESS - - ERROR + - RUNNING + - SUCCESS + - ERROR type: string description: An enumeration. ServiceState: title: ServiceState enum: - - pending - - pulling - - starting - - running - - complete - - failed - - stopping + - pending + - pulling + - starting + - running + - complete + - failed + - stopping description: An enumeration. ServiceType: title: ServiceType enum: - - computational - - dynamic - - frontend - - backend + - computational + - dynamic + - frontend + - backend type: string description: An enumeration. ServiceUpdate: @@ -9337,7 +9288,7 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/ServiceGroupAccessRights" + $ref: '#/components/schemas/ServiceGroupAccessRights' description: service access rights per group id name: title: Name @@ -9354,8 +9305,7 @@ components: deprecated: title: Deprecated type: string - description: - If filled with a date, then the service is to be deprecated + description: If filled with a date, then the service is to be deprecated at that date (e.g. cannot start anymore) format: date-time classifiers: @@ -9381,67 +9331,67 @@ components: name: My Human Readable Service Name description: An interesting service that does something classifiers: - - RRID:SCR_018997 - - RRID:SCR_019001 + - RRID:SCR_018997 + - RRID:SCR_019001 quality: tsr: r01: level: 3 - references: "" + references: '' r02: level: 2 - references: "" + references: '' r03: level: 0 - references: "" + references: '' r04: level: 0 - references: "" + references: '' r05: level: 2 - references: "" + references: '' r06: level: 0 - references: "" + references: '' r07: level: 0 - references: "" + references: '' r08: level: 1 - references: "" + references: '' r09: level: 0 - references: "" + references: '' r10: level: 0 - references: "" + references: '' enabled: true annotations: - vandv: "" - purpose: "" - standards: "" - limitations: "" - documentation: "" - certificationLink: "" + vandv: '' + purpose: '' + standards: '' + limitations: '' + documentation: '' + certificationLink: '' certificationStatus: Uncertified SimCoreFileLink: title: SimCoreFileLink required: - - store - - path + - store + - path type: object properties: store: title: Store type: integer - description: "The store identifier: 0 for simcore S3, 1 for datcore" + description: 'The store identifier: 0 for simcore S3, 1 for datcore' path: title: Path anyOf: - - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ - type: string - - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ - type: string + - pattern: ^(api|([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}))\/([0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12})\/(.+)$ + type: string + - pattern: ^N:package:[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$ + type: string description: The path to the file in the storage provider domain label: title: Label @@ -9450,8 +9400,7 @@ components: eTag: title: Etag type: string - description: - Entity tag that uniquely represents the file. The method to + description: Entity tag that uniquely represents the file. The method to generate the tag is not specified (black box). dataset: title: Dataset @@ -9462,14 +9411,14 @@ components: SimpleAuthentication: title: SimpleAuthentication required: - - username - - password + - username + - password type: object properties: type: title: Type enum: - - simple + - simple type: string default: simple username: @@ -9484,7 +9433,7 @@ components: Slideshow: title: Slideshow required: - - position + - position type: object properties: position: @@ -9496,8 +9445,8 @@ components: StackInfoDict: title: StackInfoDict required: - - f_code - - f_lineno + - f_code + - f_lineno type: object properties: f_code: @@ -9509,8 +9458,8 @@ components: Stats: title: Stats required: - - cpuUsage - - memUsage + - cpuUsage + - memUsage type: object properties: cpuUsage: @@ -9526,15 +9475,15 @@ components: StatusDiagnosticsGet: title: StatusDiagnosticsGet required: - - loop_tasks - - top_tracemalloc + - loop_tasks + - top_tracemalloc type: object properties: loop_tasks: title: Loop Tasks type: array items: - $ref: "#/components/schemas/TaskInfoDict" + $ref: '#/components/schemas/TaskInfoDict' top_tracemalloc: title: Top Tracemalloc type: array @@ -9543,16 +9492,16 @@ components: Structure: title: Structure required: - - key - - label + - key + - label type: object properties: key: title: Key anyOf: - - type: string - - type: boolean - - type: number + - type: string + - type: boolean + - type: number label: title: Label type: string @@ -9577,7 +9526,7 @@ components: TableSynchronisation: title: TableSynchronisation required: - - removed + - removed type: object properties: dry_run: @@ -9594,9 +9543,9 @@ components: TagAccessRights: title: TagAccessRights required: - - read - - write - - delete + - read + - write + - delete type: object properties: read: @@ -9611,8 +9560,8 @@ components: TagCreate: title: TagCreate required: - - name - - color + - name + - color type: object properties: name: @@ -9629,10 +9578,10 @@ components: TagGet: title: TagGet required: - - id - - name - - color - - accessRights + - id + - name + - color + - accessRights type: object properties: id: @@ -9650,7 +9599,7 @@ components: title: Color type: string accessRights: - $ref: "#/components/schemas/TagAccessRights" + $ref: '#/components/schemas/TagAccessRights' TagUpdate: title: TagUpdate type: object @@ -9685,11 +9634,11 @@ components: TaskGet: title: TaskGet required: - - task_id - - task_name - - status_href - - result_href - - abort_href + - task_id + - task_name + - status_href + - result_href + - abort_href type: object properties: task_id: @@ -9710,12 +9659,12 @@ components: TaskInfoDict: title: TaskInfoDict required: - - txt - - type - - done - - cancelled - - stack - - exception + - txt + - type + - done + - cancelled + - stack + - exception type: object properties: txt: @@ -9734,7 +9683,7 @@ components: title: Stack type: array items: - $ref: "#/components/schemas/StackInfoDict" + $ref: '#/components/schemas/StackInfoDict' exception: title: Exception type: string @@ -9745,28 +9694,27 @@ components: message: title: Message type: string - default: "" + default: '' percent: title: Percent maximum: 1.0 minimum: 0.0 type: number default: 0.0 - description: - "Helps the user to keep track of the progress. Progress is expected + description: 'Helps the user to keep track of the progress. Progress is expected to be - defined as a float bound between 0.0 and 1.0" + defined as a float bound between 0.0 and 1.0' TaskStatus: title: TaskStatus required: - - task_progress - - done - - started + - task_progress + - done + - started type: object properties: task_progress: - $ref: "#/components/schemas/TaskProgress" + $ref: '#/components/schemas/TaskProgress' done: title: Done type: boolean @@ -9777,11 +9725,11 @@ components: TestEmail: title: TestEmail required: - - to + - to type: object properties: from_: - title: "From " + title: 'From ' type: string description: Email sender format: email @@ -9793,12 +9741,12 @@ components: template_name: title: Template Name enum: - - change_email_email.jinja2 - - new_2fa_code.jinja2 - - registration_email.jinja2 - - reset_password_email_failed.jinja2 - - reset_password_email.jinja2 - - service_submission.jinja2 + - change_email_email.jinja2 + - new_2fa_code.jinja2 + - registration_email.jinja2 + - reset_password_email_failed.jinja2 + - reset_password_email.jinja2 + - service_submission.jinja2 type: string default: registration_email.jinja2 template_context: @@ -9808,10 +9756,10 @@ components: TestFailed: title: TestFailed required: - - test_name - - error_type - - error_message - - traceback + - test_name + - error_type + - error_message + - traceback type: object properties: test_name: @@ -9829,8 +9777,8 @@ components: TestPassed: title: TestPassed required: - - fixtures - - info + - fixtures + - info type: object properties: fixtures: @@ -9842,7 +9790,7 @@ components: TextArea: title: TextArea required: - - minHeight + - minHeight type: object properties: minHeight: @@ -9855,8 +9803,8 @@ components: ThirdPartyToken: title: ThirdPartyToken required: - - service - - token_key + - service + - token_key type: object properties: service: @@ -9872,8 +9820,7 @@ components: title: Token Secret type: string format: uuid - description: - Tokens used to access third-party services connected to osparc + description: Tokens used to access third-party services connected to osparc (e.g. pennsieve, scicrunch, etc) example: service: github-api-v1 @@ -9881,8 +9828,8 @@ components: TokenCreate: title: TokenCreate required: - - service - - token_key + - service + - token_key type: object properties: service: @@ -9898,8 +9845,7 @@ components: title: Token Secret type: string format: uuid - description: - Tokens used to access third-party services connected to osparc + description: Tokens used to access third-party services connected to osparc (e.g. pennsieve, scicrunch, etc) example: service: github-api-v1 @@ -9907,8 +9853,8 @@ components: UnregisterCheck: title: UnregisterCheck required: - - email - - password + - email + - password type: object properties: email: @@ -9923,7 +9869,7 @@ components: UpdateProductTemplate: title: UpdateProductTemplate required: - - content + - content type: object properties: content: @@ -9932,8 +9878,8 @@ components: UploadedPart: title: UploadedPart required: - - number - - e_tag + - number + - e_tag type: object properties: number: @@ -9953,14 +9899,14 @@ components: UserNotification: title: UserNotification required: - - user_id - - category - - actionable_path - - title - - text - - date - - id - - read + - user_id + - category + - actionable_path + - title + - text + - date + - id + - read type: object properties: user_id: @@ -9969,7 +9915,7 @@ components: type: integer minimum: 0 category: - $ref: "#/components/schemas/NotificationCategory" + $ref: '#/components/schemas/NotificationCategory' actionable_path: title: Actionable Path type: string @@ -9992,12 +9938,12 @@ components: UserNotificationCreate: title: UserNotificationCreate required: - - user_id - - category - - actionable_path - - title - - text - - date + - user_id + - category + - actionable_path + - title + - text + - date type: object properties: user_id: @@ -10006,7 +9952,7 @@ components: type: integer minimum: 0 category: - $ref: "#/components/schemas/NotificationCategory" + $ref: '#/components/schemas/NotificationCategory' actionable_path: title: Actionable Path type: string @@ -10023,7 +9969,7 @@ components: UserNotificationPatch: title: UserNotificationPatch required: - - read + - read type: object properties: read: @@ -10032,10 +9978,10 @@ components: UsersGroup: title: UsersGroup required: - - gid - - label - - description - - accessRights + - gid + - label + - description + - accessRights type: object properties: gid: @@ -10058,7 +10004,7 @@ components: description: url to the group thumbnail format: uri accessRights: - $ref: "#/components/schemas/GroupAccessRights" + $ref: '#/components/schemas/GroupAccessRights' inclusionRules: title: Inclusionrules type: object @@ -10068,9 +10014,9 @@ components: Viewer: title: Viewer required: - - title - - file_type - - view_url + - title + - file_type + - view_url type: object properties: title: @@ -10086,12 +10032,10 @@ components: maxLength: 2083 minLength: 1 type: string - description: - Base url to execute viewer. Needs appending file_size,[file_name] + description: Base url to execute viewer. Needs appending file_size,[file_name] and download_link as query parameters format: uri - description: - "API model for a viewer resource\n\nA viewer is a service with\ + description: "API model for a viewer resource\n\nA viewer is a service with\ \ an associated filetype.\nYou can think of it as a tuple (filetype, service)\n\ \nThe service could consume other filetypes BUT at this\ninterface this is\ \ represented in yet another viewer resource\n\nFor instance, the same service\ @@ -10101,12 +10045,12 @@ components: WalletGet: title: WalletGet required: - - walletId - - name - - owner - - status - - created - - modified + - walletId + - name + - owner + - status + - created + - modified type: object properties: walletId: @@ -10129,7 +10073,7 @@ components: title: Thumbnail type: string status: - $ref: "#/components/schemas/WalletStatus" + $ref: '#/components/schemas/WalletStatus' created: title: Created type: string @@ -10141,13 +10085,13 @@ components: WalletGetWithAvailableCredits: title: WalletGetWithAvailableCredits required: - - walletId - - name - - owner - - status - - created - - modified - - availableCredits + - walletId + - name + - owner + - status + - created + - modified + - availableCredits type: object properties: walletId: @@ -10170,7 +10114,7 @@ components: title: Thumbnail type: string status: - $ref: "#/components/schemas/WalletStatus" + $ref: '#/components/schemas/WalletStatus' created: title: Created type: string @@ -10185,12 +10129,12 @@ components: WalletGroupGet: title: WalletGroupGet required: - - gid - - read - - write - - delete - - created - - modified + - gid + - read + - write + - delete + - created + - modified type: object properties: gid: @@ -10218,7 +10162,7 @@ components: WalletPaymentInitiated: title: WalletPaymentInitiated required: - - paymentId + - paymentId type: object properties: paymentId: @@ -10231,68 +10175,67 @@ components: maxLength: 2083 minLength: 1 type: string - description: - Link to external site that holds the payment submission form.None + description: Link to external site that holds the payment submission form.None if no prompt step is required (e.g. pre-selected credit card) format: uri WalletStatus: title: WalletStatus enum: - - ACTIVE - - INACTIVE + - ACTIVE + - INACTIVE type: string description: An enumeration. Widget: title: Widget required: - - type - - details + - type + - details type: object properties: type: allOf: - - $ref: "#/components/schemas/WidgetType" + - $ref: '#/components/schemas/WidgetType' description: type of the property details: title: Details anyOf: - - $ref: "#/components/schemas/TextArea" - - $ref: "#/components/schemas/SelectBox" + - $ref: '#/components/schemas/TextArea' + - $ref: '#/components/schemas/SelectBox' additionalProperties: false WidgetType: title: WidgetType enum: - - TextArea - - SelectBox + - TextArea + - SelectBox type: string description: An enumeration. WorkbenchUI: title: WorkbenchUI required: - - position + - position type: object properties: position: title: Position allOf: - - $ref: "#/components/schemas/Position" + - $ref: '#/components/schemas/Position' description: The node position in the workbench marker: - $ref: "#/components/schemas/Marker" + $ref: '#/components/schemas/Marker' additionalProperties: false WorkbenchViewApiModel: title: WorkbenchViewApiModel required: - - workbench - - url - - checkpoint_url + - workbench + - url + - checkpoint_url type: object properties: workbench: title: Workbench type: object additionalProperties: - $ref: "#/components/schemas/Node" + $ref: '#/components/schemas/Node' ui: title: Ui type: object @@ -10313,12 +10256,12 @@ components: Worker: title: Worker required: - - id - - name - - resources - - used_resources - - memory_limit - - metrics + - id + - name + - resources + - used_resources + - memory_limit + - metrics type: object properties: id: @@ -10328,21 +10271,21 @@ components: title: Name type: string resources: - $ref: "#/components/schemas/DictModel_str__PositiveFloat_" + $ref: '#/components/schemas/DictModel_str__PositiveFloat_' used_resources: - $ref: "#/components/schemas/UsedResources" + $ref: '#/components/schemas/UsedResources' memory_limit: title: Memory Limit type: integer metrics: - $ref: "#/components/schemas/WorkerMetrics" + $ref: '#/components/schemas/WorkerMetrics' WorkerMetrics: title: WorkerMetrics required: - - cpu - - memory - - num_fds - - task_counts + - cpu + - memory + - num_fds + - task_counts type: object properties: cpu: @@ -10360,12 +10303,12 @@ components: task_counts: title: Task Counts allOf: - - $ref: "#/components/schemas/TaskCounts" + - $ref: '#/components/schemas/TaskCounts' description: task details _ComputationStarted: title: _ComputationStarted required: - - pipeline_id + - pipeline_id type: object properties: pipeline_id: @@ -10391,7 +10334,7 @@ components: _ProjectCommentsBodyParams: title: _ProjectCommentsBodyParams required: - - contents + - contents type: object properties: contents: @@ -10401,8 +10344,8 @@ components: _ProjectGroupAccess: title: _ProjectGroupAccess required: - - gid - - accessible + - gid + - accessible type: object properties: gid: @@ -10417,12 +10360,12 @@ components: title: Inaccessible Services type: array items: - $ref: "#/components/schemas/ServiceKeyVersion" + $ref: '#/components/schemas/ServiceKeyVersion' _ProjectNodePreview: title: _ProjectNodePreview required: - - project_id - - node_id + - project_id + - node_id type: object properties: project_id: @@ -10437,13 +10380,13 @@ components: title: Screenshots type: array items: - $ref: "#/components/schemas/NodeScreenshot" + $ref: '#/components/schemas/NodeScreenshot' _WalletsGroupsBodyParams: title: _WalletsGroupsBodyParams required: - - read - - write - - delete + - read + - write + - delete type: object properties: read: @@ -10459,15 +10402,15 @@ components: models_library__api_schemas_webserver__catalog__ServiceGet: title: ServiceGet required: - - name - - description - - key - - version - - type - - authors - - contact - - inputs - - outputs + - name + - description + - key + - version + - type + - authors + - contact + - inputs + - outputs type: object properties: name: @@ -10489,8 +10432,7 @@ components: deprecated: title: Deprecated type: string - description: - If filled with a date, then the service is to be deprecated + description: If filled with a date, then the service is to be deprecated at that date (e.g. cannot start anymore) format: date-time classifiers: @@ -10506,14 +10448,13 @@ components: title: Accessrights type: object additionalProperties: - $ref: "#/components/schemas/ServiceGroupAccessRights" + $ref: '#/components/schemas/ServiceGroupAccessRights' description: service access rights per group id key: title: Key pattern: ^simcore/services/((comp|dynamic|frontend))/([a-z0-9][a-z0-9_.-]*/)*([a-z0-9-_]+[a-z0-9])$ type: string - description: - distinctive name for the node based on the docker registry + description: distinctive name for the node based on the docker registry path version: title: Version @@ -10531,19 +10472,19 @@ components: description: regexp pattern for detecting computational service's progress type: allOf: - - $ref: "#/components/schemas/ServiceType" + - $ref: '#/components/schemas/ServiceType' description: service type badges: title: Badges type: array items: - $ref: "#/components/schemas/Badge" + $ref: '#/components/schemas/Badge' authors: title: Authors minItems: 1 type: array items: - $ref: "#/components/schemas/Author" + $ref: '#/components/schemas/Author' contact: title: Contact type: string @@ -10560,42 +10501,40 @@ components: boot-options: title: Boot-Options type: object - description: - Service defined boot options. These get injected in the service + description: Service defined boot options. These get injected in the service as env variables. min-visible-inputs: title: Min-Visible-Inputs minimum: 0 type: integer - description: - The number of 'data type inputs' displayed by default in the + description: The number of 'data type inputs' displayed by default in the UI. When None all 'data type inputs' are displayed. owner: title: Owner type: string format: email - description: "Static metadata for a service injected in the image labels + description: 'Static metadata for a service injected in the image labels - This is one to one with node-meta-v0.0.1.json" + This is one to one with node-meta-v0.0.1.json' example: name: File Picker description: description classifiers: [] quality: {} accessRights: - "1": + '1': execute_access: true write_access: false - "4": + '4': execute_access: true write_access: true key: simcore/services/frontend/file-picker version: 1.0.0 type: dynamic authors: - - name: Red Pandas - email: redpandas@wonderland.com + - name: Red Pandas + email: redpandas@wonderland.com contact: redpandas@wonderland.com inputs: input0: @@ -10623,11 +10562,11 @@ components: simcore_service_webserver__studies_dispatcher___rest_handlers__ServiceGet: title: ServiceGet required: - - key - - title - - description - - thumbnail - - view_url + - key + - title + - description + - thumbnail + - view_url type: object properties: key: @@ -10669,6 +10608,6 @@ components: description: It is also sim4life for the web thumbnail: https://via.placeholder.com/170x120.png file_extensions: - - smash - - h5 + - smash + - h5 view_url: https://host.com/view?viewer_key=simcore/services/dynamic/raw-graphs&viewer_version=1.2.3 From bc53f16c641d8a46b239a2dbce0549b683ecfc45 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Wed, 17 Jan 2024 16:18:37 +0100 Subject: [PATCH 09/10] fix errors --- .../tests/unit/api_rpc/test_api_rpc__services.py | 4 +++- services/payments/tests/unit/test_rpc_payments.py | 3 ++- .../tests/unit/with_dbs/03/products/test_products_rpc.py | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py index 59968c1361a..859bf6143f9 100644 --- a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py +++ b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py @@ -401,7 +401,9 @@ async def test_stop_dynamic_service_serializes_generic_errors( simcore_user_agent: str, save_state: bool, ): - with pytest.raises(RPCServerError, match="while running 'stop_dynamic_service'"): + with pytest.raises( + RPCServerError, match="While running method 'stop_dynamic_service'" + ): await services.stop_dynamic_service( rpc_client, node_id=node_id, diff --git a/services/payments/tests/unit/test_rpc_payments.py b/services/payments/tests/unit/test_rpc_payments.py index b99f99821fa..62345b701e4 100644 --- a/services/payments/tests/unit/test_rpc_payments.py +++ b/services/payments/tests/unit/test_rpc_payments.py @@ -87,7 +87,8 @@ async def test_rpc_init_payment_fail( assert isinstance(error, RPCServerError) assert error.exc_type == "httpx.ConnectError" assert error.method_name == "init_payment" - assert error.msg + assert error.exc_message + assert error.traceback async def test_webserver_one_time_payment_workflow( diff --git a/services/web/server/tests/unit/with_dbs/03/products/test_products_rpc.py b/services/web/server/tests/unit/with_dbs/03/products/test_products_rpc.py index c359d07a7e7..0c513ccabef 100644 --- a/services/web/server/tests/unit/with_dbs/03/products/test_products_rpc.py +++ b/services/web/server/tests/unit/with_dbs/03/products/test_products_rpc.py @@ -95,4 +95,5 @@ async def test_get_credit_amount( ) exc = exc_info.value assert exc.method_name == "get_credit_amount" - assert exc.msg + assert exc.exc_message + assert exc.traceback From 7a2bc65c791e96e89ba3f161e5fc64e949d5c575 Mon Sep 17 00:00:00 2001 From: Andrei Neagu Date: Thu, 18 Jan 2024 07:56:55 +0100 Subject: [PATCH 10/10] fixed broken test --- .../tests/unit/api_rpc/test_api_rpc__services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py index 859bf6143f9..32a94114faa 100644 --- a/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py +++ b/services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py @@ -402,7 +402,7 @@ async def test_stop_dynamic_service_serializes_generic_errors( save_state: bool, ): with pytest.raises( - RPCServerError, match="While running method 'stop_dynamic_service'" + RPCServerError, match="While running method 'stop_dynamic_service'" ): await services.stop_dynamic_service( rpc_client,