From 61521a2e158693e68448670dbb4b53f85a7a483a Mon Sep 17 00:00:00 2001 From: Tobias Herber <22559657+herber@users.noreply.github.com> Date: Fri, 10 Apr 2026 18:01:05 +0200 Subject: [PATCH] Update template api --- .../src/mt_2025_01_01_dashboard/__init__.py | 6 + ...hboard_instance_portals_consumer_access.py | 41 +++++- .../dashboard_instance_provider_templates.py | 10 +- .../dashboard_instance_session_templates.py | 18 ++- ...gement_instance_portals_consumer_access.py | 41 +++++- .../management_instance_provider_templates.py | 10 +- .../management_instance_session_templates.py | 18 ++- .../endpoints/portals_consumer_access.py | 40 +++++- .../endpoints/provider_templates.py | 10 +- .../endpoints/session_templates.py | 17 ++- .../portals/consumer_access/__init__.py | 3 +- .../portals/consumer_access/create.py | 12 ++ .../portals/consumer_access/delete.py | 6 + .../instance/portals/consumer_access/get.py | 6 + .../instance/portals/consumer_access/list.py | 6 + .../portals/consumer_access/update.py | 101 +++++++++++++ .../instance/provider_templates/create.py | 4 + .../instance/provider_templates/delete.py | 2 + .../instance/provider_templates/get.py | 2 + .../instance/provider_templates/list.py | 2 + .../instance/provider_templates/update.py | 6 +- .../instance/session_templates/__init__.py | 1 + .../instance/session_templates/list_tools.py | 134 ++++++++++++++++++ .../portals/consumer_access/__init__.py | 3 +- .../portals/consumer_access/create.py | 12 ++ .../portals/consumer_access/delete.py | 6 + .../instance/portals/consumer_access/get.py | 6 + .../instance/portals/consumer_access/list.py | 6 + .../portals/consumer_access/update.py | 101 +++++++++++++ .../instance/provider_templates/create.py | 4 + .../instance/provider_templates/delete.py | 2 + .../instance/provider_templates/get.py | 2 + .../instance/provider_templates/list.py | 2 + .../instance/provider_templates/update.py | 6 +- .../instance/session_templates/__init__.py | 1 + .../instance/session_templates/list_tools.py | 134 ++++++++++++++++++ .../portals/consumer_access/__init__.py | 3 +- .../portals/consumer_access/create.py | 12 ++ .../portals/consumer_access/delete.py | 6 + .../resources/portals/consumer_access/get.py | 6 + .../resources/portals/consumer_access/list.py | 6 + .../portals/consumer_access/update.py | 101 +++++++++++++ .../resources/provider_templates/create.py | 4 + .../resources/provider_templates/delete.py | 2 + .../resources/provider_templates/get.py | 2 + .../resources/provider_templates/list.py | 2 + .../resources/provider_templates/update.py | 6 +- .../resources/session_templates/__init__.py | 1 + .../resources/session_templates/list_tools.py | 134 ++++++++++++++++++ .../src/mt_2026_01_01_magnetar/__init__.py | 2 + .../dashboard_instance_provider_templates.py | 10 +- .../dashboard_instance_session_templates.py | 18 ++- .../management_instance_provider_templates.py | 10 +- .../management_instance_session_templates.py | 18 ++- .../endpoints/provider_templates.py | 10 +- .../endpoints/session_templates.py | 17 ++- .../instance/provider_templates/create.py | 4 + .../instance/provider_templates/delete.py | 2 + .../instance/provider_templates/get.py | 2 + .../instance/provider_templates/list.py | 2 + .../instance/provider_templates/update.py | 6 +- .../instance/session_templates/__init__.py | 1 + .../instance/session_templates/list_tools.py | 134 ++++++++++++++++++ .../instance/provider_templates/create.py | 4 + .../instance/provider_templates/delete.py | 2 + .../instance/provider_templates/get.py | 2 + .../instance/provider_templates/list.py | 2 + .../instance/provider_templates/update.py | 6 +- .../instance/session_templates/__init__.py | 1 + .../instance/session_templates/list_tools.py | 134 ++++++++++++++++++ .../resources/provider_templates/create.py | 4 + .../resources/provider_templates/delete.py | 2 + .../resources/provider_templates/get.py | 2 + .../resources/provider_templates/list.py | 2 + .../resources/provider_templates/update.py | 6 +- .../resources/session_templates/__init__.py | 1 + .../resources/session_templates/list_tools.py | 134 ++++++++++++++++++ 77 files changed, 1565 insertions(+), 39 deletions(-) create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/update.py create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/list_tools.py create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/update.py create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/list_tools.py create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/update.py create mode 100644 src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/list_tools.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/list_tools.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/list_tools.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/list_tools.py diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/__init__.py index 48bb3c77..3bd89129 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/__init__.py @@ -210,6 +210,8 @@ # DashboardInstancePortalsConsumerAccessGetOutput # DashboardInstancePortalsConsumerAccessListOutput # DashboardInstancePortalsConsumerAccessListQuery +# DashboardInstancePortalsConsumerAccessUpdateBody +# DashboardInstancePortalsConsumerAccessUpdateOutput # DashboardInstancePortalsConsumerGroupsCreateBody # DashboardInstancePortalsConsumerGroupsCreateOutput # DashboardInstancePortalsConsumerGroupsDeleteOutput @@ -381,6 +383,7 @@ # DashboardInstanceSessionTemplatesGetOutput # DashboardInstanceSessionTemplatesListOutput # DashboardInstanceSessionTemplatesListQuery +# DashboardInstanceSessionTemplatesListToolsOutput # DashboardInstanceSessionTemplatesProvidersCreateBody # DashboardInstanceSessionTemplatesProvidersCreateOutput # DashboardInstanceSessionTemplatesProvidersDeleteOutput @@ -790,6 +793,8 @@ # mapDashboardInstancePortalsConsumerAccessGetOutput # mapDashboardInstancePortalsConsumerAccessListOutput # mapDashboardInstancePortalsConsumerAccessListQuery +# mapDashboardInstancePortalsConsumerAccessUpdateBody +# mapDashboardInstancePortalsConsumerAccessUpdateOutput # mapDashboardInstancePortalsConsumerGroupsCreateBody # mapDashboardInstancePortalsConsumerGroupsCreateOutput # mapDashboardInstancePortalsConsumerGroupsDeleteOutput @@ -961,6 +966,7 @@ # mapDashboardInstanceSessionTemplatesGetOutput # mapDashboardInstanceSessionTemplatesListOutput # mapDashboardInstanceSessionTemplatesListQuery +# mapDashboardInstanceSessionTemplatesListToolsOutput # mapDashboardInstanceSessionTemplatesProvidersCreateBody # mapDashboardInstanceSessionTemplatesProvidersCreateOutput # mapDashboardInstanceSessionTemplatesProvidersDeleteOutput diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access.py index fd264bc5..9c6315e8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput +from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessUpdateOutput, DashboardInstancePortalsConsumerAccessUpdateOutput, mapDashboardInstancePortalsConsumerAccessUpdateBody, DashboardInstancePortalsConsumerAccessUpdateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput class MetorialDashboardInstancePortalsConsumerAccessEndpoint(BaseMetorialEndpoint): """Manage which consumer groups can access portal provider templates and MCP servers.""" @@ -71,7 +71,7 @@ def get(self, instance_id: str, portal_id: str, consumer_access_id: str) -> Dash ) return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessGetOutput.from_dict) - def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]]) -> DashboardInstancePortalsConsumerAccessCreateOutput: + def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]], name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessCreateOutput: """ Create portal consumer access Creates a new consumer access rule for the portal. @@ -79,12 +79,21 @@ def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, ac :param instance_id: str :param portal_id: str :param consumer_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) :param access: Union[Dict[str, Any], Dict[str, Any]] :return: DashboardInstancePortalsConsumerAccessCreateOutput """ # Build body parameters from keyword arguments body_dict = {} body_dict["consumer_group_id"] = consumer_group_id + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme body_dict["access"] = access request = MetorialRequest( @@ -93,6 +102,34 @@ def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, ac ) return self._post(request).transform(mapDashboardInstancePortalsConsumerAccessCreateOutput.from_dict) + def update(self, instance_id: str, portal_id: str, consumer_access_id: str, *, name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessUpdateOutput: + """ + Update portal consumer access + Updates the shared listing fields for a portal consumer access rule. + + :param instance_id: str + :param portal_id: str + :param consumer_access_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerAccessUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'consumer-access', consumer_access_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsConsumerAccessUpdateOutput.from_dict) + def delete(self, instance_id: str, portal_id: str, consumer_access_id: str) -> DashboardInstancePortalsConsumerAccessDeleteOutput: """ Delete portal consumer access diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_provider_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_provider_templates.py index ca42ee66..7ee6cf3f 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,6 +75,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -86,6 +87,8 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -97,7 +100,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -107,6 +110,7 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -117,6 +121,8 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_session_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_session_templates.py index 721f47c3..33c55831 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_session_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialDashboardInstanceSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -151,4 +151,18 @@ def delete(self, instance_id: str, session_template_id: str) -> DashboardInstanc request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, instance_id: str, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param instance_id: str + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access.py index 974c6748..4d8d248b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput +from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessUpdateOutput, DashboardInstancePortalsConsumerAccessUpdateOutput, mapDashboardInstancePortalsConsumerAccessUpdateBody, DashboardInstancePortalsConsumerAccessUpdateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput class MetorialManagementInstancePortalsConsumerAccessEndpoint(BaseMetorialEndpoint): """Manage which consumer groups can access portal provider templates and MCP servers.""" @@ -71,7 +71,7 @@ def get(self, instance_id: str, portal_id: str, consumer_access_id: str) -> Dash ) return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessGetOutput.from_dict) - def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]]) -> DashboardInstancePortalsConsumerAccessCreateOutput: + def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]], name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessCreateOutput: """ Create portal consumer access Creates a new consumer access rule for the portal. @@ -79,12 +79,21 @@ def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, ac :param instance_id: str :param portal_id: str :param consumer_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) :param access: Union[Dict[str, Any], Dict[str, Any]] :return: DashboardInstancePortalsConsumerAccessCreateOutput """ # Build body parameters from keyword arguments body_dict = {} body_dict["consumer_group_id"] = consumer_group_id + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme body_dict["access"] = access request = MetorialRequest( @@ -93,6 +102,34 @@ def create(self, instance_id: str, portal_id: str, *, consumer_group_id: str, ac ) return self._post(request).transform(mapDashboardInstancePortalsConsumerAccessCreateOutput.from_dict) + def update(self, instance_id: str, portal_id: str, consumer_access_id: str, *, name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessUpdateOutput: + """ + Update portal consumer access + Updates the shared listing fields for a portal consumer access rule. + + :param instance_id: str + :param portal_id: str + :param consumer_access_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerAccessUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'consumer-access', consumer_access_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsConsumerAccessUpdateOutput.from_dict) + def delete(self, instance_id: str, portal_id: str, consumer_access_id: str) -> DashboardInstancePortalsConsumerAccessDeleteOutput: """ Delete portal consumer access diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_provider_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_provider_templates.py index 1333a4f4..1d7e239f 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,6 +75,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -86,6 +87,8 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -97,7 +100,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -107,6 +110,7 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -117,6 +121,8 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['instances', instance_id, 'provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_session_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_session_templates.py index bc47f43f..ae4967b1 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_session_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialManagementInstanceSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -151,4 +151,18 @@ def delete(self, instance_id: str, session_template_id: str) -> DashboardInstanc request = MetorialRequest( path=['instances', instance_id, 'session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, instance_id: str, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param instance_id: str + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access.py index 7c814b95..f5183aac 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput +from ..resources import mapDashboardInstancePortalsConsumerAccessListOutput, DashboardInstancePortalsConsumerAccessListOutput, mapDashboardInstancePortalsConsumerAccessListQuery, DashboardInstancePortalsConsumerAccessListQuery, mapDashboardInstancePortalsConsumerAccessGetOutput, DashboardInstancePortalsConsumerAccessGetOutput, mapDashboardInstancePortalsConsumerAccessCreateOutput, DashboardInstancePortalsConsumerAccessCreateOutput, mapDashboardInstancePortalsConsumerAccessCreateBody, DashboardInstancePortalsConsumerAccessCreateBody, mapDashboardInstancePortalsConsumerAccessUpdateOutput, DashboardInstancePortalsConsumerAccessUpdateOutput, mapDashboardInstancePortalsConsumerAccessUpdateBody, DashboardInstancePortalsConsumerAccessUpdateBody, mapDashboardInstancePortalsConsumerAccessDeleteOutput, DashboardInstancePortalsConsumerAccessDeleteOutput class MetorialPortalsConsumerAccessEndpoint(BaseMetorialEndpoint): """Manage which consumer groups can access portal provider templates and MCP servers.""" @@ -69,19 +69,28 @@ def get(self, portal_id: str, consumer_access_id: str) -> DashboardInstancePorta ) return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessGetOutput.from_dict) - def create(self, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]]) -> DashboardInstancePortalsConsumerAccessCreateOutput: + def create(self, portal_id: str, *, consumer_group_id: str, access: Union[Dict[str, Any], Dict[str, Any]], name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessCreateOutput: """ Create portal consumer access Creates a new consumer access rule for the portal. :param portal_id: str :param consumer_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) :param access: Union[Dict[str, Any], Dict[str, Any]] :return: DashboardInstancePortalsConsumerAccessCreateOutput """ # Build body parameters from keyword arguments body_dict = {} body_dict["consumer_group_id"] = consumer_group_id + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme body_dict["access"] = access request = MetorialRequest( @@ -90,6 +99,33 @@ def create(self, portal_id: str, *, consumer_group_id: str, access: Union[Dict[s ) return self._post(request).transform(mapDashboardInstancePortalsConsumerAccessCreateOutput.from_dict) + def update(self, portal_id: str, consumer_access_id: str, *, name: Optional[str] = None, description: Optional[str] = None, readme: Optional[str] = None) -> DashboardInstancePortalsConsumerAccessUpdateOutput: + """ + Update portal consumer access + Updates the shared listing fields for a portal consumer access rule. + + :param portal_id: str + :param consumer_access_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param readme: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerAccessUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if readme is not None: + body_dict["readme"] = readme + + request = MetorialRequest( + path=['portals', portal_id, 'consumer-access', consumer_access_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsConsumerAccessUpdateOutput.from_dict) + def delete(self, portal_id: str, consumer_access_id: str) -> DashboardInstancePortalsConsumerAccessDeleteOutput: """ Delete portal consumer access diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/provider_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/provider_templates.py index b1d322f0..68ab0a25 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/provider_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/provider_templates.py @@ -64,7 +64,7 @@ def get(self, provider_template_id: str) -> DashboardInstanceProviderTemplatesGe ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -72,6 +72,7 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -83,6 +84,8 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -94,7 +97,7 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -103,6 +106,7 @@ def update(self, provider_template_id: str, *, name: Optional[str] = None, descr :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -113,6 +117,8 @@ def update(self, provider_template_id: str, *, name: Optional[str] = None, descr body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/session_templates.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/session_templates.py index 8ed78021..eea88909 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/session_templates.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -146,4 +146,17 @@ def delete(self, session_template_id: str) -> DashboardInstanceSessionTemplatesD request = MetorialRequest( path=['session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/__init__.py index 26672d14..ca972d2b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/__init__.py @@ -1,4 +1,5 @@ from .create import * from .delete import * from .get import * -from .list import * \ No newline at end of file +from .list import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/create.py index 4008b397..6814d532 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/create.py @@ -18,10 +18,13 @@ class DashboardInstancePortalsConsumerAccessCreateOutputConsumerGroup: class DashboardInstancePortalsConsumerAccessCreateOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: DashboardInstancePortalsConsumerAccessCreateOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapDashboardInstancePortalsConsumerAccessCreateOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessCre return DashboardInstancePortalsConsumerAccessCreateOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapDashboardInstancePortalsConsumerAccessCreateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -72,6 +78,9 @@ def to_dict(value: Union[DashboardInstancePortalsConsumerAccessCreateOutput, Dic class DashboardInstancePortalsConsumerAccessCreateBody: consumer_group_id: str access: Dict[str, Any] + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None class mapDashboardInstancePortalsConsumerAccessCreateBody: @@ -79,6 +88,9 @@ class mapDashboardInstancePortalsConsumerAccessCreateBody: def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessCreateBody: return DashboardInstancePortalsConsumerAccessCreateBody( consumer_group_id=data.get('consumer_group_id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/delete.py index 71f8617e..77126808 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/delete.py @@ -18,10 +18,13 @@ class DashboardInstancePortalsConsumerAccessDeleteOutputConsumerGroup: class DashboardInstancePortalsConsumerAccessDeleteOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: DashboardInstancePortalsConsumerAccessDeleteOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapDashboardInstancePortalsConsumerAccessDeleteOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessDel return DashboardInstancePortalsConsumerAccessDeleteOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapDashboardInstancePortalsConsumerAccessDeleteOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/get.py index 93b46e8a..3339a22e 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/get.py @@ -18,10 +18,13 @@ class DashboardInstancePortalsConsumerAccessGetOutputConsumerGroup: class DashboardInstancePortalsConsumerAccessGetOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: DashboardInstancePortalsConsumerAccessGetOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapDashboardInstancePortalsConsumerAccessGetOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessGet return DashboardInstancePortalsConsumerAccessGetOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapDashboardInstancePortalsConsumerAccessGetOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/list.py index c7f8aa16..e5456c25 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/list.py @@ -18,10 +18,13 @@ class DashboardInstancePortalsConsumerAccessListOutputItemsConsumerGroup: class DashboardInstancePortalsConsumerAccessListOutputItems: object: str id: str + name: str access: Dict[str, Any] consumer_group: DashboardInstancePortalsConsumerAccessListOutputItemsConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None @dataclass class DashboardInstancePortalsConsumerAccessListOutputPagination: has_more_before: bool @@ -61,6 +64,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessLis return DashboardInstancePortalsConsumerAccessListOutputItems( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapDashboardInstancePortalsConsumerAccessListOutputItemsConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/update.py new file mode 100644 index 00000000..945e0a50 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access/update.py @@ -0,0 +1,101 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + object: str + id: str + status: str + name: str + is_default: bool + sso_group_ids: List[str] + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerAccessUpdateOutput: + object: str + id: str + name: str + access: Dict[str, Any] + consumer_group: DashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapDashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + return DashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + name=data.get('name'), + description=data.get('description'), + is_default=data.get('is_default'), + sso_group_ids=data.get('sso_group_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstancePortalsConsumerAccessUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessUpdateOutput: + return DashboardInstancePortalsConsumerAccessUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + consumer_group=mapDashboardInstancePortalsConsumerAccessUpdateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstancePortalsConsumerAccessUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None + + +class mapDashboardInstancePortalsConsumerAccessUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessUpdateBody: + return DashboardInstancePortalsConsumerAccessUpdateBody( + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/create.py index 5c432872..7d4300ac 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/create.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesCreateO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class DashboardInstanceProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[DashboardInstanceProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesCreateB name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/delete.py index 25175ad8..952df826 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/delete.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesDeleteO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/get.py index f5e652ed..1554d34c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/get.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesGetOutp description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/list.py index 468207a8..36266387 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/list.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesListOut description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/update.py index dfb571bf..e2d726f8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/provider_templates/update.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesUpdateO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class DashboardInstanceProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapDashboardInstanceProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesUpdateB return DashboardInstanceProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/list_tools.py new file mode 100644 index 00000000..5d6f95ce --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutput: + object: str + items: List[DashboardInstanceSessionTemplatesListToolsOutputItems] + + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + return DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + return DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsTags: + return DashboardInstanceSessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItems: + return DashboardInstanceSessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapDashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapDashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapDashboardInstanceSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutput: + return DashboardInstanceSessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapDashboardInstanceSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/__init__.py index 26672d14..ca972d2b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/__init__.py @@ -1,4 +1,5 @@ from .create import * from .delete import * from .get import * -from .list import * \ No newline at end of file +from .list import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/create.py index 7e159291..ed1aa789 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/create.py @@ -18,10 +18,13 @@ class ManagementInstancePortalsConsumerAccessCreateOutputConsumerGroup: class ManagementInstancePortalsConsumerAccessCreateOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: ManagementInstancePortalsConsumerAccessCreateOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapManagementInstancePortalsConsumerAccessCreateOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessCr return ManagementInstancePortalsConsumerAccessCreateOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapManagementInstancePortalsConsumerAccessCreateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -72,6 +78,9 @@ def to_dict(value: Union[ManagementInstancePortalsConsumerAccessCreateOutput, Di class ManagementInstancePortalsConsumerAccessCreateBody: consumer_group_id: str access: Dict[str, Any] + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None class mapManagementInstancePortalsConsumerAccessCreateBody: @@ -79,6 +88,9 @@ class mapManagementInstancePortalsConsumerAccessCreateBody: def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessCreateBody: return ManagementInstancePortalsConsumerAccessCreateBody( consumer_group_id=data.get('consumer_group_id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/delete.py index 5b0345f2..669937d8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/delete.py @@ -18,10 +18,13 @@ class ManagementInstancePortalsConsumerAccessDeleteOutputConsumerGroup: class ManagementInstancePortalsConsumerAccessDeleteOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: ManagementInstancePortalsConsumerAccessDeleteOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapManagementInstancePortalsConsumerAccessDeleteOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessDe return ManagementInstancePortalsConsumerAccessDeleteOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapManagementInstancePortalsConsumerAccessDeleteOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/get.py index 55f37787..7a6f6b3e 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/get.py @@ -18,10 +18,13 @@ class ManagementInstancePortalsConsumerAccessGetOutputConsumerGroup: class ManagementInstancePortalsConsumerAccessGetOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: ManagementInstancePortalsConsumerAccessGetOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapManagementInstancePortalsConsumerAccessGetOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessGe return ManagementInstancePortalsConsumerAccessGetOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapManagementInstancePortalsConsumerAccessGetOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/list.py index da5e3283..25071f0d 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/list.py @@ -18,10 +18,13 @@ class ManagementInstancePortalsConsumerAccessListOutputItemsConsumerGroup: class ManagementInstancePortalsConsumerAccessListOutputItems: object: str id: str + name: str access: Dict[str, Any] consumer_group: ManagementInstancePortalsConsumerAccessListOutputItemsConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None @dataclass class ManagementInstancePortalsConsumerAccessListOutputPagination: has_more_before: bool @@ -61,6 +64,9 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessLi return ManagementInstancePortalsConsumerAccessListOutputItems( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapManagementInstancePortalsConsumerAccessListOutputItemsConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/update.py new file mode 100644 index 00000000..9dd133a6 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access/update.py @@ -0,0 +1,101 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + object: str + id: str + status: str + name: str + is_default: bool + sso_group_ids: List[str] + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerAccessUpdateOutput: + object: str + id: str + name: str + access: Dict[str, Any] + consumer_group: ManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup: + return ManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + name=data.get('name'), + description=data.get('description'), + is_default=data.get('is_default'), + sso_group_ids=data.get('sso_group_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstancePortalsConsumerAccessUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessUpdateOutput: + return ManagementInstancePortalsConsumerAccessUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + consumer_group=mapManagementInstancePortalsConsumerAccessUpdateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstancePortalsConsumerAccessUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None + + +class mapManagementInstancePortalsConsumerAccessUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessUpdateBody: + return ManagementInstancePortalsConsumerAccessUpdateBody( + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/create.py index 0e7c865c..a9d4ca51 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/create.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesCreate description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class ManagementInstanceProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[ManagementInstanceProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesCreate name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/delete.py index 4f02aa5a..3947a3e6 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/delete.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesDelete description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/get.py index 0a91972d..d32099a8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/get.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesGetOut description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/list.py index 46de42e2..c1ee3747 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/list.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesListOu description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/update.py index 37662229..8d2749eb 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/provider_templates/update.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesUpdate description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class ManagementInstanceProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapManagementInstanceProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesUpdate return ManagementInstanceProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/list_tools.py new file mode 100644 index 00000000..cd3868a2 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutput: + object: str + items: List[ManagementInstanceSessionTemplatesListToolsOutputItems] + + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + return ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + return ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsTags: + return ManagementInstanceSessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItems: + return ManagementInstanceSessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapManagementInstanceSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutput: + return ManagementInstanceSessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapManagementInstanceSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/__init__.py index 26672d14..ca972d2b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/__init__.py @@ -1,4 +1,5 @@ from .create import * from .delete import * from .get import * -from .list import * \ No newline at end of file +from .list import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/create.py index 93e07ed8..bd230601 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/create.py @@ -18,10 +18,13 @@ class PortalsConsumerAccessCreateOutputConsumerGroup: class PortalsConsumerAccessCreateOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: PortalsConsumerAccessCreateOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapPortalsConsumerAccessCreateOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessCreateOutput: return PortalsConsumerAccessCreateOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapPortalsConsumerAccessCreateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -72,6 +78,9 @@ def to_dict(value: Union[PortalsConsumerAccessCreateOutput, Dict[str, Any], None class PortalsConsumerAccessCreateBody: consumer_group_id: str access: Dict[str, Any] + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None class mapPortalsConsumerAccessCreateBody: @@ -79,6 +88,9 @@ class mapPortalsConsumerAccessCreateBody: def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessCreateBody: return PortalsConsumerAccessCreateBody( consumer_group_id=data.get('consumer_group_id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/delete.py index 5e57f300..8472e180 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/delete.py @@ -18,10 +18,13 @@ class PortalsConsumerAccessDeleteOutputConsumerGroup: class PortalsConsumerAccessDeleteOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: PortalsConsumerAccessDeleteOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapPortalsConsumerAccessDeleteOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessDeleteOutput: return PortalsConsumerAccessDeleteOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapPortalsConsumerAccessDeleteOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/get.py index cf931071..526beeec 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/get.py @@ -18,10 +18,13 @@ class PortalsConsumerAccessGetOutputConsumerGroup: class PortalsConsumerAccessGetOutput: object: str id: str + name: str access: Dict[str, Any] consumer_group: PortalsConsumerAccessGetOutputConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None class mapPortalsConsumerAccessGetOutputConsumerGroup: @@ -53,6 +56,9 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessGetOutput: return PortalsConsumerAccessGetOutput( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapPortalsConsumerAccessGetOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/list.py index c4f743d7..fb28fc6d 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/list.py @@ -18,10 +18,13 @@ class PortalsConsumerAccessListOutputItemsConsumerGroup: class PortalsConsumerAccessListOutputItems: object: str id: str + name: str access: Dict[str, Any] consumer_group: PortalsConsumerAccessListOutputItemsConsumerGroup created_at: datetime updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None @dataclass class PortalsConsumerAccessListOutputPagination: has_more_before: bool @@ -61,6 +64,9 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListOutputItems: return PortalsConsumerAccessListOutputItems( object=data.get('object'), id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), access=data.get('access'), consumer_group=mapPortalsConsumerAccessListOutputItemsConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/update.py new file mode 100644 index 00000000..168571db --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access/update.py @@ -0,0 +1,101 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerAccessUpdateOutputConsumerGroup: + object: str + id: str + status: str + name: str + is_default: bool + sso_group_ids: List[str] + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class PortalsConsumerAccessUpdateOutput: + object: str + id: str + name: str + access: Dict[str, Any] + consumer_group: PortalsConsumerAccessUpdateOutputConsumerGroup + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapPortalsConsumerAccessUpdateOutputConsumerGroup: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessUpdateOutputConsumerGroup: + return PortalsConsumerAccessUpdateOutputConsumerGroup( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + name=data.get('name'), + description=data.get('description'), + is_default=data.get('is_default'), + sso_group_ids=data.get('sso_group_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessUpdateOutputConsumerGroup, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapPortalsConsumerAccessUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessUpdateOutput: + return PortalsConsumerAccessUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + consumer_group=mapPortalsConsumerAccessUpdateOutputConsumerGroup.from_dict(data.get('consumer_group')) if data.get('consumer_group') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class PortalsConsumerAccessUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + readme: Optional[str] = None + + +class mapPortalsConsumerAccessUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessUpdateBody: + return PortalsConsumerAccessUpdateBody( + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/create.py index e5ed9ad8..6c8d3d4b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/create.py @@ -11,6 +11,7 @@ class ProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesCreateOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class ProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[ProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesCreateBody: name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/delete.py index 45a7b41f..68e3be1e 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/delete.py @@ -11,6 +11,7 @@ class ProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesDeleteOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/get.py index 42ff8819..c3f31425 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/get.py @@ -11,6 +11,7 @@ class ProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesGetOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/list.py index e5bcf11b..e1f92591 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/list.py @@ -11,6 +11,7 @@ class ProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesListOutputItems: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/update.py index 81f5d173..0914d4e8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/provider_templates/update.py @@ -11,6 +11,7 @@ class ProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesUpdateOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class ProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesUpdateBody: return ProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/list_tools.py new file mode 100644 index 00000000..16abbe11 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class SessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class SessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class SessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class SessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[SessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[SessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[SessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class SessionTemplatesListToolsOutput: + object: str + items: List[SessionTemplatesListToolsOutputItems] + + +class mapSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsInputSchema: + return SessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsOutputSchema: + return SessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsTags: + return SessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItems: + return SessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutput: + return SessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py index f5f970a2..8b5667ee 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py @@ -336,6 +336,7 @@ # DashboardInstanceSessionTemplatesGetOutput # DashboardInstanceSessionTemplatesListOutput # DashboardInstanceSessionTemplatesListQuery +# DashboardInstanceSessionTemplatesListToolsOutput # DashboardInstanceSessionTemplatesProvidersCreateBody # DashboardInstanceSessionTemplatesProvidersCreateOutput # DashboardInstanceSessionTemplatesProvidersDeleteOutput @@ -731,6 +732,7 @@ # mapDashboardInstanceSessionTemplatesGetOutput # mapDashboardInstanceSessionTemplatesListOutput # mapDashboardInstanceSessionTemplatesListQuery +# mapDashboardInstanceSessionTemplatesListToolsOutput # mapDashboardInstanceSessionTemplatesProvidersCreateBody # mapDashboardInstanceSessionTemplatesProvidersCreateOutput # mapDashboardInstanceSessionTemplatesProvidersDeleteOutput diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py index ca42ee66..7ee6cf3f 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,6 +75,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -86,6 +87,8 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -97,7 +100,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -107,6 +110,7 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -117,6 +121,8 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_session_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_session_templates.py index 721f47c3..33c55831 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_session_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialDashboardInstanceSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -151,4 +151,18 @@ def delete(self, instance_id: str, session_template_id: str) -> DashboardInstanc request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, instance_id: str, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param instance_id: str + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py index 1333a4f4..1d7e239f 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,6 +75,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -86,6 +87,8 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -97,7 +100,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, instance_id: str, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -107,6 +110,7 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -117,6 +121,8 @@ def update(self, instance_id: str, provider_template_id: str, *, name: Optional[ body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['instances', instance_id, 'provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_session_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_session_templates.py index bc47f43f..ae4967b1 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_session_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialManagementInstanceSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -151,4 +151,18 @@ def delete(self, instance_id: str, session_template_id: str) -> DashboardInstanc request = MetorialRequest( path=['instances', instance_id, 'session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, instance_id: str, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param instance_id: str + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py index b1d322f0..68ab0a25 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py @@ -64,7 +64,7 @@ def get(self, provider_template_id: str) -> DashboardInstanceProviderTemplatesGe ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None, provider_deployment_id: str = None, provider_deployment: Dict[str, Any] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -72,6 +72,7 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filers: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :param provider_deployment_id: str (optional) :param provider_deployment: Dict[str, Any] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput @@ -83,6 +84,8 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filers is not None: + body_dict["tool_filers"] = tool_filers if provider_deployment_id is not None: body_dict["provider_deployment_id"] = provider_deployment_id if provider_deployment is not None: @@ -94,7 +97,7 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti ) return self._post(request).transform(mapDashboardInstanceProviderTemplatesCreateOutput.from_dict) - def update(self, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: + def update(self, provider_template_id: str, *, name: Optional[str] = None, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] = None) -> DashboardInstanceProviderTemplatesUpdateOutput: """ Update provider template Updates an existing provider template. @@ -103,6 +106,7 @@ def update(self, provider_template_id: str, *, name: Optional[str] = None, descr :param name: Optional[str] (optional) :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) + :param tool_filters: Optional[Union[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]], List[Union[Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any], Dict[str, Any]]]]] (optional) :return: DashboardInstanceProviderTemplatesUpdateOutput """ # Build body parameters from keyword arguments @@ -113,6 +117,8 @@ def update(self, provider_template_id: str, *, name: Optional[str] = None, descr body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata + if tool_filters is not None: + body_dict["tool_filters"] = tool_filters request = MetorialRequest( path=['provider-templates', provider_template_id], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/session_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/session_templates.py index 8ed78021..eea88909 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/session_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/session_templates.py @@ -1,6 +1,6 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput +from ..resources import mapDashboardInstanceSessionTemplatesListOutput, DashboardInstanceSessionTemplatesListOutput, mapDashboardInstanceSessionTemplatesListQuery, DashboardInstanceSessionTemplatesListQuery, mapDashboardInstanceSessionTemplatesGetOutput, DashboardInstanceSessionTemplatesGetOutput, mapDashboardInstanceSessionTemplatesCreateOutput, DashboardInstanceSessionTemplatesCreateOutput, mapDashboardInstanceSessionTemplatesCreateBody, DashboardInstanceSessionTemplatesCreateBody, mapDashboardInstanceSessionTemplatesUpdateOutput, DashboardInstanceSessionTemplatesUpdateOutput, mapDashboardInstanceSessionTemplatesUpdateBody, DashboardInstanceSessionTemplatesUpdateBody, mapDashboardInstanceSessionTemplatesDeleteOutput, DashboardInstanceSessionTemplatesDeleteOutput, mapDashboardInstanceSessionTemplatesListToolsOutput, DashboardInstanceSessionTemplatesListToolsOutput class MetorialSessionTemplatesEndpoint(BaseMetorialEndpoint): """Session templates define reusable configurations for sessions, including which providers to include. Templates can be used to quickly create new sessions with consistent settings.""" @@ -146,4 +146,17 @@ def delete(self, session_template_id: str) -> DashboardInstanceSessionTemplatesD request = MetorialRequest( path=['session-templates', session_template_id] ) - return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardInstanceSessionTemplatesDeleteOutput.from_dict) + + def list_tools(self, session_template_id: str) -> DashboardInstanceSessionTemplatesListToolsOutput: + """ + List session template tools + Returns the effective set of tools available through the providers in a session template, filtered by the tool filters of each provider, deployment, config, and auth config. + + :param session_template_id: str + :return: DashboardInstanceSessionTemplatesListToolsOutput + """ + request = MetorialRequest( + path=['session-templates', session_template_id, 'tools'] + ) + return self._get(request).transform(mapDashboardInstanceSessionTemplatesListToolsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py index 5c432872..7d4300ac 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesCreateO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class DashboardInstanceProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[DashboardInstanceProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesCreateB name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/delete.py index 25175ad8..952df826 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/delete.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesDeleteO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/get.py index f5e652ed..1554d34c 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/get.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesGetOutp description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/list.py index 468207a8..36266387 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/list.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesListOut description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/update.py index dfb571bf..e2d726f8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/update.py @@ -11,6 +11,7 @@ class DashboardInstanceProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesUpdateO description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class DashboardInstanceProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapDashboardInstanceProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesUpdateB return DashboardInstanceProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/list_tools.py new file mode 100644 index 00000000..5d6f95ce --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[DashboardInstanceSessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class DashboardInstanceSessionTemplatesListToolsOutput: + object: str + items: List[DashboardInstanceSessionTemplatesListToolsOutputItems] + + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema: + return DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + return DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItemsTags: + return DashboardInstanceSessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutputItems: + return DashboardInstanceSessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapDashboardInstanceSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapDashboardInstanceSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapDashboardInstanceSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceSessionTemplatesListToolsOutput: + return DashboardInstanceSessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapDashboardInstanceSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceSessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py index 0e7c865c..a9d4ca51 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesCreate description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class ManagementInstanceProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[ManagementInstanceProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesCreate name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/delete.py index 4f02aa5a..3947a3e6 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/delete.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesDelete description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/get.py index 0a91972d..d32099a8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/get.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesGetOut description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/list.py index 46de42e2..c1ee3747 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/list.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesListOu description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/update.py index 37662229..8d2749eb 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/update.py @@ -11,6 +11,7 @@ class ManagementInstanceProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesUpdate description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class ManagementInstanceProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapManagementInstanceProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesUpdate return ManagementInstanceProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/list_tools.py new file mode 100644 index 00000000..cd3868a2 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[ManagementInstanceSessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class ManagementInstanceSessionTemplatesListToolsOutput: + object: str + items: List[ManagementInstanceSessionTemplatesListToolsOutputItems] + + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema: + return ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema: + return ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItemsTags: + return ManagementInstanceSessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutputItems: + return ManagementInstanceSessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapManagementInstanceSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapManagementInstanceSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapManagementInstanceSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceSessionTemplatesListToolsOutput: + return ManagementInstanceSessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapManagementInstanceSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceSessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py index e5ed9ad8..6c8d3d4b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py @@ -11,6 +11,7 @@ class ProviderTemplatesCreateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesCreateOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -52,6 +54,7 @@ class ProviderTemplatesCreateBody: name: str description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filers: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None provider_deployment_id: Optional[str] = None provider_deployment: Optional[ProviderTemplatesCreateBodyProviderDeployment] = None @@ -63,6 +66,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesCreateBody: name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), + tool_filers=data.get('tool_filers'), provider_deployment_id=data.get('provider_deployment_id'), provider_deployment=data.get('provider_deployment') ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/delete.py index 45a7b41f..68e3be1e 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/delete.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/delete.py @@ -11,6 +11,7 @@ class ProviderTemplatesDeleteOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesDeleteOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/get.py index 42ff8819..c3f31425 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/get.py @@ -11,6 +11,7 @@ class ProviderTemplatesGetOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesGetOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/list.py index e5bcf11b..e1f92591 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/list.py @@ -11,6 +11,7 @@ class ProviderTemplatesListOutputItems: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -35,6 +36,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesListOutputItems: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/update.py index 81f5d173..0914d4e8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/update.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/update.py @@ -11,6 +11,7 @@ class ProviderTemplatesUpdateOutput: name: str metadata: Dict[str, Any] provider_deployment_id: str + tool_filters: Dict[str, Any] created_at: datetime updated_at: datetime description: Optional[str] = None @@ -27,6 +28,7 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesUpdateOutput: description=data.get('description'), metadata=data.get('metadata'), provider_deployment_id=data.get('provider_deployment_id'), + tool_filters=data.get('tool_filters'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @@ -45,6 +47,7 @@ class ProviderTemplatesUpdateBody: name: Optional[str] = None description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + tool_filters: Optional[Union[Dict[str, Any], List[Dict[str, Any]]]] = None class mapProviderTemplatesUpdateBody: @@ -53,7 +56,8 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesUpdateBody: return ProviderTemplatesUpdateBody( name=data.get('name'), description=data.get('description'), - metadata=data.get('metadata') + metadata=data.get('metadata'), + tool_filters=data.get('tool_filters') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/__init__.py index 7e2a5ace..515d424c 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/__init__.py @@ -2,5 +2,6 @@ from .delete import * from .get import * from .list import * +from .list_tools import * from .providers import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/list_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/list_tools.py new file mode 100644 index 00000000..16abbe11 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/session_templates/list_tools.py @@ -0,0 +1,134 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class SessionTemplatesListToolsOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class SessionTemplatesListToolsOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class SessionTemplatesListToolsOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class SessionTemplatesListToolsOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[SessionTemplatesListToolsOutputItemsInputSchema] = None + output_schema: Optional[SessionTemplatesListToolsOutputItemsOutputSchema] = None + tags: Optional[SessionTemplatesListToolsOutputItemsTags] = None +@dataclass +class SessionTemplatesListToolsOutput: + object: str + items: List[SessionTemplatesListToolsOutputItems] + + +class mapSessionTemplatesListToolsOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsInputSchema: + return SessionTemplatesListToolsOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsOutputSchema: + return SessionTemplatesListToolsOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItemsTags: + return SessionTemplatesListToolsOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutputItems: + return SessionTemplatesListToolsOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapSessionTemplatesListToolsOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapSessionTemplatesListToolsOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapSessionTemplatesListToolsOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapSessionTemplatesListToolsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> SessionTemplatesListToolsOutput: + return SessionTemplatesListToolsOutput( + object=data.get('object'), + items=[mapSessionTemplatesListToolsOutputItems.from_dict(item) for item in data.get('items', []) if item] + ) + + @staticmethod + def to_dict(value: Union[SessionTemplatesListToolsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) +