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 4e8103d6..48bb3c77 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 @@ -195,6 +195,8 @@ # DashboardInstancePortalsAccessRequestsUpdateBody # DashboardInstancePortalsAccessRequestsUpdateOutput # DashboardInstancePortalsAuthAppGetOutput +# DashboardInstancePortalsAuthAppUpdateBody +# DashboardInstancePortalsAuthAppUpdateOutput # DashboardInstancePortalsAuthSsoTenantsConnectionsListOutput # DashboardInstancePortalsAuthSsoTenantsConnectionsListQuery # DashboardInstancePortalsAuthSsoTenantsCreateBody @@ -216,6 +218,11 @@ # DashboardInstancePortalsConsumerGroupsListQuery # DashboardInstancePortalsConsumerGroupsUpdateBody # DashboardInstancePortalsConsumerGroupsUpdateOutput +# DashboardInstancePortalsConsumerInvitesCreateBody +# DashboardInstancePortalsConsumerInvitesCreateOutput +# DashboardInstancePortalsConsumerInvitesGetOutput +# DashboardInstancePortalsConsumerInvitesListOutput +# DashboardInstancePortalsConsumerInvitesListQuery # DashboardInstancePortalsConsumerProfilesAssignGroupsBody # DashboardInstancePortalsConsumerProfilesAssignGroupsOutput # DashboardInstancePortalsConsumerProfilesGetOutput @@ -768,6 +775,8 @@ # mapDashboardInstancePortalsAccessRequestsUpdateBody # mapDashboardInstancePortalsAccessRequestsUpdateOutput # mapDashboardInstancePortalsAuthAppGetOutput +# mapDashboardInstancePortalsAuthAppUpdateBody +# mapDashboardInstancePortalsAuthAppUpdateOutput # mapDashboardInstancePortalsAuthSsoTenantsConnectionsListOutput # mapDashboardInstancePortalsAuthSsoTenantsConnectionsListQuery # mapDashboardInstancePortalsAuthSsoTenantsCreateBody @@ -789,6 +798,11 @@ # mapDashboardInstancePortalsConsumerGroupsListQuery # mapDashboardInstancePortalsConsumerGroupsUpdateBody # mapDashboardInstancePortalsConsumerGroupsUpdateOutput +# mapDashboardInstancePortalsConsumerInvitesCreateBody +# mapDashboardInstancePortalsConsumerInvitesCreateOutput +# mapDashboardInstancePortalsConsumerInvitesGetOutput +# mapDashboardInstancePortalsConsumerInvitesListOutput +# mapDashboardInstancePortalsConsumerInvitesListQuery # mapDashboardInstancePortalsConsumerProfilesAssignGroupsBody # mapDashboardInstancePortalsConsumerProfilesAssignGroupsOutput # mapDashboardInstancePortalsConsumerProfilesGetOutput 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 f5c161f0..34ee0cb5 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 @@ -48,6 +48,7 @@ from .dashboard_instance_portals_auth_sso_tenants_connections import * from .dashboard_instance_portals_consumer_access 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_provider_categories import * from .dashboard_instance_provider_collections import * @@ -162,6 +163,7 @@ from .management_instance_portals_auth_sso_tenants_connections import * from .management_instance_portals_consumer_access 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_provider_categories import * from .management_instance_provider_collections import * @@ -234,6 +236,7 @@ from .portals_auth_sso_tenants_connections import * from .portals_consumer_access import * from .portals_consumer_groups import * +from .portals_consumer_invites import * from .portals_consumer_profiles import * from .provider_categories import * from .provider_collections import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_auth_app.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_auth_app.py index ad0e64ab..efd5d48c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_auth_app.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_auth_app.py @@ -1,5 +1,6 @@ +from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput +from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput, mapDashboardInstancePortalsAuthAppUpdateOutput, DashboardInstancePortalsAuthAppUpdateOutput, mapDashboardInstancePortalsAuthAppUpdateBody, DashboardInstancePortalsAuthAppUpdateBody class MetorialDashboardInstancePortalsAuthAppEndpoint(BaseMetorialEndpoint): """Manage the Ares-backed authentication configuration for a portal.""" @@ -19,4 +20,25 @@ def get(self, instance_id: str, portal_id: str) -> DashboardInstancePortalsAuthA request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'auth', 'app'] ) - return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) + + def update(self, instance_id: str, portal_id: str, *, email_whitelist: Optional[List[str]] = None) -> DashboardInstancePortalsAuthAppUpdateOutput: + """ + Update portal auth app + Updates the portal auth app configuration stored on the portal surface. + + :param instance_id: str + :param portal_id: str + :param email_whitelist: Optional[List[str]] (optional) + :return: DashboardInstancePortalsAuthAppUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if email_whitelist is not None: + body_dict["email_whitelist"] = email_whitelist + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'auth', 'app'], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsAuthAppUpdateOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_invites.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_invites.py new file mode 100644 index 00000000..89905812 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_invites.py @@ -0,0 +1,88 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerInvitesListOutput, DashboardInstancePortalsConsumerInvitesListOutput, mapDashboardInstancePortalsConsumerInvitesListQuery, DashboardInstancePortalsConsumerInvitesListQuery, mapDashboardInstancePortalsConsumerInvitesCreateOutput, DashboardInstancePortalsConsumerInvitesCreateOutput, mapDashboardInstancePortalsConsumerInvitesCreateBody, DashboardInstancePortalsConsumerInvitesCreateBody, mapDashboardInstancePortalsConsumerInvitesGetOutput, DashboardInstancePortalsConsumerInvitesGetOutput + +class MetorialDashboardInstancePortalsConsumerInvitesEndpoint(BaseMetorialEndpoint): + """List and inspect consumer invites for a portal.""" + + 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, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerInvitesListOutput: + """ + List portal consumer invites + Returns a paginated list of invites 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 status: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerInvitesListOutput + """ + # 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 status is not None: + query_dict["status"] = status + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'invites'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesListOutput.from_dict) + + def create(self, instance_id: str, portal_id: str, *, name: str, email: str, message: Optional[str] = None) -> DashboardInstancePortalsConsumerInvitesCreateOutput: + """ + Create portal consumer invite + Invites a consumer to a portal. + + :param instance_id: str + :param portal_id: str + :param name: str + :param email: str + :param message: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerInvitesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + body_dict["email"] = email + if message is not None: + body_dict["message"] = message + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'invites'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsConsumerInvitesCreateOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_invite_id: str) -> DashboardInstancePortalsConsumerInvitesGetOutput: + """ + Get portal consumer invite + Retrieves a portal consumer invite by ID. + + :param instance_id: str + :param portal_id: str + :param consumer_invite_id: str + :return: DashboardInstancePortalsConsumerInvitesGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'invites', consumer_invite_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_profiles.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_profiles.py index e267ab71..c91095a8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_profiles.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_portals_consumer_profiles.py @@ -8,7 +8,7 @@ class MetorialDashboardInstancePortalsConsumerProfilesEndpoint(BaseMetorialEndpo 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_group_id: Optional[str] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: + 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_group_id: Optional[str] = None, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: """ List portal consumer profiles Returns a paginated list of consumer profiles for a portal. @@ -22,6 +22,7 @@ def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = Non :param order: Optional[str] (optional) :param search: Optional[str] (optional) :param consumer_group_id: Optional[str] (optional) + :param status: Optional[Union[str, List[str]]] (optional) :return: DashboardInstancePortalsConsumerProfilesListOutput """ # Build query parameters from keyword arguments @@ -40,6 +41,8 @@ def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = Non query_dict["search"] = search if consumer_group_id is not None: query_dict["consumer_group_id"] = consumer_group_id + if status is not None: + query_dict["status"] = status request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'portals', portal_id, 'consumer-profile'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_auth_app.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_auth_app.py index b33da18b..d3c1acf6 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_auth_app.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_auth_app.py @@ -1,5 +1,6 @@ +from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput +from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput, mapDashboardInstancePortalsAuthAppUpdateOutput, DashboardInstancePortalsAuthAppUpdateOutput, mapDashboardInstancePortalsAuthAppUpdateBody, DashboardInstancePortalsAuthAppUpdateBody class MetorialManagementInstancePortalsAuthAppEndpoint(BaseMetorialEndpoint): """Manage the Ares-backed authentication configuration for a portal.""" @@ -19,4 +20,25 @@ def get(self, instance_id: str, portal_id: str) -> DashboardInstancePortalsAuthA request = MetorialRequest( path=['instances', instance_id, 'portals', portal_id, 'auth', 'app'] ) - return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) + + def update(self, instance_id: str, portal_id: str, *, email_whitelist: Optional[List[str]] = None) -> DashboardInstancePortalsAuthAppUpdateOutput: + """ + Update portal auth app + Updates the portal auth app configuration stored on the portal surface. + + :param instance_id: str + :param portal_id: str + :param email_whitelist: Optional[List[str]] (optional) + :return: DashboardInstancePortalsAuthAppUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if email_whitelist is not None: + body_dict["email_whitelist"] = email_whitelist + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'auth', 'app'], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsAuthAppUpdateOutput.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_invites.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_invites.py new file mode 100644 index 00000000..61547b94 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_invites.py @@ -0,0 +1,88 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerInvitesListOutput, DashboardInstancePortalsConsumerInvitesListOutput, mapDashboardInstancePortalsConsumerInvitesListQuery, DashboardInstancePortalsConsumerInvitesListQuery, mapDashboardInstancePortalsConsumerInvitesCreateOutput, DashboardInstancePortalsConsumerInvitesCreateOutput, mapDashboardInstancePortalsConsumerInvitesCreateBody, DashboardInstancePortalsConsumerInvitesCreateBody, mapDashboardInstancePortalsConsumerInvitesGetOutput, DashboardInstancePortalsConsumerInvitesGetOutput + +class MetorialManagementInstancePortalsConsumerInvitesEndpoint(BaseMetorialEndpoint): + """List and inspect consumer invites for a portal.""" + + 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, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerInvitesListOutput: + """ + List portal consumer invites + Returns a paginated list of invites 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 status: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerInvitesListOutput + """ + # 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 status is not None: + query_dict["status"] = status + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'invites'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesListOutput.from_dict) + + def create(self, instance_id: str, portal_id: str, *, name: str, email: str, message: Optional[str] = None) -> DashboardInstancePortalsConsumerInvitesCreateOutput: + """ + Create portal consumer invite + Invites a consumer to a portal. + + :param instance_id: str + :param portal_id: str + :param name: str + :param email: str + :param message: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerInvitesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + body_dict["email"] = email + if message is not None: + body_dict["message"] = message + + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'invites'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsConsumerInvitesCreateOutput.from_dict) + + def get(self, instance_id: str, portal_id: str, consumer_invite_id: str) -> DashboardInstancePortalsConsumerInvitesGetOutput: + """ + Get portal consumer invite + Retrieves a portal consumer invite by ID. + + :param instance_id: str + :param portal_id: str + :param consumer_invite_id: str + :return: DashboardInstancePortalsConsumerInvitesGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'portals', portal_id, 'invites', consumer_invite_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesGetOutput.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_profiles.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_profiles.py index 21ead45e..7c1cc2ed 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_profiles.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_portals_consumer_profiles.py @@ -8,7 +8,7 @@ class MetorialManagementInstancePortalsConsumerProfilesEndpoint(BaseMetorialEndp 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_group_id: Optional[str] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: + 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_group_id: Optional[str] = None, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: """ List portal consumer profiles Returns a paginated list of consumer profiles for a portal. @@ -22,6 +22,7 @@ def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = Non :param order: Optional[str] (optional) :param search: Optional[str] (optional) :param consumer_group_id: Optional[str] (optional) + :param status: Optional[Union[str, List[str]]] (optional) :return: DashboardInstancePortalsConsumerProfilesListOutput """ # Build query parameters from keyword arguments @@ -40,6 +41,8 @@ def list(self, instance_id: str, portal_id: str, *, limit: Optional[float] = Non query_dict["search"] = search if consumer_group_id is not None: query_dict["consumer_group_id"] = consumer_group_id + if status is not None: + query_dict["status"] = status request = MetorialRequest( path=['instances', instance_id, 'portals', portal_id, 'consumer-profile'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_auth_app.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_auth_app.py index d3f7c268..6c1f9a73 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_auth_app.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_auth_app.py @@ -1,5 +1,6 @@ +from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput +from ..resources import mapDashboardInstancePortalsAuthAppGetOutput, DashboardInstancePortalsAuthAppGetOutput, mapDashboardInstancePortalsAuthAppUpdateOutput, DashboardInstancePortalsAuthAppUpdateOutput, mapDashboardInstancePortalsAuthAppUpdateBody, DashboardInstancePortalsAuthAppUpdateBody class MetorialPortalsAuthAppEndpoint(BaseMetorialEndpoint): """Manage the Ares-backed authentication configuration for a portal.""" @@ -18,4 +19,24 @@ def get(self, portal_id: str) -> DashboardInstancePortalsAuthAppGetOutput: request = MetorialRequest( path=['portals', portal_id, 'auth', 'app'] ) - return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstancePortalsAuthAppGetOutput.from_dict) + + def update(self, portal_id: str, *, email_whitelist: Optional[List[str]] = None) -> DashboardInstancePortalsAuthAppUpdateOutput: + """ + Update portal auth app + Updates the portal auth app configuration stored on the portal surface. + + :param portal_id: str + :param email_whitelist: Optional[List[str]] (optional) + :return: DashboardInstancePortalsAuthAppUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if email_whitelist is not None: + body_dict["email_whitelist"] = email_whitelist + + request = MetorialRequest( + path=['portals', portal_id, 'auth', 'app'], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstancePortalsAuthAppUpdateOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_invites.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_invites.py new file mode 100644 index 00000000..5fe08837 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_invites.py @@ -0,0 +1,85 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstancePortalsConsumerInvitesListOutput, DashboardInstancePortalsConsumerInvitesListOutput, mapDashboardInstancePortalsConsumerInvitesListQuery, DashboardInstancePortalsConsumerInvitesListQuery, mapDashboardInstancePortalsConsumerInvitesCreateOutput, DashboardInstancePortalsConsumerInvitesCreateOutput, mapDashboardInstancePortalsConsumerInvitesCreateBody, DashboardInstancePortalsConsumerInvitesCreateBody, mapDashboardInstancePortalsConsumerInvitesGetOutput, DashboardInstancePortalsConsumerInvitesGetOutput + +class MetorialPortalsConsumerInvitesEndpoint(BaseMetorialEndpoint): + """List and inspect consumer invites for a portal.""" + + 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, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerInvitesListOutput: + """ + List portal consumer invites + Returns a paginated list of invites 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 status: Optional[Union[str, List[str]]] (optional) + :return: DashboardInstancePortalsConsumerInvitesListOutput + """ + # 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 status is not None: + query_dict["status"] = status + + request = MetorialRequest( + path=['portals', portal_id, 'invites'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesListOutput.from_dict) + + def create(self, portal_id: str, *, name: str, email: str, message: Optional[str] = None) -> DashboardInstancePortalsConsumerInvitesCreateOutput: + """ + Create portal consumer invite + Invites a consumer to a portal. + + :param portal_id: str + :param name: str + :param email: str + :param message: Optional[str] (optional) + :return: DashboardInstancePortalsConsumerInvitesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + body_dict["email"] = email + if message is not None: + body_dict["message"] = message + + request = MetorialRequest( + path=['portals', portal_id, 'invites'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstancePortalsConsumerInvitesCreateOutput.from_dict) + + def get(self, portal_id: str, consumer_invite_id: str) -> DashboardInstancePortalsConsumerInvitesGetOutput: + """ + Get portal consumer invite + Retrieves a portal consumer invite by ID. + + :param portal_id: str + :param consumer_invite_id: str + :return: DashboardInstancePortalsConsumerInvitesGetOutput + """ + request = MetorialRequest( + path=['portals', portal_id, 'invites', consumer_invite_id] + ) + return self._get(request).transform(mapDashboardInstancePortalsConsumerInvitesGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_profiles.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_profiles.py index 83f03439..64f8b396 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_profiles.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/portals_consumer_profiles.py @@ -8,7 +8,7 @@ class MetorialPortalsConsumerProfilesEndpoint(BaseMetorialEndpoint): 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_group_id: Optional[str] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: + 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_group_id: Optional[str] = None, status: Optional[Union[str, List[str]]] = None) -> DashboardInstancePortalsConsumerProfilesListOutput: """ List portal consumer profiles Returns a paginated list of consumer profiles for a portal. @@ -21,6 +21,7 @@ def list(self, portal_id: str, *, limit: Optional[float] = None, after: Optional :param order: Optional[str] (optional) :param search: Optional[str] (optional) :param consumer_group_id: Optional[str] (optional) + :param status: Optional[Union[str, List[str]]] (optional) :return: DashboardInstancePortalsConsumerProfilesListOutput """ # Build query parameters from keyword arguments @@ -39,6 +40,8 @@ def list(self, portal_id: str, *, limit: Optional[float] = None, after: Optional query_dict["search"] = search if consumer_group_id is not None: query_dict["consumer_group_id"] = consumer_group_id + if status is not None: + query_dict["status"] = status request = MetorialRequest( path=['portals', portal_id, 'consumer-profile'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/get.py index 85ff061e..70106c3f 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class ConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> ConsumerSurfacesGetOutputAuth: return ConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/list.py index 226bb03b..1da1deba 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class ConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> ConsumerSurfacesListOutputItemsAuth: return ConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/get_member_consumer.py index 1f0abce6..230f1ab1 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class ConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/profiles/get.py index 1205517f..7806ca75 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/consumers/profiles/get.py @@ -23,6 +23,7 @@ class ConsumersProfilesGetOutputGroups: class ConsumersProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ConsumersProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class ConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: ConsumersProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumersProfilesGetOutput: image_url=data.get('image_url'), groups=[mapConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapConsumersProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/get.py index fd9f0421..e8f3bc60 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class DashboardInstanceConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstanceConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapDashboardInstanceConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumerSurfacesGetOutputAuth: return DashboardInstanceConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/list.py index 69728c5a..a11532dc 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class DashboardInstanceConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstanceConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapDashboardInstanceConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumerSurfacesListOutputItemsAuth: return DashboardInstanceConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/get_member_consumer.py index 3c24fa1b..69b0b72b 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class DashboardInstanceConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[DashboardInstanceConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/profiles/get.py index 9d7afca7..867628fb 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/consumers/profiles/get.py @@ -23,6 +23,7 @@ class DashboardInstanceConsumersProfilesGetOutputGroups: class DashboardInstanceConsumersProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstanceConsumersProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class DashboardInstanceConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: DashboardInstanceConsumersProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumersProfilesGetOutp image_url=data.get('image_url'), groups=[mapDashboardInstanceConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapDashboardInstanceConsumersProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None 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 15d5c5c2..e94877e0 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 @@ -2,6 +2,7 @@ from .auth import * from .consumer_access import * from .consumer_groups import * +from .consumer_invites import * from .consumer_profiles import * from .create import * from .delete import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/__init__.py index a89fc345..7ce85e04 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/__init__.py @@ -1 +1,2 @@ -from .get import * \ No newline at end of file +from .get 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/auth/app/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/get.py index 08ab1cf2..cdac1611 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/get.py @@ -10,6 +10,7 @@ class DashboardInstancePortalsAuthAppGetOutput: client_id: str default_redirect_url: str redirect_domains: List[str] + email_whitelist: List[str] created_at: datetime updated_at: datetime slug: Optional[str] = None @@ -25,6 +26,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsAuthAppGetOutput: slug=data.get('slug'), default_redirect_url=data.get('default_redirect_url'), redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/update.py new file mode 100644 index 00000000..46f3cf0d --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/auth/app/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 DashboardInstancePortalsAuthAppUpdateOutput: + object: str + id: str + client_id: str + default_redirect_url: str + redirect_domains: List[str] + email_whitelist: List[str] + created_at: datetime + updated_at: datetime + slug: Optional[str] = None + + +class mapDashboardInstancePortalsAuthAppUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsAuthAppUpdateOutput: + return DashboardInstancePortalsAuthAppUpdateOutput( + object=data.get('object'), + id=data.get('id'), + client_id=data.get('client_id'), + slug=data.get('slug'), + default_redirect_url=data.get('default_redirect_url'), + redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), + 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[DashboardInstancePortalsAuthAppUpdateOutput, 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 DashboardInstancePortalsAuthAppUpdateBody: + email_whitelist: Optional[List[str]] = None + + +class mapDashboardInstancePortalsAuthAppUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsAuthAppUpdateBody: + return DashboardInstancePortalsAuthAppUpdateBody( + email_whitelist=data.get('email_whitelist', []) + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsAuthAppUpdateBody, 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_invites/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/__init__.py new file mode 100644 index 00000000..f8b85669 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/__init__.py @@ -0,0 +1,3 @@ +from .create import * +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_invites/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/create.py new file mode 100644 index 00000000..6eb555fe --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class DashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerInvitesCreateOutput: + object: str + id: str + status: str + consumer_profile: DashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile + invited_by: DashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapDashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + return DashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile, 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 mapDashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy: + return DashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy, 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 mapDashboardInstancePortalsConsumerInvitesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesCreateOutput: + return DashboardInstancePortalsConsumerInvitesCreateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapDashboardInstancePortalsConsumerInvitesCreateOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapDashboardInstancePortalsConsumerInvitesCreateOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesCreateOutput, 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 DashboardInstancePortalsConsumerInvitesCreateBody: + name: str + email: str + message: Optional[str] = None + + +class mapDashboardInstancePortalsConsumerInvitesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesCreateBody: + return DashboardInstancePortalsConsumerInvitesCreateBody( + name=data.get('name'), + email=data.get('email'), + message=data.get('message') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesCreateBody, 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_invites/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/get.py new file mode 100644 index 00000000..2e4bf04c --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/get.py @@ -0,0 +1,92 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class DashboardInstancePortalsConsumerInvitesGetOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerInvitesGetOutput: + object: str + id: str + status: str + consumer_profile: DashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile + invited_by: DashboardInstancePortalsConsumerInvitesGetOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapDashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile: + return DashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile, 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 mapDashboardInstancePortalsConsumerInvitesGetOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesGetOutputInvitedBy: + return DashboardInstancePortalsConsumerInvitesGetOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesGetOutputInvitedBy, 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 mapDashboardInstancePortalsConsumerInvitesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesGetOutput: + return DashboardInstancePortalsConsumerInvitesGetOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapDashboardInstancePortalsConsumerInvitesGetOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapDashboardInstancePortalsConsumerInvitesGetOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesGetOutput, 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_invites/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/list.py new file mode 100644 index 00000000..9fe00193 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_invites/list.py @@ -0,0 +1,165 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class DashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class DashboardInstancePortalsConsumerInvitesListOutputItems: + object: str + id: str + status: str + consumer_profile: DashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile + invited_by: DashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None +@dataclass +class DashboardInstancePortalsConsumerInvitesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstancePortalsConsumerInvitesListOutput: + items: List[DashboardInstancePortalsConsumerInvitesListOutputItems] + pagination: DashboardInstancePortalsConsumerInvitesListOutputPagination + + +class mapDashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + return DashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile, 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 mapDashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + return DashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy, 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 mapDashboardInstancePortalsConsumerInvitesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListOutputItems: + return DashboardInstancePortalsConsumerInvitesListOutputItems( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapDashboardInstancePortalsConsumerInvitesListOutputItemsConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapDashboardInstancePortalsConsumerInvitesListOutputItemsInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListOutputItems, 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 mapDashboardInstancePortalsConsumerInvitesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListOutputPagination: + return DashboardInstancePortalsConsumerInvitesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListOutputPagination, 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 mapDashboardInstancePortalsConsumerInvitesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListOutput: + return DashboardInstancePortalsConsumerInvitesListOutput( + items=[mapDashboardInstancePortalsConsumerInvitesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstancePortalsConsumerInvitesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListOutput, 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 DashboardInstancePortalsConsumerInvitesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + status: Optional[Union[str, List[str]]] = None + + +class mapDashboardInstancePortalsConsumerInvitesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerInvitesListQuery: + return DashboardInstancePortalsConsumerInvitesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + status=data.get('status') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstancePortalsConsumerInvitesListQuery, 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_profiles/assign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/assign_groups.py index 93f588bb..40e1ff09 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/assign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/assign_groups.py @@ -23,6 +23,7 @@ class DashboardInstancePortalsConsumerProfilesAssignGroupsOutputGroups: class DashboardInstancePortalsConsumerProfilesAssignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstancePortalsConsumerProfilesAssignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class DashboardInstancePortalsConsumerProfilesAssignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: DashboardInstancePortalsConsumerProfilesAssignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerProfilesA image_url=data.get('image_url'), groups=[mapDashboardInstancePortalsConsumerProfilesAssignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapDashboardInstancePortalsConsumerProfilesAssignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/get.py index 99f405b3..83691102 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/get.py @@ -23,6 +23,7 @@ class DashboardInstancePortalsConsumerProfilesGetOutputGroups: class DashboardInstancePortalsConsumerProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstancePortalsConsumerProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class DashboardInstancePortalsConsumerProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: DashboardInstancePortalsConsumerProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerProfilesG image_url=data.get('image_url'), groups=[mapDashboardInstancePortalsConsumerProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapDashboardInstancePortalsConsumerProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/list.py index 0fcee2f8..2df669bb 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/list.py @@ -55,6 +55,7 @@ class DashboardInstancePortalsConsumerProfilesListQuery: order: Optional[str] = None search: Optional[str] = None consumer_group_id: Optional[str] = None + status: Optional[Union[str, List[str]]] = None class mapDashboardInstancePortalsConsumerProfilesListQuery: @@ -67,7 +68,8 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerProfilesL cursor=data.get('cursor'), order=data.get('order'), search=data.get('search'), - consumer_group_id=data.get('consumer_group_id') + consumer_group_id=data.get('consumer_group_id'), + status=data.get('status') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/unassign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/unassign_groups.py index f404a959..788e0161 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/unassign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/instance/portals/consumer_profiles/unassign_groups.py @@ -23,6 +23,7 @@ class DashboardInstancePortalsConsumerProfilesUnassignGroupsOutputGroups: class DashboardInstancePortalsConsumerProfilesUnassignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstancePortalsConsumerProfilesUnassignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class DashboardInstancePortalsConsumerProfilesUnassignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: DashboardInstancePortalsConsumerProfilesUnassignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstancePortalsConsumerProfilesU image_url=data.get('image_url'), groups=[mapDashboardInstancePortalsConsumerProfilesUnassignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapDashboardInstancePortalsConsumerProfilesUnassignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/get.py index ab3d209f..d1c541b8 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class ManagementInstanceConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstanceConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapManagementInstanceConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumerSurfacesGetOutputAuth: return ManagementInstanceConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/list.py index b514f537..bc533237 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class ManagementInstanceConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstanceConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapManagementInstanceConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumerSurfacesListOutputItemsAuth: return ManagementInstanceConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/get_member_consumer.py index 17ddea29..990c9559 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class ManagementInstanceConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ManagementInstanceConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/profiles/get.py index 99506788..5e895561 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/profiles/get.py @@ -23,6 +23,7 @@ class ManagementInstanceConsumersProfilesGetOutputGroups: class ManagementInstanceConsumersProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstanceConsumersProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class ManagementInstanceConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: ManagementInstanceConsumersProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumersProfilesGetOut image_url=data.get('image_url'), groups=[mapManagementInstanceConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapManagementInstanceConsumersProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None 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 15d5c5c2..e94877e0 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 @@ -2,6 +2,7 @@ from .auth import * from .consumer_access import * from .consumer_groups import * +from .consumer_invites import * from .consumer_profiles import * from .create import * from .delete import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/__init__.py index a89fc345..7ce85e04 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/__init__.py @@ -1 +1,2 @@ -from .get import * \ No newline at end of file +from .get 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/auth/app/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/get.py index e77c9465..ffef21ab 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/get.py @@ -10,6 +10,7 @@ class ManagementInstancePortalsAuthAppGetOutput: client_id: str default_redirect_url: str redirect_domains: List[str] + email_whitelist: List[str] created_at: datetime updated_at: datetime slug: Optional[str] = None @@ -25,6 +26,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsAuthAppGetOutput slug=data.get('slug'), default_redirect_url=data.get('default_redirect_url'), redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/update.py new file mode 100644 index 00000000..75178dfd --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/auth/app/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 ManagementInstancePortalsAuthAppUpdateOutput: + object: str + id: str + client_id: str + default_redirect_url: str + redirect_domains: List[str] + email_whitelist: List[str] + created_at: datetime + updated_at: datetime + slug: Optional[str] = None + + +class mapManagementInstancePortalsAuthAppUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsAuthAppUpdateOutput: + return ManagementInstancePortalsAuthAppUpdateOutput( + object=data.get('object'), + id=data.get('id'), + client_id=data.get('client_id'), + slug=data.get('slug'), + default_redirect_url=data.get('default_redirect_url'), + redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), + 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[ManagementInstancePortalsAuthAppUpdateOutput, 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 ManagementInstancePortalsAuthAppUpdateBody: + email_whitelist: Optional[List[str]] = None + + +class mapManagementInstancePortalsAuthAppUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsAuthAppUpdateBody: + return ManagementInstancePortalsAuthAppUpdateBody( + email_whitelist=data.get('email_whitelist', []) + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsAuthAppUpdateBody, 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_invites/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/__init__.py new file mode 100644 index 00000000..f8b85669 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/__init__.py @@ -0,0 +1,3 @@ +from .create import * +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_invites/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/create.py new file mode 100644 index 00000000..9425ca8e --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class ManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerInvitesCreateOutput: + object: str + id: str + status: str + consumer_profile: ManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile + invited_by: ManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile: + return ManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile, 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 mapManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy: + return ManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy, 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 mapManagementInstancePortalsConsumerInvitesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesCreateOutput: + return ManagementInstancePortalsConsumerInvitesCreateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapManagementInstancePortalsConsumerInvitesCreateOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapManagementInstancePortalsConsumerInvitesCreateOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesCreateOutput, 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 ManagementInstancePortalsConsumerInvitesCreateBody: + name: str + email: str + message: Optional[str] = None + + +class mapManagementInstancePortalsConsumerInvitesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesCreateBody: + return ManagementInstancePortalsConsumerInvitesCreateBody( + name=data.get('name'), + email=data.get('email'), + message=data.get('message') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesCreateBody, 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_invites/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/get.py new file mode 100644 index 00000000..192795d7 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/get.py @@ -0,0 +1,92 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class ManagementInstancePortalsConsumerInvitesGetOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerInvitesGetOutput: + object: str + id: str + status: str + consumer_profile: ManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile + invited_by: ManagementInstancePortalsConsumerInvitesGetOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile: + return ManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile, 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 mapManagementInstancePortalsConsumerInvitesGetOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesGetOutputInvitedBy: + return ManagementInstancePortalsConsumerInvitesGetOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesGetOutputInvitedBy, 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 mapManagementInstancePortalsConsumerInvitesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesGetOutput: + return ManagementInstancePortalsConsumerInvitesGetOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapManagementInstancePortalsConsumerInvitesGetOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapManagementInstancePortalsConsumerInvitesGetOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesGetOutput, 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_invites/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/list.py new file mode 100644 index 00000000..6dcc8959 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_invites/list.py @@ -0,0 +1,165 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class ManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class ManagementInstancePortalsConsumerInvitesListOutputItems: + object: str + id: str + status: str + consumer_profile: ManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile + invited_by: ManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None +@dataclass +class ManagementInstancePortalsConsumerInvitesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstancePortalsConsumerInvitesListOutput: + items: List[ManagementInstancePortalsConsumerInvitesListOutputItems] + pagination: ManagementInstancePortalsConsumerInvitesListOutputPagination + + +class mapManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile: + return ManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile, 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 mapManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy: + return ManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy, 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 mapManagementInstancePortalsConsumerInvitesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListOutputItems: + return ManagementInstancePortalsConsumerInvitesListOutputItems( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapManagementInstancePortalsConsumerInvitesListOutputItemsConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapManagementInstancePortalsConsumerInvitesListOutputItemsInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListOutputItems, 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 mapManagementInstancePortalsConsumerInvitesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListOutputPagination: + return ManagementInstancePortalsConsumerInvitesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListOutputPagination, 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 mapManagementInstancePortalsConsumerInvitesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListOutput: + return ManagementInstancePortalsConsumerInvitesListOutput( + items=[mapManagementInstancePortalsConsumerInvitesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstancePortalsConsumerInvitesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListOutput, 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 ManagementInstancePortalsConsumerInvitesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + status: Optional[Union[str, List[str]]] = None + + +class mapManagementInstancePortalsConsumerInvitesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerInvitesListQuery: + return ManagementInstancePortalsConsumerInvitesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + status=data.get('status') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstancePortalsConsumerInvitesListQuery, 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_profiles/assign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/assign_groups.py index b9a7261e..6e07bd87 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/assign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/assign_groups.py @@ -23,6 +23,7 @@ class ManagementInstancePortalsConsumerProfilesAssignGroupsOutputGroups: class ManagementInstancePortalsConsumerProfilesAssignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstancePortalsConsumerProfilesAssignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class ManagementInstancePortalsConsumerProfilesAssignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: ManagementInstancePortalsConsumerProfilesAssignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerProfiles image_url=data.get('image_url'), groups=[mapManagementInstancePortalsConsumerProfilesAssignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapManagementInstancePortalsConsumerProfilesAssignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/get.py index 53fc98f0..8539e289 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/get.py @@ -23,6 +23,7 @@ class ManagementInstancePortalsConsumerProfilesGetOutputGroups: class ManagementInstancePortalsConsumerProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstancePortalsConsumerProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class ManagementInstancePortalsConsumerProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: ManagementInstancePortalsConsumerProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerProfiles image_url=data.get('image_url'), groups=[mapManagementInstancePortalsConsumerProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapManagementInstancePortalsConsumerProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/list.py index 08e3a0e6..6d3687a5 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/list.py @@ -55,6 +55,7 @@ class ManagementInstancePortalsConsumerProfilesListQuery: order: Optional[str] = None search: Optional[str] = None consumer_group_id: Optional[str] = None + status: Optional[Union[str, List[str]]] = None class mapManagementInstancePortalsConsumerProfilesListQuery: @@ -67,7 +68,8 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerProfiles cursor=data.get('cursor'), order=data.get('order'), search=data.get('search'), - consumer_group_id=data.get('consumer_group_id') + consumer_group_id=data.get('consumer_group_id'), + status=data.get('status') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/unassign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/unassign_groups.py index 9d8a4c85..6b68dccb 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/unassign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/portals/consumer_profiles/unassign_groups.py @@ -23,6 +23,7 @@ class ManagementInstancePortalsConsumerProfilesUnassignGroupsOutputGroups: class ManagementInstancePortalsConsumerProfilesUnassignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstancePortalsConsumerProfilesUnassignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class ManagementInstancePortalsConsumerProfilesUnassignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: ManagementInstancePortalsConsumerProfilesUnassignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstancePortalsConsumerProfiles image_url=data.get('image_url'), groups=[mapManagementInstancePortalsConsumerProfilesUnassignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapManagementInstancePortalsConsumerProfilesUnassignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None 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 15d5c5c2..e94877e0 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 @@ -2,6 +2,7 @@ from .auth import * from .consumer_access import * from .consumer_groups import * +from .consumer_invites import * from .consumer_profiles import * from .create import * from .delete import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/__init__.py index a89fc345..7ce85e04 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/__init__.py @@ -1 +1,2 @@ -from .get import * \ No newline at end of file +from .get import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/get.py index 929bc66d..710e0e28 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/get.py @@ -10,6 +10,7 @@ class PortalsAuthAppGetOutput: client_id: str default_redirect_url: str redirect_domains: List[str] + email_whitelist: List[str] created_at: datetime updated_at: datetime slug: Optional[str] = None @@ -25,6 +26,7 @@ def from_dict(data: Dict[str, Any]) -> PortalsAuthAppGetOutput: slug=data.get('slug'), default_redirect_url=data.get('default_redirect_url'), redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/update.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/update.py new file mode 100644 index 00000000..d2643f12 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/auth/app/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 PortalsAuthAppUpdateOutput: + object: str + id: str + client_id: str + default_redirect_url: str + redirect_domains: List[str] + email_whitelist: List[str] + created_at: datetime + updated_at: datetime + slug: Optional[str] = None + + +class mapPortalsAuthAppUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsAuthAppUpdateOutput: + return PortalsAuthAppUpdateOutput( + object=data.get('object'), + id=data.get('id'), + client_id=data.get('client_id'), + slug=data.get('slug'), + default_redirect_url=data.get('default_redirect_url'), + redirect_domains=data.get('redirect_domains', []), + email_whitelist=data.get('email_whitelist', []), + 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[PortalsAuthAppUpdateOutput, 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 PortalsAuthAppUpdateBody: + email_whitelist: Optional[List[str]] = None + + +class mapPortalsAuthAppUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsAuthAppUpdateBody: + return PortalsAuthAppUpdateBody( + email_whitelist=data.get('email_whitelist', []) + ) + + @staticmethod + def to_dict(value: Union[PortalsAuthAppUpdateBody, 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_invites/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/__init__.py new file mode 100644 index 00000000..f8b85669 --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/__init__.py @@ -0,0 +1,3 @@ +from .create import * +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_invites/create.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/create.py new file mode 100644 index 00000000..4c6d1f6e --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerInvitesCreateOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class PortalsConsumerInvitesCreateOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class PortalsConsumerInvitesCreateOutput: + object: str + id: str + status: str + consumer_profile: PortalsConsumerInvitesCreateOutputConsumerProfile + invited_by: PortalsConsumerInvitesCreateOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapPortalsConsumerInvitesCreateOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesCreateOutputConsumerProfile: + return PortalsConsumerInvitesCreateOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesCreateOutputConsumerProfile, 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 mapPortalsConsumerInvitesCreateOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesCreateOutputInvitedBy: + return PortalsConsumerInvitesCreateOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesCreateOutputInvitedBy, 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 mapPortalsConsumerInvitesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesCreateOutput: + return PortalsConsumerInvitesCreateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapPortalsConsumerInvitesCreateOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapPortalsConsumerInvitesCreateOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesCreateOutput, 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 PortalsConsumerInvitesCreateBody: + name: str + email: str + message: Optional[str] = None + + +class mapPortalsConsumerInvitesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesCreateBody: + return PortalsConsumerInvitesCreateBody( + name=data.get('name'), + email=data.get('email'), + message=data.get('message') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesCreateBody, 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_invites/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/get.py new file mode 100644 index 00000000..570369cb --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/get.py @@ -0,0 +1,92 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerInvitesGetOutputConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class PortalsConsumerInvitesGetOutputInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class PortalsConsumerInvitesGetOutput: + object: str + id: str + status: str + consumer_profile: PortalsConsumerInvitesGetOutputConsumerProfile + invited_by: PortalsConsumerInvitesGetOutputInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None + + +class mapPortalsConsumerInvitesGetOutputConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesGetOutputConsumerProfile: + return PortalsConsumerInvitesGetOutputConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesGetOutputConsumerProfile, 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 mapPortalsConsumerInvitesGetOutputInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesGetOutputInvitedBy: + return PortalsConsumerInvitesGetOutputInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesGetOutputInvitedBy, 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 mapPortalsConsumerInvitesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesGetOutput: + return PortalsConsumerInvitesGetOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapPortalsConsumerInvitesGetOutputConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapPortalsConsumerInvitesGetOutputInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesGetOutput, 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_invites/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/list.py new file mode 100644 index 00000000..418f367c --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_invites/list.py @@ -0,0 +1,165 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class PortalsConsumerInvitesListOutputItemsConsumerProfile: + object: str + id: str + name: str + email: str +@dataclass +class PortalsConsumerInvitesListOutputItemsInvitedBy: + object: str + id: str + name: str + email: Optional[str] = None +@dataclass +class PortalsConsumerInvitesListOutputItems: + object: str + id: str + status: str + consumer_profile: PortalsConsumerInvitesListOutputItemsConsumerProfile + invited_by: PortalsConsumerInvitesListOutputItemsInvitedBy + created_at: datetime + updated_at: datetime + portal_url: Optional[str] = None + message: Optional[str] = None + accepted_at: Optional[datetime] = None +@dataclass +class PortalsConsumerInvitesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class PortalsConsumerInvitesListOutput: + items: List[PortalsConsumerInvitesListOutputItems] + pagination: PortalsConsumerInvitesListOutputPagination + + +class mapPortalsConsumerInvitesListOutputItemsConsumerProfile: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListOutputItemsConsumerProfile: + return PortalsConsumerInvitesListOutputItemsConsumerProfile( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListOutputItemsConsumerProfile, 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 mapPortalsConsumerInvitesListOutputItemsInvitedBy: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListOutputItemsInvitedBy: + return PortalsConsumerInvitesListOutputItemsInvitedBy( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + email=data.get('email') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListOutputItemsInvitedBy, 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 mapPortalsConsumerInvitesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListOutputItems: + return PortalsConsumerInvitesListOutputItems( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + portal_url=data.get('portal_url'), + consumer_profile=mapPortalsConsumerInvitesListOutputItemsConsumerProfile.from_dict(data.get('consumer_profile')) if data.get('consumer_profile') else None, + invited_by=mapPortalsConsumerInvitesListOutputItemsInvitedBy.from_dict(data.get('invited_by')) if data.get('invited_by') else None, + message=data.get('message'), + accepted_at=datetime.fromisoformat(data.get('accepted_at').replace('Z', '+00:00')) if data.get('accepted_at') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListOutputItems, 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 mapPortalsConsumerInvitesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListOutputPagination: + return PortalsConsumerInvitesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListOutputPagination, 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 mapPortalsConsumerInvitesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListOutput: + return PortalsConsumerInvitesListOutput( + items=[mapPortalsConsumerInvitesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapPortalsConsumerInvitesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListOutput, 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 PortalsConsumerInvitesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + search: Optional[str] = None + status: Optional[Union[str, List[str]]] = None + + +class mapPortalsConsumerInvitesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> PortalsConsumerInvitesListQuery: + return PortalsConsumerInvitesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + search=data.get('search'), + status=data.get('status') + ) + + @staticmethod + def to_dict(value: Union[PortalsConsumerInvitesListQuery, 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_profiles/assign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/assign_groups.py index cc33c987..3004e56c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/assign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/assign_groups.py @@ -23,6 +23,7 @@ class PortalsConsumerProfilesAssignGroupsOutputGroups: class PortalsConsumerProfilesAssignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class PortalsConsumerProfilesAssignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class PortalsConsumerProfilesAssignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: PortalsConsumerProfilesAssignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerProfilesAssignGroupsOutput image_url=data.get('image_url'), groups=[mapPortalsConsumerProfilesAssignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapPortalsConsumerProfilesAssignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/get.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/get.py index 4f7faa0a..32910f8c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/get.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/get.py @@ -23,6 +23,7 @@ class PortalsConsumerProfilesGetOutputGroups: class PortalsConsumerProfilesGetOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class PortalsConsumerProfilesGetOutputSurface: object: str @@ -41,6 +42,7 @@ class PortalsConsumerProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: PortalsConsumerProfilesGetOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerProfilesGetOutput: image_url=data.get('image_url'), groups=[mapPortalsConsumerProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapPortalsConsumerProfilesGetOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/list.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/list.py index bf2e84bd..907e0d7c 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/list.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/list.py @@ -55,6 +55,7 @@ class PortalsConsumerProfilesListQuery: order: Optional[str] = None search: Optional[str] = None consumer_group_id: Optional[str] = None + status: Optional[Union[str, List[str]]] = None class mapPortalsConsumerProfilesListQuery: @@ -67,7 +68,8 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerProfilesListQuery: cursor=data.get('cursor'), order=data.get('order'), search=data.get('search'), - consumer_group_id=data.get('consumer_group_id') + consumer_group_id=data.get('consumer_group_id'), + status=data.get('status') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/unassign_groups.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/unassign_groups.py index 3f00a1e3..5e068c78 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/unassign_groups.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/portals/consumer_profiles/unassign_groups.py @@ -23,6 +23,7 @@ class PortalsConsumerProfilesUnassignGroupsOutputGroups: class PortalsConsumerProfilesUnassignGroupsOutputSurfaceAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class PortalsConsumerProfilesUnassignGroupsOutputSurface: object: str @@ -41,6 +42,7 @@ class PortalsConsumerProfilesUnassignGroupsOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime surface: PortalsConsumerProfilesUnassignGroupsOutputSurface @@ -58,6 +60,7 @@ def from_dict(data: Dict[str, Any]) -> PortalsConsumerProfilesUnassignGroupsOutp image_url=data.get('image_url'), groups=[mapPortalsConsumerProfilesUnassignGroupsOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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, surface=mapPortalsConsumerProfilesUnassignGroupsOutputSurface.from_dict(data.get('surface')) if data.get('surface') else None diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/profile/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/profile/get.py index ac489c8b..2a87f744 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/profile/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer/profile/get.py @@ -27,6 +27,7 @@ class ConsumerProfileGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ConsumerProfileGetOutputGroups]] = None @@ -83,6 +84,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumerProfileGetOutput: image_url=data.get('image_url'), groups=[mapConsumerProfileGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/get.py index 85ff061e..70106c3f 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class ConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> ConsumerSurfacesGetOutputAuth: return ConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/list.py index 226bb03b..1da1deba 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class ConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> ConsumerSurfacesListOutputItemsAuth: return ConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/get_member_consumer.py index 1f0abce6..230f1ab1 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class ConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/get.py index d9765d1b..f7e4d2d4 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/get.py @@ -27,6 +27,7 @@ class ConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ConsumersProfilesGetOutputGroups]] = None @@ -83,6 +84,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumersProfilesGetOutput: image_url=data.get('image_url'), groups=[mapConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/list.py index 6510c1fe..c4809a56 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/consumers/profiles/list.py @@ -27,6 +27,7 @@ class ConsumersProfilesListOutputItems: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ConsumersProfilesListOutputItemsGroups]] = None @@ -91,6 +92,7 @@ def from_dict(data: Dict[str, Any]) -> ConsumersProfilesListOutputItems: image_url=data.get('image_url'), groups=[mapConsumersProfilesListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/get.py index fd9f0421..e8f3bc60 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class DashboardInstanceConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstanceConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapDashboardInstanceConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumerSurfacesGetOutputAuth: return DashboardInstanceConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/list.py index 69728c5a..a11532dc 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class DashboardInstanceConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class DashboardInstanceConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapDashboardInstanceConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumerSurfacesListOutputItemsAuth: return DashboardInstanceConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/get_member_consumer.py index 3c24fa1b..69b0b72b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class DashboardInstanceConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[DashboardInstanceConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/get.py index eb4a1364..44927f87 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/get.py @@ -27,6 +27,7 @@ class DashboardInstanceConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[DashboardInstanceConsumersProfilesGetOutputGroups]] = None @@ -83,6 +84,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumersProfilesGetOutp image_url=data.get('image_url'), groups=[mapDashboardInstanceConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/list.py index 09039767..111459fc 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/consumers/profiles/list.py @@ -27,6 +27,7 @@ class DashboardInstanceConsumersProfilesListOutputItems: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[DashboardInstanceConsumersProfilesListOutputItemsGroups]] = None @@ -91,6 +92,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceConsumersProfilesListOut image_url=data.get('image_url'), groups=[mapDashboardInstanceConsumersProfilesListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/get.py index ab3d209f..d1c541b8 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/get.py @@ -7,6 +7,7 @@ class ManagementInstanceConsumerSurfacesGetOutputAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstanceConsumerSurfacesGetOutput: object: str @@ -24,7 +25,8 @@ class mapManagementInstanceConsumerSurfacesGetOutputAuth: def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumerSurfacesGetOutputAuth: return ManagementInstanceConsumerSurfacesGetOutputAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/list.py index b514f537..bc533237 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumer_surfaces/list.py @@ -7,6 +7,7 @@ class ManagementInstanceConsumerSurfacesListOutputItemsAuth: object: str session_expiry_time_in_seconds: float + email_whitelist: List[str] @dataclass class ManagementInstanceConsumerSurfacesListOutputItems: object: str @@ -32,7 +33,8 @@ class mapManagementInstanceConsumerSurfacesListOutputItemsAuth: def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumerSurfacesListOutputItemsAuth: return ManagementInstanceConsumerSurfacesListOutputItemsAuth( object=data.get('object'), - session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds') + session_expiry_time_in_seconds=data.get('session_expiry_time_in_seconds'), + email_whitelist=data.get('email_whitelist', []) ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/get_member_consumer.py index 17ddea29..990c9559 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/get_member_consumer.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/get_member_consumer.py @@ -27,6 +27,7 @@ class ManagementInstanceConsumersGetMemberConsumerOutputProfile: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ManagementInstanceConsumersGetMemberConsumerOutputProfileGroups]] = None diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/get.py index 4cd3e3e1..265c021b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/get.py @@ -27,6 +27,7 @@ class ManagementInstanceConsumersProfilesGetOutput: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ManagementInstanceConsumersProfilesGetOutputGroups]] = None @@ -83,6 +84,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumersProfilesGetOut image_url=data.get('image_url'), groups=[mapManagementInstanceConsumersProfilesGetOutputGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/list.py index 2bb8efc0..26752568 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/consumers/profiles/list.py @@ -27,6 +27,7 @@ class ManagementInstanceConsumersProfilesListOutputItems: email: str image_url: str consumer_id: str + status: str created_at: datetime updated_at: datetime groups: Optional[List[ManagementInstanceConsumersProfilesListOutputItemsGroups]] = None @@ -91,6 +92,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceConsumersProfilesListOu image_url=data.get('image_url'), groups=[mapManagementInstanceConsumersProfilesListOutputItemsGroups.from_dict(item) for item in data.get('groups', []) if item], consumer_id=data.get('consumer_id'), + status=data.get('status'), 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 )