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 406d8e4..7a5336d 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,9 @@ # DashboardInstancePortalsConsumerAccessGetOutput # DashboardInstancePortalsConsumerAccessListOutput # DashboardInstancePortalsConsumerAccessListQuery +# DashboardInstancePortalsConsumerAccessListingsGetOutput +# DashboardInstancePortalsConsumerAccessListingsListOutput +# DashboardInstancePortalsConsumerAccessListingsListQuery # DashboardInstancePortalsConsumerAccessUpdateBody # DashboardInstancePortalsConsumerAccessUpdateOutput # DashboardInstancePortalsConsumerGroupsCreateBody @@ -238,6 +241,17 @@ # DashboardInstancePortalsGetOutput # DashboardInstancePortalsListOutput # DashboardInstancePortalsListQuery +# DashboardInstancePortalsSurfaceProviderGroupsAddListingBody +# DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput +# DashboardInstancePortalsSurfaceProviderGroupsCreateBody +# DashboardInstancePortalsSurfaceProviderGroupsCreateOutput +# DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput +# DashboardInstancePortalsSurfaceProviderGroupsGetOutput +# DashboardInstancePortalsSurfaceProviderGroupsListOutput +# DashboardInstancePortalsSurfaceProviderGroupsListQuery +# DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput +# DashboardInstancePortalsSurfaceProviderGroupsUpdateBody +# DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput # DashboardInstancePortalsUpdateBody # DashboardInstancePortalsUpdateOutput # DashboardInstanceProviderCategoriesGetOutput @@ -793,6 +807,9 @@ # mapDashboardInstancePortalsConsumerAccessGetOutput # mapDashboardInstancePortalsConsumerAccessListOutput # mapDashboardInstancePortalsConsumerAccessListQuery +# mapDashboardInstancePortalsConsumerAccessListingsGetOutput +# mapDashboardInstancePortalsConsumerAccessListingsListOutput +# mapDashboardInstancePortalsConsumerAccessListingsListQuery # mapDashboardInstancePortalsConsumerAccessUpdateBody # mapDashboardInstancePortalsConsumerAccessUpdateOutput # mapDashboardInstancePortalsConsumerGroupsCreateBody @@ -821,6 +838,17 @@ # mapDashboardInstancePortalsGetOutput # mapDashboardInstancePortalsListOutput # mapDashboardInstancePortalsListQuery +# mapDashboardInstancePortalsSurfaceProviderGroupsAddListingBody +# mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsCreateBody +# mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsListOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsListQuery +# mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput +# mapDashboardInstancePortalsSurfaceProviderGroupsUpdateBody +# mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput # mapDashboardInstancePortalsUpdateBody # mapDashboardInstancePortalsUpdateOutput # mapDashboardInstanceProviderCategoriesGetOutput diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/__init__.py index 7a7eec6..53d4924 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/__init__.py @@ -47,9 +47,11 @@ from .dashboard_instance_portals_auth_sso_tenants import * from .dashboard_instance_portals_auth_sso_tenants_connections import * from .dashboard_instance_portals_consumer_access import * +from .dashboard_instance_portals_consumer_access_listings import * from .dashboard_instance_portals_consumer_groups import * from .dashboard_instance_portals_consumer_invites import * from .dashboard_instance_portals_consumer_profiles import * +from .dashboard_instance_portals_surface_provider_groups import * from .dashboard_instance_provider_categories import * from .dashboard_instance_provider_collections import * from .dashboard_instance_provider_deployments import * @@ -162,9 +164,11 @@ from .management_instance_portals_auth_sso_tenants import * from .management_instance_portals_auth_sso_tenants_connections import * from .management_instance_portals_consumer_access import * +from .management_instance_portals_consumer_access_listings import * from .management_instance_portals_consumer_groups import * from .management_instance_portals_consumer_invites import * from .management_instance_portals_consumer_profiles import * +from .management_instance_portals_surface_provider_groups import * from .management_instance_provider_categories import * from .management_instance_provider_collections import * from .management_instance_provider_deployments import * @@ -235,9 +239,11 @@ from .portals_auth_sso_tenants import * from .portals_auth_sso_tenants_connections import * from .portals_consumer_access import * +from .portals_consumer_access_listings import * from .portals_consumer_groups import * from .portals_consumer_invites import * from .portals_consumer_profiles import * +from .portals_surface_provider_groups import * from .provider_categories import * from .provider_collections import * from .provider_deployments import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access_listings.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access_listings.py new file mode 100644 index 0000000..3fa83a3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_access_listings.py @@ -0,0 +1,72 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerAccessListingsListOutput, DashboardInstancePortalsConsumerAccessListingsListOutput, mapDashboardInstancePortalsConsumerAccessListingsListQuery, DashboardInstancePortalsConsumerAccessListingsListQuery, mapDashboardInstancePortalsConsumerAccessListingsGetOutput, DashboardInstancePortalsConsumerAccessListingsGetOutput + +class MetorialDashboardInstancePortalsConsumerAccessListingsEndpoint(BaseMetorialEndpoint): + """Read the shared consumer access listings available on a portal surface.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, search: Optional[str] = None, consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None, provider_template_id: Optional[Union[str, List[str]]] = None, magic_mcp_server_id: Optional[Union[str, List[str]]] = None, type: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerAccessListingsListOutput: + """ + List portal consumer access listings + Returns a paginated list of shared consumer access listings for a portal. + + :param instance_id: str + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param search: Optional[str] (optional) + :param consumer_surface_provider_group_id: Optional[Union[str, List[str]]] (optional) + :param provider_template_id: Optional[Union[str, List[str]]] (optional) + :param magic_mcp_server_id: Optional[Union[str, List[str]]] (optional) + :param type: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerAccessListingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if search is not None: + query_dict["search"] = search + if consumer_surface_provider_group_id is not None: + query_dict["consumer_surface_provider_group_id"] = consumer_surface_provider_group_id + if provider_template_id is not None: + query_dict["provider_template_id"] = provider_template_id + if magic_mcp_server_id is not None: + query_dict["magic_mcp_server_id"] = magic_mcp_server_id + if type is not None: + query_dict["type"] = type + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'consumer-access-listings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsListOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsConsumerAccessListingsGetOutput: + """ + Get portal consumer access listing + Retrieves one shared consumer access listing for a portal. + + :param instance_id: str + :param portal_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsConsumerAccessListingsGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'consumer-access-listings', consumer_access_listing_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_surface_provider_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_surface_provider_groups.py new file mode 100644 index 0000000..a6fbb14 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_surface_provider_groups.py @@ -0,0 +1,160 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsSurfaceProviderGroupsListOutput, DashboardInstancePortalsSurfaceProviderGroupsListOutput, mapDashboardInstancePortalsSurfaceProviderGroupsListQuery, DashboardInstancePortalsSurfaceProviderGroupsListQuery, mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput, DashboardInstancePortalsSurfaceProviderGroupsGetOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput, DashboardInstancePortalsSurfaceProviderGroupsCreateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateBody, DashboardInstancePortalsSurfaceProviderGroupsCreateBody, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateBody, DashboardInstancePortalsSurfaceProviderGroupsUpdateBody, mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingBody, DashboardInstancePortalsSurfaceProviderGroupsAddListingBody, mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput, DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + +class MetorialDashboardInstancePortalsSurfaceProviderGroupsEndpoint(BaseMetorialEndpoint): + """Manage the provider groups linked to a portal consumer surface for organizing providers.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsListOutput: + """ + List portal surface provider groups + Returns a paginated list of provider groups linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsListOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsGetOutput: + """ + Get portal surface provider group + Retrieves a portal surface provider group by ID. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput.from_dict) + + def create(self, instance_id: str, portal_id: str, *, name: str, description: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + """ + Create portal surface provider group + Creates a new provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param name: str + :param description: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput.from_dict) + + def update(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, *, name: Optional[str] = None, description: Optional[str] = None, index: Optional[float] = None) -> DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + """ + Update portal surface provider group + Updates a provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param index: Optional[float] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput + """ + # 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 index is not None: + body_dict["index"] = index + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput.from_dict) + + def delete(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + """ + Delete portal surface provider group + Deletes a provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput.from_dict) + + def add_listing(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, *, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + """ + Add listing to surface provider group + Adds a consumer access listing to the surface provider group. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["consumer_access_listing_id"] = consumer_access_listing_id + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput.from_dict) + + def remove_listing(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + """ + Remove listing from surface provider group + Removes a consumer access listing from the surface provider group. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings', consumer_access_listing_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput.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_listings.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access_listings.py new file mode 100644 index 0000000..b7789a1 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_access_listings.py @@ -0,0 +1,72 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerAccessListingsListOutput, DashboardInstancePortalsConsumerAccessListingsListOutput, mapDashboardInstancePortalsConsumerAccessListingsListQuery, DashboardInstancePortalsConsumerAccessListingsListQuery, mapDashboardInstancePortalsConsumerAccessListingsGetOutput, DashboardInstancePortalsConsumerAccessListingsGetOutput + +class MetorialManagementInstancePortalsConsumerAccessListingsEndpoint(BaseMetorialEndpoint): + """Read the shared consumer access listings available on a portal surface.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, search: Optional[str] = None, consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None, provider_template_id: Optional[Union[str, List[str]]] = None, magic_mcp_server_id: Optional[Union[str, List[str]]] = None, type: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerAccessListingsListOutput: + """ + List portal consumer access listings + Returns a paginated list of shared consumer access listings for a portal. + + :param instance_id: str + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param search: Optional[str] (optional) + :param consumer_surface_provider_group_id: Optional[Union[str, List[str]]] (optional) + :param provider_template_id: Optional[Union[str, List[str]]] (optional) + :param magic_mcp_server_id: Optional[Union[str, List[str]]] (optional) + :param type: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerAccessListingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if search is not None: + query_dict["search"] = search + if consumer_surface_provider_group_id is not None: + query_dict["consumer_surface_provider_group_id"] = consumer_surface_provider_group_id + if provider_template_id is not None: + query_dict["provider_template_id"] = provider_template_id + if magic_mcp_server_id is not None: + query_dict["magic_mcp_server_id"] = magic_mcp_server_id + if type is not None: + query_dict["type"] = type + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'consumer-access-listings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsListOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsConsumerAccessListingsGetOutput: + """ + Get portal consumer access listing + Retrieves one shared consumer access listing for a portal. + + :param instance_id: str + :param portal_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsConsumerAccessListingsGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'consumer-access-listings', consumer_access_listing_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_surface_provider_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_surface_provider_groups.py new file mode 100644 index 0000000..c5d1b66 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_surface_provider_groups.py @@ -0,0 +1,160 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsSurfaceProviderGroupsListOutput, DashboardInstancePortalsSurfaceProviderGroupsListOutput, mapDashboardInstancePortalsSurfaceProviderGroupsListQuery, DashboardInstancePortalsSurfaceProviderGroupsListQuery, mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput, DashboardInstancePortalsSurfaceProviderGroupsGetOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput, DashboardInstancePortalsSurfaceProviderGroupsCreateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateBody, DashboardInstancePortalsSurfaceProviderGroupsCreateBody, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateBody, DashboardInstancePortalsSurfaceProviderGroupsUpdateBody, mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingBody, DashboardInstancePortalsSurfaceProviderGroupsAddListingBody, mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput, DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + +class MetorialManagementInstancePortalsSurfaceProviderGroupsEndpoint(BaseMetorialEndpoint): + """Manage the provider groups linked to a portal consumer surface for organizing providers.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsListOutput: + """ + List portal surface provider groups + Returns a paginated list of provider groups linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsListOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsGetOutput: + """ + Get portal surface provider group + Retrieves a portal surface provider group by ID. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput.from_dict) + + def create(self, instance_id: str, portal_id: str, *, name: str, description: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + """ + Create portal surface provider group + Creates a new provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param name: str + :param description: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput.from_dict) + + def update(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, *, name: Optional[str] = None, description: Optional[str] = None, index: Optional[float] = None) -> DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + """ + Update portal surface provider group + Updates a provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param index: Optional[float] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput + """ + # 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 index is not None: + body_dict["index"] = index + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput.from_dict) + + def delete(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + """ + Delete portal surface provider group + Deletes a provider group linked to the portal consumer surface. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput.from_dict) + + def add_listing(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, *, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + """ + Add listing to surface provider group + Adds a consumer access listing to the surface provider group. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["consumer_access_listing_id"] = consumer_access_listing_id + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput.from_dict) + + def remove_listing(self, instance_id: str, portal_id: str, consumer_surface_provider_group_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + """ + Remove listing from surface provider group + Removes a consumer access listing from the surface provider group. + + :param instance_id: str + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings', consumer_access_listing_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access_listings.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access_listings.py new file mode 100644 index 0000000..884f736 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_access_listings.py @@ -0,0 +1,70 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerAccessListingsListOutput, DashboardInstancePortalsConsumerAccessListingsListOutput, mapDashboardInstancePortalsConsumerAccessListingsListQuery, DashboardInstancePortalsConsumerAccessListingsListQuery, mapDashboardInstancePortalsConsumerAccessListingsGetOutput, DashboardInstancePortalsConsumerAccessListingsGetOutput + +class MetorialPortalsConsumerAccessListingsEndpoint(BaseMetorialEndpoint): + """Read the shared consumer access listings available on a portal surface.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, search: Optional[str] = None, consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None, provider_template_id: Optional[Union[str, List[str]]] = None, magic_mcp_server_id: Optional[Union[str, List[str]]] = None, type: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerAccessListingsListOutput: + """ + List portal consumer access listings + Returns a paginated list of shared consumer access listings for a portal. + + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param search: Optional[str] (optional) + :param consumer_surface_provider_group_id: Optional[Union[str, List[str]]] (optional) + :param provider_template_id: Optional[Union[str, List[str]]] (optional) + :param magic_mcp_server_id: Optional[Union[str, List[str]]] (optional) + :param type: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerAccessListingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if search is not None: + query_dict["search"] = search + if consumer_surface_provider_group_id is not None: + query_dict["consumer_surface_provider_group_id"] = consumer_surface_provider_group_id + if provider_template_id is not None: + query_dict["provider_template_id"] = provider_template_id + if magic_mcp_server_id is not None: + query_dict["magic_mcp_server_id"] = magic_mcp_server_id + if type is not None: + query_dict["type"] = type + + request = MetorialRequest( + path=['portals', portal_id, 'consumer-access-listings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsListOutput.from_dict) + + def get(self, portal_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsConsumerAccessListingsGetOutput: + """ + Get portal consumer access listing + Retrieves one shared consumer access listing for a portal. + + :param portal_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsConsumerAccessListingsGetOutput + """ + request = MetorialRequest( + path=['portals', portal_id, 'consumer-access-listings', consumer_access_listing_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerAccessListingsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_surface_provider_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_surface_provider_groups.py new file mode 100644 index 0000000..8d419d5 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_surface_provider_groups.py @@ -0,0 +1,153 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsSurfaceProviderGroupsListOutput, DashboardInstancePortalsSurfaceProviderGroupsListOutput, mapDashboardInstancePortalsSurfaceProviderGroupsListQuery, DashboardInstancePortalsSurfaceProviderGroupsListQuery, mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput, DashboardInstancePortalsSurfaceProviderGroupsGetOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput, DashboardInstancePortalsSurfaceProviderGroupsCreateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsCreateBody, DashboardInstancePortalsSurfaceProviderGroupsCreateBody, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, mapDashboardInstancePortalsSurfaceProviderGroupsUpdateBody, DashboardInstancePortalsSurfaceProviderGroupsUpdateBody, mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, mapDashboardInstancePortalsSurfaceProviderGroupsAddListingBody, DashboardInstancePortalsSurfaceProviderGroupsAddListingBody, mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput, DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + +class MetorialPortalsSurfaceProviderGroupsEndpoint(BaseMetorialEndpoint): + """Manage the provider groups linked to a portal consumer surface for organizing providers.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, portal_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsListOutput: + """ + List portal surface provider groups + Returns a paginated list of provider groups linked to the portal consumer surface. + + :param portal_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsListOutput.from_dict) + + def get(self, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsGetOutput: + """ + Get portal surface provider group + Retrieves a portal surface provider group by ID. + + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsGetOutput + """ + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput.from_dict) + + def create(self, portal_id: str, *, name: str, description: Optional[str] = None) -> DashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + """ + Create portal surface provider group + Creates a new provider group linked to the portal consumer surface. + + :param portal_id: str + :param name: str + :param description: Optional[str] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput.from_dict) + + def update(self, portal_id: str, consumer_surface_provider_group_id: str, *, name: Optional[str] = None, description: Optional[str] = None, index: Optional[float] = None) -> DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + """ + Update portal surface provider group + Updates a provider group linked to the portal consumer surface. + + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param index: Optional[float] (optional) + :return: DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput + """ + # 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 index is not None: + body_dict["index"] = index + + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput.from_dict) + + def delete(self, portal_id: str, consumer_surface_provider_group_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + """ + Delete portal surface provider group + Deletes a provider group linked to the portal consumer surface. + + :param portal_id: str + :param consumer_surface_provider_group_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput + """ + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput.from_dict) + + def add_listing(self, portal_id: str, consumer_surface_provider_group_id: str, *, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + """ + Add listing to surface provider group + Adds a consumer access listing to the surface provider group. + + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["consumer_access_listing_id"] = consumer_access_listing_id + + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput.from_dict) + + def remove_listing(self, portal_id: str, consumer_surface_provider_group_id: str, consumer_access_listing_id: str) -> DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + """ + Remove listing from surface provider group + Removes a consumer access listing from the surface provider group. + + :param portal_id: str + :param consumer_surface_provider_group_id: str + :param consumer_access_listing_id: str + :return: DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput + """ + request = MetorialRequest( + path=['portals', portal_id, 'surface-provider-groups', consumer_surface_provider_group_id, 'listings', consumer_access_listing_id] + ) + return self._delete(request).transform(mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/__init__.py index e94877e..c7a72d5 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/__init__.py @@ -1,6 +1,7 @@ from .access_requests import * from .auth import * from .consumer_access import * +from .consumer_access_listings import * from .consumer_groups import * from .consumer_invites import * from .consumer_profiles import * @@ -8,4 +9,5 @@ from .delete import * from .get import * from .list import * +from .surface_provider_groups 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_listings/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/__init__.py new file mode 100644 index 0000000..65eb373 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list 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_listings/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/get.py new file mode 100644 index 0000000..4f1d78f --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerAccessListingsGetOutputGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerAccessListingsGetOutput: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[DashboardInstancePortalsConsumerAccessListingsGetOutputGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapDashboardInstancePortalsConsumerAccessListingsGetOutputGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsGetOutputGroups: + return DashboardInstancePortalsConsumerAccessListingsGetOutputGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessListingsGetOutputGroups, 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 mapDashboardInstancePortalsConsumerAccessListingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsGetOutput: + return DashboardInstancePortalsConsumerAccessListingsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapDashboardInstancePortalsConsumerAccessListingsGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[DashboardInstancePortalsConsumerAccessListingsGetOutput, 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/portals/consumer_access_listings/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/list.py new file mode 100644 index 0000000..89ef1ba --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_access_listings/list.py @@ -0,0 +1,145 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerAccessListingsListOutputItems: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[DashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerAccessListingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstancePortalsConsumerAccessListingsListOutput: + items: List[DashboardInstancePortalsConsumerAccessListingsListOutputItems] + pagination: DashboardInstancePortalsConsumerAccessListingsListOutputPagination + + +class mapDashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups: + return DashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups, 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 mapDashboardInstancePortalsConsumerAccessListingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsListOutputItems: + return DashboardInstancePortalsConsumerAccessListingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapDashboardInstancePortalsConsumerAccessListingsListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[DashboardInstancePortalsConsumerAccessListingsListOutputItems, 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 mapDashboardInstancePortalsConsumerAccessListingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsListOutputPagination: + return DashboardInstancePortalsConsumerAccessListingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessListingsListOutputPagination, 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 mapDashboardInstancePortalsConsumerAccessListingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsListOutput: + return DashboardInstancePortalsConsumerAccessListingsListOutput( + items=[mapDashboardInstancePortalsConsumerAccessListingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstancePortalsConsumerAccessListingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessListingsListOutput, 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 DashboardInstancePortalsConsumerAccessListingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None + provider_template_id: Optional[Union[str, List[str]]] = None + magic_mcp_server_id: Optional[Union[str, List[str]]] = None + type: Optional[Union[str, List[str]]] = None + + +class mapDashboardInstancePortalsConsumerAccessListingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerAccessListingsListQuery: + return DashboardInstancePortalsConsumerAccessListingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + consumer_surface_provider_group_id=data.get('consumer_surface_provider_group_id'), + provider_template_id=data.get('provider_template_id'), + magic_mcp_server_id=data.get('magic_mcp_server_id'), + type=data.get('type') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerAccessListingsListQuery, 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/portals/surface_provider_groups/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/__init__.py new file mode 100644 index 0000000..7e15ea4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/__init__.py @@ -0,0 +1,7 @@ +from .add_listing import * +from .create import * +from .delete import * +from .get import * +from .list import * +from .remove_listing 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/surface_provider_groups/add_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/add_listing.py new file mode 100644 index 0000000..1418a33 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/add_listing.py @@ -0,0 +1,59 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput: + return DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsAddListingOutput, 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 DashboardInstancePortalsSurfaceProviderGroupsAddListingBody: + consumer_access_listing_id: str + + +class mapDashboardInstancePortalsSurfaceProviderGroupsAddListingBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsAddListingBody: + return DashboardInstancePortalsSurfaceProviderGroupsAddListingBody( + consumer_access_listing_id=data.get('consumer_access_listing_id') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsAddListingBody, 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/portals/surface_provider_groups/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/create.py new file mode 100644 index 0000000..2125b4e --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/create.py @@ -0,0 +1,61 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsCreateOutput: + return DashboardInstancePortalsSurfaceProviderGroupsCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsCreateOutput, 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 DashboardInstancePortalsSurfaceProviderGroupsCreateBody: + name: str + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsCreateBody: + return DashboardInstancePortalsSurfaceProviderGroupsCreateBody( + name=data.get('name'), + description=data.get('description') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsCreateBody, 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/portals/surface_provider_groups/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/delete.py new file mode 100644 index 0000000..932e503 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/delete.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput: + return DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsDeleteOutput, 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/portals/surface_provider_groups/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/get.py new file mode 100644 index 0000000..8090018 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/get.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsGetOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsGetOutput: + return DashboardInstancePortalsSurfaceProviderGroupsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsGetOutput, 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/portals/surface_provider_groups/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/list.py new file mode 100644 index 0000000..981b6ad --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/list.py @@ -0,0 +1,107 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsListOutputItems: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsListOutput: + items: List[DashboardInstancePortalsSurfaceProviderGroupsListOutputItems] + pagination: DashboardInstancePortalsSurfaceProviderGroupsListOutputPagination + + +class mapDashboardInstancePortalsSurfaceProviderGroupsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsListOutputItems: + return DashboardInstancePortalsSurfaceProviderGroupsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsListOutputItems, 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 mapDashboardInstancePortalsSurfaceProviderGroupsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsListOutputPagination: + return DashboardInstancePortalsSurfaceProviderGroupsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsListOutputPagination, 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 mapDashboardInstancePortalsSurfaceProviderGroupsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsListOutput: + return DashboardInstancePortalsSurfaceProviderGroupsListOutput( + items=[mapDashboardInstancePortalsSurfaceProviderGroupsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstancePortalsSurfaceProviderGroupsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsListOutput, 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 DashboardInstancePortalsSurfaceProviderGroupsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsListQuery: + return DashboardInstancePortalsSurfaceProviderGroupsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsListQuery, 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/portals/surface_provider_groups/remove_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/remove_listing.py new file mode 100644 index 0000000..bade279 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/remove_listing.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + return DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsRemoveListingOutput, 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/portals/surface_provider_groups/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/update.py new file mode 100644 index 0000000..e91568a --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/surface_provider_groups/update.py @@ -0,0 +1,63 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput: + return DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[DashboardInstancePortalsSurfaceProviderGroupsUpdateOutput, 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 DashboardInstancePortalsSurfaceProviderGroupsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + index: Optional[float] = None + + +class mapDashboardInstancePortalsSurfaceProviderGroupsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsSurfaceProviderGroupsUpdateBody: + return DashboardInstancePortalsSurfaceProviderGroupsUpdateBody( + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsSurfaceProviderGroupsUpdateBody, 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/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/__init__.py index e94877e..c7a72d5 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/__init__.py @@ -1,6 +1,7 @@ from .access_requests import * from .auth import * from .consumer_access import * +from .consumer_access_listings import * from .consumer_groups import * from .consumer_invites import * from .consumer_profiles import * @@ -8,4 +9,5 @@ from .delete import * from .get import * from .list import * +from .surface_provider_groups 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_listings/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/__init__.py new file mode 100644 index 0000000..65eb373 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list 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_listings/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/get.py new file mode 100644 index 0000000..e7ed346 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerAccessListingsGetOutputGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerAccessListingsGetOutput: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[ManagementInstancePortalsConsumerAccessListingsGetOutputGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapManagementInstancePortalsConsumerAccessListingsGetOutputGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsGetOutputGroups: + return ManagementInstancePortalsConsumerAccessListingsGetOutputGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessListingsGetOutputGroups, 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 mapManagementInstancePortalsConsumerAccessListingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsGetOutput: + return ManagementInstancePortalsConsumerAccessListingsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapManagementInstancePortalsConsumerAccessListingsGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[ManagementInstancePortalsConsumerAccessListingsGetOutput, 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_listings/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/list.py new file mode 100644 index 0000000..14f88a1 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_access_listings/list.py @@ -0,0 +1,145 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerAccessListingsListOutputItems: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[ManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerAccessListingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstancePortalsConsumerAccessListingsListOutput: + items: List[ManagementInstancePortalsConsumerAccessListingsListOutputItems] + pagination: ManagementInstancePortalsConsumerAccessListingsListOutputPagination + + +class mapManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups: + return ManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups, 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 mapManagementInstancePortalsConsumerAccessListingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsListOutputItems: + return ManagementInstancePortalsConsumerAccessListingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapManagementInstancePortalsConsumerAccessListingsListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[ManagementInstancePortalsConsumerAccessListingsListOutputItems, 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 mapManagementInstancePortalsConsumerAccessListingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsListOutputPagination: + return ManagementInstancePortalsConsumerAccessListingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessListingsListOutputPagination, 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 mapManagementInstancePortalsConsumerAccessListingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsListOutput: + return ManagementInstancePortalsConsumerAccessListingsListOutput( + items=[mapManagementInstancePortalsConsumerAccessListingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstancePortalsConsumerAccessListingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessListingsListOutput, 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 ManagementInstancePortalsConsumerAccessListingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None + provider_template_id: Optional[Union[str, List[str]]] = None + magic_mcp_server_id: Optional[Union[str, List[str]]] = None + type: Optional[Union[str, List[str]]] = None + + +class mapManagementInstancePortalsConsumerAccessListingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerAccessListingsListQuery: + return ManagementInstancePortalsConsumerAccessListingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + consumer_surface_provider_group_id=data.get('consumer_surface_provider_group_id'), + provider_template_id=data.get('provider_template_id'), + magic_mcp_server_id=data.get('magic_mcp_server_id'), + type=data.get('type') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerAccessListingsListQuery, 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/surface_provider_groups/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/__init__.py new file mode 100644 index 0000000..7e15ea4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/__init__.py @@ -0,0 +1,7 @@ +from .add_listing import * +from .create import * +from .delete import * +from .get import * +from .list import * +from .remove_listing 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/surface_provider_groups/add_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/add_listing.py new file mode 100644 index 0000000..58bd045 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/add_listing.py @@ -0,0 +1,59 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsAddListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsAddListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsAddListingOutput: + return ManagementInstancePortalsSurfaceProviderGroupsAddListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsAddListingOutput, 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 ManagementInstancePortalsSurfaceProviderGroupsAddListingBody: + consumer_access_listing_id: str + + +class mapManagementInstancePortalsSurfaceProviderGroupsAddListingBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsAddListingBody: + return ManagementInstancePortalsSurfaceProviderGroupsAddListingBody( + consumer_access_listing_id=data.get('consumer_access_listing_id') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsAddListingBody, 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/surface_provider_groups/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/create.py new file mode 100644 index 0000000..b0dcdc4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/create.py @@ -0,0 +1,61 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsCreateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsCreateOutput: + return ManagementInstancePortalsSurfaceProviderGroupsCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsCreateOutput, 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 ManagementInstancePortalsSurfaceProviderGroupsCreateBody: + name: str + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsCreateBody: + return ManagementInstancePortalsSurfaceProviderGroupsCreateBody( + name=data.get('name'), + description=data.get('description') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsCreateBody, 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/surface_provider_groups/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/delete.py new file mode 100644 index 0000000..0677d39 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/delete.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsDeleteOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsDeleteOutput: + return ManagementInstancePortalsSurfaceProviderGroupsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsDeleteOutput, 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/surface_provider_groups/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/get.py new file mode 100644 index 0000000..7940d1c --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/get.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsGetOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsGetOutput: + return ManagementInstancePortalsSurfaceProviderGroupsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsGetOutput, 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/surface_provider_groups/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/list.py new file mode 100644 index 0000000..040ab02 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/list.py @@ -0,0 +1,107 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsListOutputItems: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsListOutput: + items: List[ManagementInstancePortalsSurfaceProviderGroupsListOutputItems] + pagination: ManagementInstancePortalsSurfaceProviderGroupsListOutputPagination + + +class mapManagementInstancePortalsSurfaceProviderGroupsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsListOutputItems: + return ManagementInstancePortalsSurfaceProviderGroupsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsListOutputItems, 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 mapManagementInstancePortalsSurfaceProviderGroupsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsListOutputPagination: + return ManagementInstancePortalsSurfaceProviderGroupsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsListOutputPagination, 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 mapManagementInstancePortalsSurfaceProviderGroupsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsListOutput: + return ManagementInstancePortalsSurfaceProviderGroupsListOutput( + items=[mapManagementInstancePortalsSurfaceProviderGroupsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstancePortalsSurfaceProviderGroupsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsListOutput, 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 ManagementInstancePortalsSurfaceProviderGroupsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsListQuery: + return ManagementInstancePortalsSurfaceProviderGroupsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsListQuery, 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/surface_provider_groups/remove_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/remove_listing.py new file mode 100644 index 0000000..f5765ef --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/remove_listing.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsRemoveListingOutput: + return ManagementInstancePortalsSurfaceProviderGroupsRemoveListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsRemoveListingOutput, 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/surface_provider_groups/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/update.py new file mode 100644 index 0000000..222d49c --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/surface_provider_groups/update.py @@ -0,0 +1,63 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsSurfaceProviderGroupsUpdateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsUpdateOutput: + return ManagementInstancePortalsSurfaceProviderGroupsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ManagementInstancePortalsSurfaceProviderGroupsUpdateOutput, 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 ManagementInstancePortalsSurfaceProviderGroupsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + index: Optional[float] = None + + +class mapManagementInstancePortalsSurfaceProviderGroupsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsSurfaceProviderGroupsUpdateBody: + return ManagementInstancePortalsSurfaceProviderGroupsUpdateBody( + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsSurfaceProviderGroupsUpdateBody, 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/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/__init__.py index e94877e..c7a72d5 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/__init__.py @@ -1,6 +1,7 @@ from .access_requests import * from .auth import * from .consumer_access import * +from .consumer_access_listings import * from .consumer_groups import * from .consumer_invites import * from .consumer_profiles import * @@ -8,4 +9,5 @@ from .delete import * from .get import * from .list import * +from .surface_provider_groups 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_listings/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/__init__.py new file mode 100644 index 0000000..65eb373 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/get.py new file mode 100644 index 0000000..496ad97 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerAccessListingsGetOutputGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class PortalsConsumerAccessListingsGetOutput: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[PortalsConsumerAccessListingsGetOutputGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None + + +class mapPortalsConsumerAccessListingsGetOutputGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsGetOutputGroups: + return PortalsConsumerAccessListingsGetOutputGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessListingsGetOutputGroups, 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 mapPortalsConsumerAccessListingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsGetOutput: + return PortalsConsumerAccessListingsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapPortalsConsumerAccessListingsGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[PortalsConsumerAccessListingsGetOutput, 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_listings/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/list.py new file mode 100644 index 0000000..b7d69b7 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_access_listings/list.py @@ -0,0 +1,145 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerAccessListingsListOutputItemsGroups: + id: str + name: str + index: float + description: Optional[str] = None +@dataclass +class PortalsConsumerAccessListingsListOutputItems: + object: str + id: str + name: str + access: Dict[str, Any] + groups: List[PortalsConsumerAccessListingsListOutputItemsGroups] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + readme: Optional[str] = None +@dataclass +class PortalsConsumerAccessListingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class PortalsConsumerAccessListingsListOutput: + items: List[PortalsConsumerAccessListingsListOutputItems] + pagination: PortalsConsumerAccessListingsListOutputPagination + + +class mapPortalsConsumerAccessListingsListOutputItemsGroups: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsListOutputItemsGroups: + return PortalsConsumerAccessListingsListOutputItemsGroups( + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessListingsListOutputItemsGroups, 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 mapPortalsConsumerAccessListingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsListOutputItems: + return PortalsConsumerAccessListingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + readme=data.get('readme'), + access=data.get('access'), + groups=[mapPortalsConsumerAccessListingsListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], + 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[PortalsConsumerAccessListingsListOutputItems, 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 mapPortalsConsumerAccessListingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsListOutputPagination: + return PortalsConsumerAccessListingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessListingsListOutputPagination, 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 mapPortalsConsumerAccessListingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsListOutput: + return PortalsConsumerAccessListingsListOutput( + items=[mapPortalsConsumerAccessListingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapPortalsConsumerAccessListingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessListingsListOutput, 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 PortalsConsumerAccessListingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + consumer_surface_provider_group_id: Optional[Union[str, List[str]]] = None + provider_template_id: Optional[Union[str, List[str]]] = None + magic_mcp_server_id: Optional[Union[str, List[str]]] = None + type: Optional[Union[str, List[str]]] = None + + +class mapPortalsConsumerAccessListingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerAccessListingsListQuery: + return PortalsConsumerAccessListingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + consumer_surface_provider_group_id=data.get('consumer_surface_provider_group_id'), + provider_template_id=data.get('provider_template_id'), + magic_mcp_server_id=data.get('magic_mcp_server_id'), + type=data.get('type') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerAccessListingsListQuery, 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/surface_provider_groups/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/__init__.py new file mode 100644 index 0000000..7e15ea4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/__init__.py @@ -0,0 +1,7 @@ +from .add_listing import * +from .create import * +from .delete import * +from .get import * +from .list import * +from .remove_listing import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/add_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/add_listing.py new file mode 100644 index 0000000..b5aff47 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/add_listing.py @@ -0,0 +1,59 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsAddListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsAddListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsAddListingOutput: + return PortalsSurfaceProviderGroupsAddListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsAddListingOutput, 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 PortalsSurfaceProviderGroupsAddListingBody: + consumer_access_listing_id: str + + +class mapPortalsSurfaceProviderGroupsAddListingBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsAddListingBody: + return PortalsSurfaceProviderGroupsAddListingBody( + consumer_access_listing_id=data.get('consumer_access_listing_id') + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsAddListingBody, 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/surface_provider_groups/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/create.py new file mode 100644 index 0000000..bca840a --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/create.py @@ -0,0 +1,61 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsCreateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsCreateOutput: + return PortalsSurfaceProviderGroupsCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsCreateOutput, 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 PortalsSurfaceProviderGroupsCreateBody: + name: str + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsCreateBody: + return PortalsSurfaceProviderGroupsCreateBody( + name=data.get('name'), + description=data.get('description') + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsCreateBody, 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/surface_provider_groups/delete.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/delete.py new file mode 100644 index 0000000..f24897f --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/delete.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsDeleteOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsDeleteOutput: + return PortalsSurfaceProviderGroupsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsDeleteOutput, 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/surface_provider_groups/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/get.py new file mode 100644 index 0000000..12f0d14 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/get.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsGetOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsGetOutput: + return PortalsSurfaceProviderGroupsGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsGetOutput, 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/surface_provider_groups/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/list.py new file mode 100644 index 0000000..eea3e85 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/list.py @@ -0,0 +1,107 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsListOutputItems: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class PortalsSurfaceProviderGroupsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class PortalsSurfaceProviderGroupsListOutput: + items: List[PortalsSurfaceProviderGroupsListOutputItems] + pagination: PortalsSurfaceProviderGroupsListOutputPagination + + +class mapPortalsSurfaceProviderGroupsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsListOutputItems: + return PortalsSurfaceProviderGroupsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsListOutputItems, 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 mapPortalsSurfaceProviderGroupsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsListOutputPagination: + return PortalsSurfaceProviderGroupsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsListOutputPagination, 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 mapPortalsSurfaceProviderGroupsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsListOutput: + return PortalsSurfaceProviderGroupsListOutput( + items=[mapPortalsSurfaceProviderGroupsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapPortalsSurfaceProviderGroupsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsListOutput, 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 PortalsSurfaceProviderGroupsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsListQuery: + return PortalsSurfaceProviderGroupsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order') + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsListQuery, 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/surface_provider_groups/remove_listing.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/remove_listing.py new file mode 100644 index 0000000..23fa38f --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/remove_listing.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsRemoveListingOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsRemoveListingOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsRemoveListingOutput: + return PortalsSurfaceProviderGroupsRemoveListingOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsRemoveListingOutput, 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/surface_provider_groups/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/update.py new file mode 100644 index 0000000..d8b6655 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/surface_provider_groups/update.py @@ -0,0 +1,63 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsSurfaceProviderGroupsUpdateOutput: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None + + +class mapPortalsSurfaceProviderGroupsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsUpdateOutput: + return PortalsSurfaceProviderGroupsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[PortalsSurfaceProviderGroupsUpdateOutput, 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 PortalsSurfaceProviderGroupsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + index: Optional[float] = None + + +class mapPortalsSurfaceProviderGroupsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsSurfaceProviderGroupsUpdateBody: + return PortalsSurfaceProviderGroupsUpdateBody( + name=data.get('name'), + description=data.get('description'), + index=data.get('index') + ) + + @staticmethod + def to_dict(value: Union[PortalsSurfaceProviderGroupsUpdateBody, 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 51c08ad..e028cfa 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 @@ -19,6 +19,8 @@ # ConsumerProvidersDeployOutput # ConsumerProvidersGetOutput # ConsumerProvidersGetSetupOutput +# ConsumerProvidersGroupsListOutput +# ConsumerProvidersGroupsListQuery # ConsumerProvidersListOutput # ConsumerProvidersListQuery # ConsumerProvidersRequestAccessBody @@ -415,6 +417,8 @@ # mapConsumerProvidersDeployOutput # mapConsumerProvidersGetOutput # mapConsumerProvidersGetSetupOutput +# mapConsumerProvidersGroupsListOutput +# mapConsumerProvidersGroupsListQuery # mapConsumerProvidersListOutput # mapConsumerProvidersListQuery # mapConsumerProvidersRequestAccessBody diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py index 7027ccc..d34855f 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py @@ -8,6 +8,7 @@ from .consumer_profile import * from .consumer_profile_groups import * from .consumer_providers import * +from .consumer_providers_groups import * from .consumer_session import * from .consumer_surfaces import * from .consumers import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers.py index 4a76a9a..1ddc0a1 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers.py @@ -8,7 +8,7 @@ class MetorialConsumerProvidersEndpoint(BaseMetorialEndpoint): def __init__(self, config: MetorialEndpointManager): super().__init__(config) - def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, search: Optional[str] = None) -> ConsumerProvidersListOutput: + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, search: Optional[str] = None, provider_group_id: Optional[str] = None) -> ConsumerProvidersListOutput: """ List consumer providers Returns the unified portal catalog with consumer availability. @@ -19,6 +19,7 @@ def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, be :param cursor: Optional[str] (optional) :param order: Optional[str] (optional) :param search: Optional[str] (optional) + :param provider_group_id: Optional[str] (optional) :return: ConsumerProvidersListOutput """ # Build query parameters from keyword arguments @@ -35,6 +36,8 @@ def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, be query_dict["order"] = order if search is not None: query_dict["search"] = search + if provider_group_id is not None: + query_dict["provider_group_id"] = provider_group_id request = MetorialRequest( path=['consumer', 'providers'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers_groups.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers_groups.py new file mode 100644 index 0000000..88f6379 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumer_providers_groups.py @@ -0,0 +1,40 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapConsumerProvidersGroupsListOutput, ConsumerProvidersGroupsListOutput, mapConsumerProvidersGroupsListQuery, ConsumerProvidersGroupsListQuery + +class MetorialConsumerProvidersGroupsEndpoint(BaseMetorialEndpoint): + """Browse and configure portal providers from the consumer side.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> ConsumerProvidersGroupsListOutput: + """ + List consumer provider groups + Returns the ordered provider groups for the current consumer surface. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :return: ConsumerProvidersGroupsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + + request = MetorialRequest( + path=['consumer', 'providers', 'groups'], + query=query_dict + ) + return self._get(request).transform(mapConsumerProvidersGroupsListOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/accept.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/accept.py index e321ec6..6a6e949 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/accept.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/accept.py @@ -11,9 +11,10 @@ class ConsumerConsumerInternalOauthAuthorizationsAcceptOutputOauthClient: client_id: str redirect_uris: List[str] token_endpoint_auth_method: str - portal_id: str + consumer_surface_id: str created_at: datetime expires_at: datetime + portal_id: Optional[str] = None magic_mcp_server_id: Optional[str] = None magic_mcp_endpoint_id: Optional[str] = None @dataclass @@ -44,6 +45,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerConsumerInternalOauthAuthorizatio redirect_uris=data.get('redirect_uris', []), token_endpoint_auth_method=data.get('token_endpoint_auth_method'), portal_id=data.get('portal_id'), + consumer_surface_id=data.get('consumer_surface_id'), magic_mcp_server_id=data.get('magic_mcp_server_id'), magic_mcp_endpoint_id=data.get('magic_mcp_endpoint_id'), 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_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/connect_magic_mcp_endpoint.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/connect_magic_mcp_endpoint.py index d07b5a2..c4b943c 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/connect_magic_mcp_endpoint.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/connect_magic_mcp_endpoint.py @@ -11,9 +11,10 @@ class ConsumerConsumerInternalOauthAuthorizationsConnectMagicMcpEndpointOutputOa client_id: str redirect_uris: List[str] token_endpoint_auth_method: str - portal_id: str + consumer_surface_id: str created_at: datetime expires_at: datetime + portal_id: Optional[str] = None magic_mcp_server_id: Optional[str] = None magic_mcp_endpoint_id: Optional[str] = None @dataclass @@ -44,6 +45,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerConsumerInternalOauthAuthorizatio redirect_uris=data.get('redirect_uris', []), token_endpoint_auth_method=data.get('token_endpoint_auth_method'), portal_id=data.get('portal_id'), + consumer_surface_id=data.get('consumer_surface_id'), magic_mcp_server_id=data.get('magic_mcp_server_id'), magic_mcp_endpoint_id=data.get('magic_mcp_endpoint_id'), 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_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/get.py index 1b9552a..9da96b8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/get.py @@ -11,9 +11,10 @@ class ConsumerConsumerInternalOauthAuthorizationsGetOutputOauthClient: client_id: str redirect_uris: List[str] token_endpoint_auth_method: str - portal_id: str + consumer_surface_id: str created_at: datetime expires_at: datetime + portal_id: Optional[str] = None magic_mcp_server_id: Optional[str] = None magic_mcp_endpoint_id: Optional[str] = None @dataclass @@ -44,6 +45,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerConsumerInternalOauthAuthorizatio redirect_uris=data.get('redirect_uris', []), token_endpoint_auth_method=data.get('token_endpoint_auth_method'), portal_id=data.get('portal_id'), + consumer_surface_id=data.get('consumer_surface_id'), magic_mcp_server_id=data.get('magic_mcp_server_id'), magic_mcp_endpoint_id=data.get('magic_mcp_endpoint_id'), 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_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/reject.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/reject.py index e6d37a3..9f116ab 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/reject.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/authorizations/reject.py @@ -11,9 +11,10 @@ class ConsumerConsumerInternalOauthAuthorizationsRejectOutputOauthClient: client_id: str redirect_uris: List[str] token_endpoint_auth_method: str - portal_id: str + consumer_surface_id: str created_at: datetime expires_at: datetime + portal_id: Optional[str] = None magic_mcp_server_id: Optional[str] = None magic_mcp_endpoint_id: Optional[str] = None @dataclass @@ -44,6 +45,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerConsumerInternalOauthAuthorizatio redirect_uris=data.get('redirect_uris', []), token_endpoint_auth_method=data.get('token_endpoint_auth_method'), portal_id=data.get('portal_id'), + consumer_surface_id=data.get('consumer_surface_id'), magic_mcp_server_id=data.get('magic_mcp_server_id'), magic_mcp_endpoint_id=data.get('magic_mcp_endpoint_id'), 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_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/clients/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/clients/get.py index edc908d..437bef8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/clients/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/consumer_internal/oauth/clients/get.py @@ -11,9 +11,10 @@ class ConsumerConsumerInternalOauthClientsGetOutput: client_id: str redirect_uris: List[str] token_endpoint_auth_method: str - portal_id: str + consumer_surface_id: str created_at: datetime expires_at: datetime + portal_id: Optional[str] = None magic_mcp_server_id: Optional[str] = None magic_mcp_endpoint_id: Optional[str] = None @@ -29,6 +30,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerConsumerInternalOauthClientsGetOu redirect_uris=data.get('redirect_uris', []), token_endpoint_auth_method=data.get('token_endpoint_auth_method'), portal_id=data.get('portal_id'), + consumer_surface_id=data.get('consumer_surface_id'), magic_mcp_server_id=data.get('magic_mcp_server_id'), magic_mcp_endpoint_id=data.get('magic_mcp_endpoint_id'), 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_2026_01_01_magnetar/resources/consumer/providers/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/__init__.py index ba60ed4..ecedc40 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/__init__.py @@ -1,6 +1,7 @@ from .deploy import * from .get import * from .get_setup import * +from .groups import * from .list import * from .request_access import * from .setup import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/__init__.py new file mode 100644 index 0000000..7f803db --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/__init__.py @@ -0,0 +1 @@ +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/list.py new file mode 100644 index 0000000..7ceebe4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/groups/list.py @@ -0,0 +1,107 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ConsumerProvidersGroupsListOutputItems: + object: str + id: str + name: str + index: float + created_at: datetime + updated_at: datetime + description: Optional[str] = None +@dataclass +class ConsumerProvidersGroupsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ConsumerProvidersGroupsListOutput: + items: List[ConsumerProvidersGroupsListOutputItems] + pagination: ConsumerProvidersGroupsListOutputPagination + + +class mapConsumerProvidersGroupsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ConsumerProvidersGroupsListOutputItems: + return ConsumerProvidersGroupsListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + index=data.get('index'), + 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[ConsumerProvidersGroupsListOutputItems, 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 mapConsumerProvidersGroupsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ConsumerProvidersGroupsListOutputPagination: + return ConsumerProvidersGroupsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ConsumerProvidersGroupsListOutputPagination, 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 mapConsumerProvidersGroupsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ConsumerProvidersGroupsListOutput: + return ConsumerProvidersGroupsListOutput( + items=[mapConsumerProvidersGroupsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapConsumerProvidersGroupsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ConsumerProvidersGroupsListOutput, 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 ConsumerProvidersGroupsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + + +class mapConsumerProvidersGroupsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ConsumerProvidersGroupsListQuery: + return ConsumerProvidersGroupsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order') + ) + + @staticmethod + def to_dict(value: Union[ConsumerProvidersGroupsListQuery, 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/consumer/providers/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/list.py index e9f39ca..32b80c2 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/providers/list.py @@ -54,6 +54,7 @@ class ConsumerProvidersListQuery: cursor: Optional[str] = None order: Optional[str] = None search: Optional[str] = None + provider_group_id: Optional[str] = None class mapConsumerProvidersListQuery: @@ -65,7 +66,8 @@ def from_dict(data: Dict[str, Any]) -> ConsumerProvidersListQuery: before=data.get('before'), cursor=data.get('cursor'), order=data.get('order'), - search=data.get('search') + search=data.get('search'), + provider_group_id=data.get('provider_group_id') ) @staticmethod