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 474548fa..58b578df 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 @@ -6,9 +6,6 @@ # These types are automatically exported for better IDE support # Type classes -# ApiKeysRevealOutput -# ApiKeysRotateBody -# ApiKeysRotateOutput # DashboardBootBody # DashboardBootOutput # DashboardInstanceCallbacksCreateBody @@ -433,7 +430,10 @@ # DashboardOrganizationsApiKeysGetOutput # DashboardOrganizationsApiKeysListOutput # DashboardOrganizationsApiKeysListQuery +# DashboardOrganizationsApiKeysRevealOutput # DashboardOrganizationsApiKeysRevokeOutput +# DashboardOrganizationsApiKeysRotateBody +# DashboardOrganizationsApiKeysRotateOutput # DashboardOrganizationsApiKeysUpdateBody # DashboardOrganizationsApiKeysUpdateOutput # DashboardOrganizationsCreateBody @@ -556,9 +556,6 @@ # OrganizationsProfileUpdateOutput # Mapper classes -# mapApiKeysRevealOutput -# mapApiKeysRotateBody -# mapApiKeysRotateOutput # mapDashboardBootBody # mapDashboardBootOutput # mapDashboardInstanceCallbacksCreateBody @@ -983,7 +980,10 @@ # mapDashboardOrganizationsApiKeysGetOutput # mapDashboardOrganizationsApiKeysListOutput # mapDashboardOrganizationsApiKeysListQuery +# mapDashboardOrganizationsApiKeysRevealOutput # mapDashboardOrganizationsApiKeysRevokeOutput +# mapDashboardOrganizationsApiKeysRotateBody +# mapDashboardOrganizationsApiKeysRotateOutput # mapDashboardOrganizationsApiKeysUpdateBody # mapDashboardOrganizationsApiKeysUpdateOutput # mapDashboardOrganizationsCreateBody 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 fa99461d..90d5e502 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 @@ -1,4 +1,3 @@ -from .api_keys import * from .callbacks import * from .callbacks_destinations import * from .callbacks_events import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/api_keys.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/api_keys.py deleted file mode 100644 index 72ddc8c2..00000000 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/api_keys.py +++ /dev/null @@ -1,45 +0,0 @@ -from typing import Any, Dict, List, Optional, Union -from datetime import datetime -from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapApiKeysRotateOutput, ApiKeysRotateOutput, mapApiKeysRotateBody, ApiKeysRotateBody, mapApiKeysRevealOutput, ApiKeysRevealOutput - -class MetorialApiKeysEndpoint(BaseMetorialEndpoint): - """Read and write API key information""" - - def __init__(self, config: MetorialEndpointManager): - super().__init__(config) - - def rotate(self, organization_id: str, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> ApiKeysRotateOutput: - """ - Rotate API key - Rotate a specific API key - - :param organization_id: str - :param api_key_id: str - :param current_expires_at: Optional[datetime] (optional) - :return: ApiKeysRotateOutput - """ - # Build body parameters from keyword arguments - body_dict = {} - if current_expires_at is not None: - body_dict["current_expires_at"] = current_expires_at - - request = MetorialRequest( - path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'rotate'], - body=body_dict - ) - return self._post(request).transform(mapApiKeysRotateOutput.from_dict) - - def reveal(self, organization_id: str, api_key_id: str) -> ApiKeysRevealOutput: - """ - Reveal API key - Reveal a specific API key - - :param organization_id: str - :param api_key_id: str - :return: ApiKeysRevealOutput - """ - request = MetorialRequest( - path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'reveal'] - ) - return self._post(request).transform(mapApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/consumers.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/consumers.py index 188acf74..05d33d08 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/consumers.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/consumers.py @@ -72,17 +72,18 @@ def create(self, *, name: str, email: str) -> DashboardInstanceConsumersCreateOu ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_consumers.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_consumers.py index befa2db4..941dd2de 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_consumers.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_instance_consumers.py @@ -75,18 +75,19 @@ def create(self, instance_id: str, *, name: str, email: str) -> DashboardInstanc ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, instance_id: str, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, instance_id: str, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. :param instance_id: str - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_organizations_api_keys.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_organizations_api_keys.py index 7aed0390..4cb91424 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_organizations_api_keys.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/dashboard_organizations_api_keys.py @@ -1,7 +1,7 @@ from typing import Any, Dict, List, Optional, Union from datetime import datetime from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput +from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput, mapDashboardOrganizationsApiKeysRotateOutput, DashboardOrganizationsApiKeysRotateOutput, mapDashboardOrganizationsApiKeysRotateBody, DashboardOrganizationsApiKeysRotateBody, mapDashboardOrganizationsApiKeysRevealOutput, DashboardOrganizationsApiKeysRevealOutput class MetorialDashboardOrganizationsApiKeysEndpoint(BaseMetorialEndpoint): """Read and write API key information""" @@ -137,4 +137,39 @@ def revoke(self, organization_id: str, api_key_id: str) -> DashboardOrganization request = MetorialRequest( path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id] ) - return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) + + def rotate(self, organization_id: str, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> DashboardOrganizationsApiKeysRotateOutput: + """ + Rotate API key + Rotate a specific API key + + :param organization_id: str + :param api_key_id: str + :param current_expires_at: Optional[datetime] (optional) + :return: DashboardOrganizationsApiKeysRotateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if current_expires_at is not None: + body_dict["current_expires_at"] = current_expires_at + + request = MetorialRequest( + path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'rotate'], + body=body_dict + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRotateOutput.from_dict) + + def reveal(self, organization_id: str, api_key_id: str) -> DashboardOrganizationsApiKeysRevealOutput: + """ + Reveal API key + Reveal a specific API key + + :param organization_id: str + :param api_key_id: str + :return: DashboardOrganizationsApiKeysRevealOutput + """ + request = MetorialRequest( + path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'reveal'] + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_consumers.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_consumers.py index 25629a50..675b7fc9 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_consumers.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_instance_consumers.py @@ -75,18 +75,19 @@ def create(self, instance_id: str, *, name: str, email: str) -> DashboardInstanc ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, instance_id: str, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, instance_id: str, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. :param instance_id: str - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['instances', instance_id, 'get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_organization_api_keys.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_organization_api_keys.py index c62cb1e0..5913f4bc 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_organization_api_keys.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/endpoints/management_organization_api_keys.py @@ -1,7 +1,7 @@ from typing import Any, Dict, List, Optional, Union from datetime import datetime from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput +from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput, mapDashboardOrganizationsApiKeysRotateOutput, DashboardOrganizationsApiKeysRotateOutput, mapDashboardOrganizationsApiKeysRotateBody, DashboardOrganizationsApiKeysRotateBody, mapDashboardOrganizationsApiKeysRevealOutput, DashboardOrganizationsApiKeysRevealOutput class MetorialManagementOrganizationApiKeysEndpoint(BaseMetorialEndpoint): """Read and write API key information""" @@ -132,4 +132,37 @@ def revoke(self, api_key_id: str) -> DashboardOrganizationsApiKeysRevokeOutput: request = MetorialRequest( path=['organization', 'api-keys', api_key_id] ) - return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) + + def rotate(self, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> DashboardOrganizationsApiKeysRotateOutput: + """ + Rotate API key + Rotate a specific API key + + :param api_key_id: str + :param current_expires_at: Optional[datetime] (optional) + :return: DashboardOrganizationsApiKeysRotateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if current_expires_at is not None: + body_dict["current_expires_at"] = current_expires_at + + request = MetorialRequest( + path=['organization', 'api-keys', api_key_id, 'rotate'], + body=body_dict + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRotateOutput.from_dict) + + def reveal(self, api_key_id: str) -> DashboardOrganizationsApiKeysRevealOutput: + """ + Reveal API key + Reveal a specific API key + + :param api_key_id: str + :return: DashboardOrganizationsApiKeysRevealOutput + """ + request = MetorialRequest( + path=['organization', 'api-keys', api_key_id, 'reveal'] + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/__init__.py index 25bc3983..c07c03ae 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/__init__.py @@ -1,4 +1,3 @@ -from .api_keys import * from .callbacks import * from .consumer_surfaces import * from .consumers import * diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/__init__.py deleted file mode 100644 index 1a7fc983..00000000 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .reveal import * -from .rotate import * \ No newline at end of file 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 f5cadcc8..a5f0ef6d 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 @@ -40,7 +40,7 @@ def to_dict(value: Union[ConsumersGetMemberConsumerOutput, Dict[str, Any], None] @dataclass class ConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapConsumersGetMemberConsumerBody: 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 e3dd1317..f1cf0058 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 @@ -40,7 +40,7 @@ def to_dict(value: Union[DashboardInstanceConsumersGetMemberConsumerOutput, Dict @dataclass class DashboardInstanceConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapDashboardInstanceConsumersGetMemberConsumerBody: diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/__init__.py index 2764f766..0b0a21d3 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/__init__.py @@ -1,5 +1,7 @@ from .create import * from .get import * from .list import * +from .reveal import * from .revoke import * +from .rotate import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/reveal.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/reveal.py similarity index 58% rename from src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/reveal.py rename to src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/reveal.py index 9416aeb9..9c9b463d 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/reveal.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/reveal.py @@ -4,7 +4,7 @@ import dataclasses @dataclass -class ApiKeysRevealOutputMachineAccessActorTeams: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: id: str name: str slug: str @@ -12,19 +12,19 @@ class ApiKeysRevealOutputMachineAccessActorTeams: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessActor: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessActor: object: str id: str type: str organization_id: str name: str image_url: str - teams: List[ApiKeysRevealOutputMachineAccessActorTeams] + teams: List[DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams] created_at: datetime updated_at: datetime email: Optional[str] = None @dataclass -class ApiKeysRevealOutputMachineAccessInstanceProject: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: object: str id: str status: str @@ -34,7 +34,7 @@ class ApiKeysRevealOutputMachineAccessInstanceProject: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessInstance: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: object: str id: str slug: str @@ -43,9 +43,9 @@ class ApiKeysRevealOutputMachineAccessInstance: type: str created_at: datetime updated_at: datetime - project: ApiKeysRevealOutputMachineAccessInstanceProject + project: DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject @dataclass -class ApiKeysRevealOutputMachineAccessOrganization: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: object: str id: str type: str @@ -55,7 +55,7 @@ class ApiKeysRevealOutputMachineAccessOrganization: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessUser: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessUser: object: str id: str status: str @@ -68,7 +68,7 @@ class ApiKeysRevealOutputMachineAccessUser: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccess: +class DashboardOrganizationsApiKeysRevealOutputMachineAccess: object: str id: str status: str @@ -78,16 +78,16 @@ class ApiKeysRevealOutputMachineAccess: created_at: datetime updated_at: datetime deleted_at: datetime - actor: Optional[ApiKeysRevealOutputMachineAccessActor] = None - instance: Optional[ApiKeysRevealOutputMachineAccessInstance] = None - organization: Optional[ApiKeysRevealOutputMachineAccessOrganization] = None - user: Optional[ApiKeysRevealOutputMachineAccessUser] = None + actor: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessActor] = None + instance: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance] = None + organization: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization] = None + user: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessUser] = None @dataclass -class ApiKeysRevealOutputRevealInfo: +class DashboardOrganizationsApiKeysRevealOutputRevealInfo: until: datetime forever: bool @dataclass -class ApiKeysRevealOutput: +class DashboardOrganizationsApiKeysRevealOutput: object: str id: str status: str @@ -96,7 +96,7 @@ class ApiKeysRevealOutput: type: str name: str ip_filters: List[str] - machine_access: ApiKeysRevealOutputMachineAccess + machine_access: DashboardOrganizationsApiKeysRevealOutputMachineAccess created_at: datetime updated_at: datetime secret: Optional[str] = None @@ -104,13 +104,13 @@ class ApiKeysRevealOutput: deleted_at: Optional[datetime] = None last_used_at: Optional[datetime] = None expires_at: Optional[datetime] = None - reveal_info: Optional[ApiKeysRevealOutputRevealInfo] = None + reveal_info: Optional[DashboardOrganizationsApiKeysRevealOutputRevealInfo] = None -class mapApiKeysRevealOutputMachineAccessActorTeams: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActorTeams: - return ApiKeysRevealOutputMachineAccessActorTeams( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams( id=data.get('id'), name=data.get('name'), slug=data.get('slug'), @@ -120,17 +120,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActorTeam ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessActorTeams, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams, 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 mapApiKeysRevealOutputMachineAccessActor: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActor: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActor: - return ApiKeysRevealOutputMachineAccessActor( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessActor: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessActor( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -138,23 +138,23 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActor: name=data.get('name'), email=data.get('email'), image_url=data.get('image_url'), - teams=[mapApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + teams=[mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessActor, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessActor, 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 mapApiKeysRevealOutputMachineAccessInstanceProject: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstanceProject: - return ApiKeysRevealOutputMachineAccessInstanceProject( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -166,17 +166,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstanceP ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessInstanceProject, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject, 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 mapApiKeysRevealOutputMachineAccessInstance: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstance: - return ApiKeysRevealOutputMachineAccessInstance( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance( object=data.get('object'), id=data.get('id'), slug=data.get('slug'), @@ -185,21 +185,21 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstance: type=data.get('type'), 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, - project=mapApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + project=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessInstance, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance, 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 mapApiKeysRevealOutputMachineAccessOrganization: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessOrganization: - return ApiKeysRevealOutputMachineAccessOrganization( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -211,17 +211,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessOrganizat ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessOrganization, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization, 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 mapApiKeysRevealOutputMachineAccessUser: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessUser: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessUser: - return ApiKeysRevealOutputMachineAccessUser( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessUser: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessUser( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -236,17 +236,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessUser: ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessUser, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessUser, 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 mapApiKeysRevealOutputMachineAccess: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccess: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccess: - return ApiKeysRevealOutputMachineAccess( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccess: + return DashboardOrganizationsApiKeysRevealOutputMachineAccess( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -256,40 +256,40 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccess: 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, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, - actor=mapApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, - instance=mapApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, - organization=mapApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, - user=mapApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + actor=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccess, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccess, 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 mapApiKeysRevealOutputRevealInfo: +class mapDashboardOrganizationsApiKeysRevealOutputRevealInfo: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputRevealInfo: - return ApiKeysRevealOutputRevealInfo( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputRevealInfo: + return DashboardOrganizationsApiKeysRevealOutputRevealInfo( until=datetime.fromisoformat(data.get('until').replace('Z', '+00:00')) if data.get('until') else None, forever=data.get('forever') ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputRevealInfo, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputRevealInfo, 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 mapApiKeysRevealOutput: +class mapDashboardOrganizationsApiKeysRevealOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutput: - return ApiKeysRevealOutput( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutput: + return DashboardOrganizationsApiKeysRevealOutput( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -300,17 +300,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutput: name=data.get('name'), description=data.get('description'), ip_filters=data.get('ip_filters', []), - machine_access=mapApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + machine_access=mapDashboardOrganizationsApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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, - reveal_info=mapApiKeysRevealOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') else None + reveal_info=mapDashboardOrganizationsApiKeysRevealOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/rotate.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/rotate.py new file mode 100644 index 00000000..ce8fa15d --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/dashboard/organizations/api_keys/rotate.py @@ -0,0 +1,341 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: + id: str + name: str + slug: str + assignment_id: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessActor: + object: str + id: str + type: str + organization_id: str + name: str + image_url: str + teams: List[DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams] + created_at: datetime + updated_at: datetime + email: Optional[str] = None +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: + object: str + id: str + status: str + slug: str + name: str + organization_id: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: + object: str + id: str + slug: str + name: str + organization_id: str + type: str + created_at: datetime + updated_at: datetime + project: DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: + object: str + id: str + type: str + slug: str + name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccessUser: + object: str + id: str + status: str + type: str + email: str + name: str + first_name: str + last_name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardOrganizationsApiKeysRotateOutputMachineAccess: + object: str + id: str + status: str + type: str + name: str + last_used_at: datetime + created_at: datetime + updated_at: datetime + deleted_at: datetime + actor: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessActor] = None + instance: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance] = None + organization: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization] = None + user: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessUser] = None +@dataclass +class DashboardOrganizationsApiKeysRotateOutputRevealInfo: + until: datetime + forever: bool +@dataclass +class DashboardOrganizationsApiKeysRotateOutput: + object: str + id: str + status: str + secret_redacted: str + secret_redacted_long: str + type: str + name: str + ip_filters: List[str] + machine_access: DashboardOrganizationsApiKeysRotateOutputMachineAccess + created_at: datetime + updated_at: datetime + secret: Optional[str] = None + description: Optional[str] = None + deleted_at: Optional[datetime] = None + last_used_at: Optional[datetime] = None + expires_at: Optional[datetime] = None + reveal_info: Optional[DashboardOrganizationsApiKeysRotateOutputRevealInfo] = None + + +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams( + id=data.get('id'), + name=data.get('name'), + slug=data.get('slug'), + assignment_id=data.get('assignment_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActor: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessActor: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessActor( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + organization_id=data.get('organization_id'), + name=data.get('name'), + email=data.get('email'), + image_url=data.get('image_url'), + teams=[mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessActor, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + type=data.get('type'), + 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, + project=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + slug=data.get('slug'), + name=data.get('name'), + image_url=data.get('image_url'), + 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[DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccessUser: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessUser: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessUser( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + email=data.get('email'), + name=data.get('name'), + first_name=data.get('first_name'), + last_name=data.get('last_name'), + image_url=data.get('image_url'), + 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[DashboardOrganizationsApiKeysRotateOutputMachineAccessUser, 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 mapDashboardOrganizationsApiKeysRotateOutputMachineAccess: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccess: + return DashboardOrganizationsApiKeysRotateOutputMachineAccess( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + name=data.get('name'), + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_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, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + actor=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccess, 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 mapDashboardOrganizationsApiKeysRotateOutputRevealInfo: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputRevealInfo: + return DashboardOrganizationsApiKeysRotateOutputRevealInfo( + until=datetime.fromisoformat(data.get('until').replace('Z', '+00:00')) if data.get('until') else None, + forever=data.get('forever') + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputRevealInfo, 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 mapDashboardOrganizationsApiKeysRotateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutput: + return DashboardOrganizationsApiKeysRotateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + secret_redacted=data.get('secret_redacted'), + secret_redacted_long=data.get('secret_redacted_long'), + secret=data.get('secret'), + type=data.get('type'), + name=data.get('name'), + description=data.get('description'), + ip_filters=data.get('ip_filters', []), + machine_access=mapDashboardOrganizationsApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, + expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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, + reveal_info=mapDashboardOrganizationsApiKeysRotateOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutput, 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 DashboardOrganizationsApiKeysRotateBody: + current_expires_at: Optional[datetime] = None + + +class mapDashboardOrganizationsApiKeysRotateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateBody: + return DashboardOrganizationsApiKeysRotateBody( + current_expires_at=datetime.fromisoformat(data.get('current_expires_at').replace('Z', '+00:00')) if data.get('current_expires_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateBody, 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/consumers/get_member_consumer.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/instance/consumers/get_member_consumer.py index bce50826..5be33dcc 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 @@ -40,7 +40,7 @@ def to_dict(value: Union[ManagementInstanceConsumersGetMemberConsumerOutput, Dic @dataclass class ManagementInstanceConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapManagementInstanceConsumersGetMemberConsumerBody: diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/__init__.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/__init__.py index 2764f766..0b0a21d3 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/__init__.py +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/__init__.py @@ -1,5 +1,7 @@ from .create import * from .get import * from .list import * +from .reveal import * from .revoke import * +from .rotate import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/reveal.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/reveal.py new file mode 100644 index 00000000..26780e4d --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/reveal.py @@ -0,0 +1,320 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: + id: str + name: str + slug: str + assignment_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessActor: + object: str + id: str + type: str + organization_id: str + name: str + image_url: str + teams: List[ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams] + created_at: datetime + updated_at: datetime + email: Optional[str] = None +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: + object: str + id: str + status: str + slug: str + name: str + organization_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessInstance: + object: str + id: str + slug: str + name: str + organization_id: str + type: str + created_at: datetime + updated_at: datetime + project: ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: + object: str + id: str + type: str + slug: str + name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccessUser: + object: str + id: str + status: str + type: str + email: str + name: str + first_name: str + last_name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRevealOutputMachineAccess: + object: str + id: str + status: str + type: str + name: str + last_used_at: datetime + created_at: datetime + updated_at: datetime + deleted_at: datetime + actor: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessActor] = None + instance: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessInstance] = None + organization: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization] = None + user: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessUser] = None +@dataclass +class ManagementOrganizationApiKeysRevealOutputRevealInfo: + until: datetime + forever: bool +@dataclass +class ManagementOrganizationApiKeysRevealOutput: + object: str + id: str + status: str + secret_redacted: str + secret_redacted_long: str + type: str + name: str + ip_filters: List[str] + machine_access: ManagementOrganizationApiKeysRevealOutputMachineAccess + created_at: datetime + updated_at: datetime + secret: Optional[str] = None + description: Optional[str] = None + deleted_at: Optional[datetime] = None + last_used_at: Optional[datetime] = None + expires_at: Optional[datetime] = None + reveal_info: Optional[ManagementOrganizationApiKeysRevealOutputRevealInfo] = None + + +class mapManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: + return ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams( + id=data.get('id'), + name=data.get('name'), + slug=data.get('slug'), + assignment_id=data.get('assignment_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccessActor: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessActor: + return ManagementOrganizationApiKeysRevealOutputMachineAccessActor( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + organization_id=data.get('organization_id'), + name=data.get('name'), + email=data.get('email'), + image_url=data.get('image_url'), + teams=[mapManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessActor, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: + return ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccessInstance: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessInstance: + return ManagementOrganizationApiKeysRevealOutputMachineAccessInstance( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + type=data.get('type'), + 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, + project=mapManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessInstance, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: + return ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + slug=data.get('slug'), + name=data.get('name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccessUser: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessUser: + return ManagementOrganizationApiKeysRevealOutputMachineAccessUser( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + email=data.get('email'), + name=data.get('name'), + first_name=data.get('first_name'), + last_name=data.get('last_name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRevealOutputMachineAccessUser, 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 mapManagementOrganizationApiKeysRevealOutputMachineAccess: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccess: + return ManagementOrganizationApiKeysRevealOutputMachineAccess( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + name=data.get('name'), + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_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, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + actor=mapManagementOrganizationApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapManagementOrganizationApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapManagementOrganizationApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapManagementOrganizationApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccess, 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 mapManagementOrganizationApiKeysRevealOutputRevealInfo: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputRevealInfo: + return ManagementOrganizationApiKeysRevealOutputRevealInfo( + until=datetime.fromisoformat(data.get('until').replace('Z', '+00:00')) if data.get('until') else None, + forever=data.get('forever') + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputRevealInfo, 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 mapManagementOrganizationApiKeysRevealOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutput: + return ManagementOrganizationApiKeysRevealOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + secret_redacted=data.get('secret_redacted'), + secret_redacted_long=data.get('secret_redacted_long'), + secret=data.get('secret'), + type=data.get('type'), + name=data.get('name'), + description=data.get('description'), + ip_filters=data.get('ip_filters', []), + machine_access=mapManagementOrganizationApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, + expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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, + reveal_info=mapManagementOrganizationApiKeysRevealOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutput, 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/organization/api_keys/rotate.py b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/rotate.py new file mode 100644 index 00000000..f4a92dbb --- /dev/null +++ b/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/management/organization/api_keys/rotate.py @@ -0,0 +1,341 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + id: str + name: str + slug: str + assignment_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessActor: + object: str + id: str + type: str + organization_id: str + name: str + image_url: str + teams: List[ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams] + created_at: datetime + updated_at: datetime + email: Optional[str] = None +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + object: str + id: str + status: str + slug: str + name: str + organization_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + object: str + id: str + slug: str + name: str + organization_id: str + type: str + created_at: datetime + updated_at: datetime + project: ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + object: str + id: str + type: str + slug: str + name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessUser: + object: str + id: str + status: str + type: str + email: str + name: str + first_name: str + last_name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccess: + object: str + id: str + status: str + type: str + name: str + last_used_at: datetime + created_at: datetime + updated_at: datetime + deleted_at: datetime + actor: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessActor] = None + instance: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessInstance] = None + organization: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization] = None + user: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessUser] = None +@dataclass +class ManagementOrganizationApiKeysRotateOutputRevealInfo: + until: datetime + forever: bool +@dataclass +class ManagementOrganizationApiKeysRotateOutput: + object: str + id: str + status: str + secret_redacted: str + secret_redacted_long: str + type: str + name: str + ip_filters: List[str] + machine_access: ManagementOrganizationApiKeysRotateOutputMachineAccess + created_at: datetime + updated_at: datetime + secret: Optional[str] = None + description: Optional[str] = None + deleted_at: Optional[datetime] = None + last_used_at: Optional[datetime] = None + expires_at: Optional[datetime] = None + reveal_info: Optional[ManagementOrganizationApiKeysRotateOutputRevealInfo] = None + + +class mapManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + return ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams( + id=data.get('id'), + name=data.get('name'), + slug=data.get('slug'), + assignment_id=data.get('assignment_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessActor: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessActor: + return ManagementOrganizationApiKeysRotateOutputMachineAccessActor( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + organization_id=data.get('organization_id'), + name=data.get('name'), + email=data.get('email'), + image_url=data.get('image_url'), + teams=[mapManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessActor, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + return ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + return ManagementOrganizationApiKeysRotateOutputMachineAccessInstance( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + type=data.get('type'), + 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, + project=mapManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessInstance, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + return ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + slug=data.get('slug'), + name=data.get('name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessUser: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessUser: + return ManagementOrganizationApiKeysRotateOutputMachineAccessUser( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + email=data.get('email'), + name=data.get('name'), + first_name=data.get('first_name'), + last_name=data.get('last_name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRotateOutputMachineAccessUser, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccess: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccess: + return ManagementOrganizationApiKeysRotateOutputMachineAccess( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + name=data.get('name'), + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_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, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + actor=mapManagementOrganizationApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapManagementOrganizationApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapManagementOrganizationApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapManagementOrganizationApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccess, 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 mapManagementOrganizationApiKeysRotateOutputRevealInfo: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputRevealInfo: + return ManagementOrganizationApiKeysRotateOutputRevealInfo( + until=datetime.fromisoformat(data.get('until').replace('Z', '+00:00')) if data.get('until') else None, + forever=data.get('forever') + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputRevealInfo, 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 mapManagementOrganizationApiKeysRotateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutput: + return ManagementOrganizationApiKeysRotateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + secret_redacted=data.get('secret_redacted'), + secret_redacted_long=data.get('secret_redacted_long'), + secret=data.get('secret'), + type=data.get('type'), + name=data.get('name'), + description=data.get('description'), + ip_filters=data.get('ip_filters', []), + machine_access=mapManagementOrganizationApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, + expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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, + reveal_info=mapManagementOrganizationApiKeysRotateOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutput, 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 ManagementOrganizationApiKeysRotateBody: + current_expires_at: Optional[datetime] = None + + +class mapManagementOrganizationApiKeysRotateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateBody: + return ManagementOrganizationApiKeysRotateBody( + current_expires_at=datetime.fromisoformat(data.get('current_expires_at').replace('Z', '+00:00')) if data.get('current_expires_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py index 7b8de1ee..fbeca286 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py @@ -6,9 +6,6 @@ # These types are automatically exported for better IDE support # Type classes -# ApiKeysRevealOutput -# ApiKeysRotateBody -# ApiKeysRotateOutput # ConsumerProfileGetOutput # ConsumerProfileGroupsListOutput # ConsumerProfileGroupsListQuery @@ -364,7 +361,10 @@ # DashboardOrganizationsApiKeysGetOutput # DashboardOrganizationsApiKeysListOutput # DashboardOrganizationsApiKeysListQuery +# DashboardOrganizationsApiKeysRevealOutput # DashboardOrganizationsApiKeysRevokeOutput +# DashboardOrganizationsApiKeysRotateBody +# DashboardOrganizationsApiKeysRotateOutput # DashboardOrganizationsApiKeysUpdateBody # DashboardOrganizationsApiKeysUpdateOutput # InstancesGetOutput @@ -372,9 +372,6 @@ # TokenGetOutput # Mapper classes -# mapApiKeysRevealOutput -# mapApiKeysRotateBody -# mapApiKeysRotateOutput # mapConsumerProfileGetOutput # mapConsumerProfileGroupsListOutput # mapConsumerProfileGroupsListQuery @@ -730,7 +727,10 @@ # mapDashboardOrganizationsApiKeysGetOutput # mapDashboardOrganizationsApiKeysListOutput # mapDashboardOrganizationsApiKeysListQuery +# mapDashboardOrganizationsApiKeysRevealOutput # mapDashboardOrganizationsApiKeysRevokeOutput +# mapDashboardOrganizationsApiKeysRotateBody +# mapDashboardOrganizationsApiKeysRotateOutput # mapDashboardOrganizationsApiKeysUpdateBody # mapDashboardOrganizationsApiKeysUpdateOutput # mapInstancesGetOutput diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py index 55e56c6c..efce985b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py @@ -1,4 +1,3 @@ -from .api_keys import * from .callbacks import * from .callbacks_destinations import * from .callbacks_events import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/api_keys.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/api_keys.py deleted file mode 100644 index 72ddc8c2..00000000 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/api_keys.py +++ /dev/null @@ -1,45 +0,0 @@ -from typing import Any, Dict, List, Optional, Union -from datetime import datetime -from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapApiKeysRotateOutput, ApiKeysRotateOutput, mapApiKeysRotateBody, ApiKeysRotateBody, mapApiKeysRevealOutput, ApiKeysRevealOutput - -class MetorialApiKeysEndpoint(BaseMetorialEndpoint): - """Read and write API key information""" - - def __init__(self, config: MetorialEndpointManager): - super().__init__(config) - - def rotate(self, organization_id: str, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> ApiKeysRotateOutput: - """ - Rotate API key - Rotate a specific API key - - :param organization_id: str - :param api_key_id: str - :param current_expires_at: Optional[datetime] (optional) - :return: ApiKeysRotateOutput - """ - # Build body parameters from keyword arguments - body_dict = {} - if current_expires_at is not None: - body_dict["current_expires_at"] = current_expires_at - - request = MetorialRequest( - path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'rotate'], - body=body_dict - ) - return self._post(request).transform(mapApiKeysRotateOutput.from_dict) - - def reveal(self, organization_id: str, api_key_id: str) -> ApiKeysRevealOutput: - """ - Reveal API key - Reveal a specific API key - - :param organization_id: str - :param api_key_id: str - :return: ApiKeysRevealOutput - """ - request = MetorialRequest( - path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'reveal'] - ) - return self._post(request).transform(mapApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumers.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumers.py index 188acf74..05d33d08 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumers.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/consumers.py @@ -72,17 +72,18 @@ def create(self, *, name: str, email: str) -> DashboardInstanceConsumersCreateOu ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_consumers.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_consumers.py index befa2db4..941dd2de 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_consumers.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_consumers.py @@ -75,18 +75,19 @@ def create(self, instance_id: str, *, name: str, email: str) -> DashboardInstanc ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, instance_id: str, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, instance_id: str, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. :param instance_id: str - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_organizations_api_keys.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_organizations_api_keys.py index 7aed0390..4cb91424 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_organizations_api_keys.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_organizations_api_keys.py @@ -1,7 +1,7 @@ from typing import Any, Dict, List, Optional, Union from datetime import datetime from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput +from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput, mapDashboardOrganizationsApiKeysRotateOutput, DashboardOrganizationsApiKeysRotateOutput, mapDashboardOrganizationsApiKeysRotateBody, DashboardOrganizationsApiKeysRotateBody, mapDashboardOrganizationsApiKeysRevealOutput, DashboardOrganizationsApiKeysRevealOutput class MetorialDashboardOrganizationsApiKeysEndpoint(BaseMetorialEndpoint): """Read and write API key information""" @@ -137,4 +137,39 @@ def revoke(self, organization_id: str, api_key_id: str) -> DashboardOrganization request = MetorialRequest( path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id] ) - return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) + + def rotate(self, organization_id: str, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> DashboardOrganizationsApiKeysRotateOutput: + """ + Rotate API key + Rotate a specific API key + + :param organization_id: str + :param api_key_id: str + :param current_expires_at: Optional[datetime] (optional) + :return: DashboardOrganizationsApiKeysRotateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if current_expires_at is not None: + body_dict["current_expires_at"] = current_expires_at + + request = MetorialRequest( + path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'rotate'], + body=body_dict + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRotateOutput.from_dict) + + def reveal(self, organization_id: str, api_key_id: str) -> DashboardOrganizationsApiKeysRevealOutput: + """ + Reveal API key + Reveal a specific API key + + :param organization_id: str + :param api_key_id: str + :return: DashboardOrganizationsApiKeysRevealOutput + """ + request = MetorialRequest( + path=['dashboard', 'organizations', organization_id, 'api-keys', api_key_id, 'reveal'] + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_consumers.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_consumers.py index 25629a50..675b7fc9 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_consumers.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_consumers.py @@ -75,18 +75,19 @@ def create(self, instance_id: str, *, name: str, email: str) -> DashboardInstanc ) return self._post(request).transform(mapDashboardInstanceConsumersCreateOutput.from_dict) - def get_member_consumer(self, instance_id: str, *, surface_identifier: str) -> DashboardInstanceConsumersGetMemberConsumerOutput: + def get_member_consumer(self, instance_id: str, *, surface_identifier: Optional[str] = None) -> DashboardInstanceConsumersGetMemberConsumerOutput: """ Get member consumer Upserts and returns the consumer for the authenticated organization member. :param instance_id: str - :param surface_identifier: str + :param surface_identifier: Optional[str] (optional) :return: DashboardInstanceConsumersGetMemberConsumerOutput """ # Build body parameters from keyword arguments body_dict = {} - body_dict["surface_identifier"] = surface_identifier + if surface_identifier is not None: + body_dict["surface_identifier"] = surface_identifier request = MetorialRequest( path=['instances', instance_id, 'get-member-consumer'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_organization_api_keys.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_organization_api_keys.py index c62cb1e0..5913f4bc 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_organization_api_keys.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_organization_api_keys.py @@ -1,7 +1,7 @@ from typing import Any, Dict, List, Optional, Union from datetime import datetime from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput +from ..resources import mapDashboardOrganizationsApiKeysListOutput, DashboardOrganizationsApiKeysListOutput, mapDashboardOrganizationsApiKeysListQuery, DashboardOrganizationsApiKeysListQuery, mapDashboardOrganizationsApiKeysGetOutput, DashboardOrganizationsApiKeysGetOutput, mapDashboardOrganizationsApiKeysCreateOutput, DashboardOrganizationsApiKeysCreateOutput, mapDashboardOrganizationsApiKeysCreateBody, DashboardOrganizationsApiKeysCreateBody, mapDashboardOrganizationsApiKeysUpdateOutput, DashboardOrganizationsApiKeysUpdateOutput, mapDashboardOrganizationsApiKeysUpdateBody, DashboardOrganizationsApiKeysUpdateBody, mapDashboardOrganizationsApiKeysRevokeOutput, DashboardOrganizationsApiKeysRevokeOutput, mapDashboardOrganizationsApiKeysRotateOutput, DashboardOrganizationsApiKeysRotateOutput, mapDashboardOrganizationsApiKeysRotateBody, DashboardOrganizationsApiKeysRotateBody, mapDashboardOrganizationsApiKeysRevealOutput, DashboardOrganizationsApiKeysRevealOutput class MetorialManagementOrganizationApiKeysEndpoint(BaseMetorialEndpoint): """Read and write API key information""" @@ -132,4 +132,37 @@ def revoke(self, api_key_id: str) -> DashboardOrganizationsApiKeysRevokeOutput: request = MetorialRequest( path=['organization', 'api-keys', api_key_id] ) - return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) \ No newline at end of file + return self._delete(request).transform(mapDashboardOrganizationsApiKeysRevokeOutput.from_dict) + + def rotate(self, api_key_id: str, *, current_expires_at: Optional[datetime] = None) -> DashboardOrganizationsApiKeysRotateOutput: + """ + Rotate API key + Rotate a specific API key + + :param api_key_id: str + :param current_expires_at: Optional[datetime] (optional) + :return: DashboardOrganizationsApiKeysRotateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if current_expires_at is not None: + body_dict["current_expires_at"] = current_expires_at + + request = MetorialRequest( + path=['organization', 'api-keys', api_key_id, 'rotate'], + body=body_dict + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRotateOutput.from_dict) + + def reveal(self, api_key_id: str) -> DashboardOrganizationsApiKeysRevealOutput: + """ + Reveal API key + Reveal a specific API key + + :param api_key_id: str + :return: DashboardOrganizationsApiKeysRevealOutput + """ + request = MetorialRequest( + path=['organization', 'api-keys', api_key_id, 'reveal'] + ) + return self._post(request).transform(mapDashboardOrganizationsApiKeysRevealOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py index c94637d7..4b38d782 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py @@ -1,4 +1,3 @@ -from .api_keys import * from .callbacks import * from .consumer import * from .consumer_surfaces import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/__init__.py deleted file mode 100644 index 1a7fc983..00000000 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .reveal import * -from .rotate import * \ No newline at end of file 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 a29e8407..0bc9d0bd 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 @@ -36,7 +36,7 @@ def to_dict(value: Union[ConsumersGetMemberConsumerOutput, Dict[str, Any], None] @dataclass class ConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapConsumersGetMemberConsumerBody: 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 1bb72f5f..dc8970c1 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 @@ -36,7 +36,7 @@ def to_dict(value: Union[DashboardInstanceConsumersGetMemberConsumerOutput, Dict @dataclass class DashboardInstanceConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapDashboardInstanceConsumersGetMemberConsumerBody: diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/__init__.py index 2764f766..0b0a21d3 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/__init__.py @@ -1,5 +1,7 @@ from .create import * from .get import * from .list import * +from .reveal import * from .revoke import * +from .rotate import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/rotate.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/reveal.py similarity index 59% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/rotate.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/reveal.py index 0de81b67..8fc820cb 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/rotate.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/reveal.py @@ -4,7 +4,7 @@ import dataclasses @dataclass -class ApiKeysRotateOutputMachineAccessActorTeams: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: id: str name: str slug: str @@ -12,19 +12,19 @@ class ApiKeysRotateOutputMachineAccessActorTeams: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessActor: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessActor: object: str id: str type: str organization_id: str name: str image_url: str - teams: List[ApiKeysRotateOutputMachineAccessActorTeams] + teams: List[DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams] created_at: datetime updated_at: datetime email: Optional[str] = None @dataclass -class ApiKeysRotateOutputMachineAccessInstanceProject: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: object: str id: str status: str @@ -34,7 +34,7 @@ class ApiKeysRotateOutputMachineAccessInstanceProject: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessInstance: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: object: str id: str slug: str @@ -43,9 +43,9 @@ class ApiKeysRotateOutputMachineAccessInstance: type: str created_at: datetime updated_at: datetime - project: ApiKeysRotateOutputMachineAccessInstanceProject + project: DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject @dataclass -class ApiKeysRotateOutputMachineAccessOrganization: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: object: str id: str type: str @@ -55,7 +55,7 @@ class ApiKeysRotateOutputMachineAccessOrganization: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessUser: +class DashboardOrganizationsApiKeysRevealOutputMachineAccessUser: object: str id: str status: str @@ -68,7 +68,7 @@ class ApiKeysRotateOutputMachineAccessUser: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccess: +class DashboardOrganizationsApiKeysRevealOutputMachineAccess: object: str id: str status: str @@ -78,12 +78,12 @@ class ApiKeysRotateOutputMachineAccess: created_at: datetime updated_at: datetime deleted_at: datetime - actor: Optional[ApiKeysRotateOutputMachineAccessActor] = None - instance: Optional[ApiKeysRotateOutputMachineAccessInstance] = None - organization: Optional[ApiKeysRotateOutputMachineAccessOrganization] = None - user: Optional[ApiKeysRotateOutputMachineAccessUser] = None + actor: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessActor] = None + instance: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance] = None + organization: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization] = None + user: Optional[DashboardOrganizationsApiKeysRevealOutputMachineAccessUser] = None @dataclass -class ApiKeysRotateOutput: +class DashboardOrganizationsApiKeysRevealOutput: object: str id: str status: str @@ -91,7 +91,7 @@ class ApiKeysRotateOutput: type: str name: str ip_filters: List[str] - machine_access: ApiKeysRotateOutputMachineAccess + machine_access: DashboardOrganizationsApiKeysRevealOutputMachineAccess created_at: datetime updated_at: datetime secret: Optional[str] = None @@ -101,10 +101,10 @@ class ApiKeysRotateOutput: expires_at: Optional[datetime] = None -class mapApiKeysRotateOutputMachineAccessActorTeams: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActorTeams: - return ApiKeysRotateOutputMachineAccessActorTeams( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams( id=data.get('id'), name=data.get('name'), slug=data.get('slug'), @@ -114,17 +114,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActorTeam ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessActorTeams, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams, 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 mapApiKeysRotateOutputMachineAccessActor: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActor: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActor: - return ApiKeysRotateOutputMachineAccessActor( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessActor: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessActor( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -132,23 +132,23 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActor: name=data.get('name'), email=data.get('email'), image_url=data.get('image_url'), - teams=[mapApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + teams=[mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessActor, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessActor, 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 mapApiKeysRotateOutputMachineAccessInstanceProject: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstanceProject: - return ApiKeysRotateOutputMachineAccessInstanceProject( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -160,17 +160,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstanceP ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessInstanceProject, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject, 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 mapApiKeysRotateOutputMachineAccessInstance: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstance: - return ApiKeysRotateOutputMachineAccessInstance( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance( object=data.get('object'), id=data.get('id'), slug=data.get('slug'), @@ -179,21 +179,21 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstance: type=data.get('type'), 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, - project=mapApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + project=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessInstance, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessInstance, 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 mapApiKeysRotateOutputMachineAccessOrganization: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessOrganization: - return ApiKeysRotateOutputMachineAccessOrganization( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -205,17 +205,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessOrganizat ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessOrganization, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization, 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 mapApiKeysRotateOutputMachineAccessUser: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccessUser: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessUser: - return ApiKeysRotateOutputMachineAccessUser( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccessUser: + return DashboardOrganizationsApiKeysRevealOutputMachineAccessUser( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -230,17 +230,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessUser: ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessUser, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccessUser, 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 mapApiKeysRotateOutputMachineAccess: +class mapDashboardOrganizationsApiKeysRevealOutputMachineAccess: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccess: - return ApiKeysRotateOutputMachineAccess( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutputMachineAccess: + return DashboardOrganizationsApiKeysRevealOutputMachineAccess( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -250,24 +250,24 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccess: 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, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, - actor=mapApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, - instance=mapApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, - organization=mapApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, - user=mapApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + actor=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapDashboardOrganizationsApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccess, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutputMachineAccess, 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 mapApiKeysRotateOutput: +class mapDashboardOrganizationsApiKeysRevealOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutput: - return ApiKeysRotateOutput( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRevealOutput: + return DashboardOrganizationsApiKeysRevealOutput( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -277,7 +277,7 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutput: name=data.get('name'), description=data.get('description'), ip_filters=data.get('ip_filters', []), - machine_access=mapApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + machine_access=mapDashboardOrganizationsApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_at') else None, @@ -286,28 +286,7 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutput: ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutput, 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 ApiKeysRotateBody: - current_expires_at: Optional[datetime] = None - - -class mapApiKeysRotateBody: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateBody: - return ApiKeysRotateBody( - current_expires_at=datetime.fromisoformat(data.get('current_expires_at').replace('Z', '+00:00')) if data.get('current_expires_at') else None - ) - - @staticmethod - def to_dict(value: Union[ApiKeysRotateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRevealOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/rotate.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/rotate.py similarity index 59% rename from src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/rotate.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/rotate.py index a5d436f0..e817520a 100644 --- a/src/metorial/_generated/src/mt_2025_01_01_dashboard/resources/api_keys/rotate.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/organizations/api_keys/rotate.py @@ -4,7 +4,7 @@ import dataclasses @dataclass -class ApiKeysRotateOutputMachineAccessActorTeams: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: id: str name: str slug: str @@ -12,19 +12,19 @@ class ApiKeysRotateOutputMachineAccessActorTeams: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessActor: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessActor: object: str id: str type: str organization_id: str name: str image_url: str - teams: List[ApiKeysRotateOutputMachineAccessActorTeams] + teams: List[DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams] created_at: datetime updated_at: datetime email: Optional[str] = None @dataclass -class ApiKeysRotateOutputMachineAccessInstanceProject: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: object: str id: str status: str @@ -34,7 +34,7 @@ class ApiKeysRotateOutputMachineAccessInstanceProject: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessInstance: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: object: str id: str slug: str @@ -43,9 +43,9 @@ class ApiKeysRotateOutputMachineAccessInstance: type: str created_at: datetime updated_at: datetime - project: ApiKeysRotateOutputMachineAccessInstanceProject + project: DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject @dataclass -class ApiKeysRotateOutputMachineAccessOrganization: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: object: str id: str type: str @@ -55,7 +55,7 @@ class ApiKeysRotateOutputMachineAccessOrganization: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccessUser: +class DashboardOrganizationsApiKeysRotateOutputMachineAccessUser: object: str id: str status: str @@ -68,7 +68,7 @@ class ApiKeysRotateOutputMachineAccessUser: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRotateOutputMachineAccess: +class DashboardOrganizationsApiKeysRotateOutputMachineAccess: object: str id: str status: str @@ -78,25 +78,20 @@ class ApiKeysRotateOutputMachineAccess: created_at: datetime updated_at: datetime deleted_at: datetime - actor: Optional[ApiKeysRotateOutputMachineAccessActor] = None - instance: Optional[ApiKeysRotateOutputMachineAccessInstance] = None - organization: Optional[ApiKeysRotateOutputMachineAccessOrganization] = None - user: Optional[ApiKeysRotateOutputMachineAccessUser] = None + actor: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessActor] = None + instance: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance] = None + organization: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization] = None + user: Optional[DashboardOrganizationsApiKeysRotateOutputMachineAccessUser] = None @dataclass -class ApiKeysRotateOutputRevealInfo: - until: datetime - forever: bool -@dataclass -class ApiKeysRotateOutput: +class DashboardOrganizationsApiKeysRotateOutput: object: str id: str status: str secret_redacted: str - secret_redacted_long: str type: str name: str ip_filters: List[str] - machine_access: ApiKeysRotateOutputMachineAccess + machine_access: DashboardOrganizationsApiKeysRotateOutputMachineAccess created_at: datetime updated_at: datetime secret: Optional[str] = None @@ -104,13 +99,12 @@ class ApiKeysRotateOutput: deleted_at: Optional[datetime] = None last_used_at: Optional[datetime] = None expires_at: Optional[datetime] = None - reveal_info: Optional[ApiKeysRotateOutputRevealInfo] = None -class mapApiKeysRotateOutputMachineAccessActorTeams: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActorTeams: - return ApiKeysRotateOutputMachineAccessActorTeams( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams( id=data.get('id'), name=data.get('name'), slug=data.get('slug'), @@ -120,17 +114,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActorTeam ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessActorTeams, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams, 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 mapApiKeysRotateOutputMachineAccessActor: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActor: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActor: - return ApiKeysRotateOutputMachineAccessActor( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessActor: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessActor( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -138,23 +132,23 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessActor: name=data.get('name'), email=data.get('email'), image_url=data.get('image_url'), - teams=[mapApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + teams=[mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessActor, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessActor, 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 mapApiKeysRotateOutputMachineAccessInstanceProject: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstanceProject: - return ApiKeysRotateOutputMachineAccessInstanceProject( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -166,17 +160,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstanceP ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessInstanceProject, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject, 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 mapApiKeysRotateOutputMachineAccessInstance: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstance: - return ApiKeysRotateOutputMachineAccessInstance( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance( object=data.get('object'), id=data.get('id'), slug=data.get('slug'), @@ -185,21 +179,21 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessInstance: type=data.get('type'), 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, - project=mapApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + project=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessInstance, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessInstance, 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 mapApiKeysRotateOutputMachineAccessOrganization: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessOrganization: - return ApiKeysRotateOutputMachineAccessOrganization( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -211,17 +205,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessOrganizat ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessOrganization, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization, 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 mapApiKeysRotateOutputMachineAccessUser: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccessUser: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessUser: - return ApiKeysRotateOutputMachineAccessUser( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccessUser: + return DashboardOrganizationsApiKeysRotateOutputMachineAccessUser( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -236,17 +230,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccessUser: ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccessUser, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccessUser, 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 mapApiKeysRotateOutputMachineAccess: +class mapDashboardOrganizationsApiKeysRotateOutputMachineAccess: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccess: - return ApiKeysRotateOutputMachineAccess( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutputMachineAccess: + return DashboardOrganizationsApiKeysRotateOutputMachineAccess( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -256,61 +250,43 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputMachineAccess: 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, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, - actor=mapApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, - instance=mapApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, - organization=mapApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, - user=mapApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + actor=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapDashboardOrganizationsApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputMachineAccess, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutputMachineAccess, 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 mapApiKeysRotateOutputRevealInfo: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutputRevealInfo: - return ApiKeysRotateOutputRevealInfo( - until=datetime.fromisoformat(data.get('until').replace('Z', '+00:00')) if data.get('until') else None, - forever=data.get('forever') - ) - +class mapDashboardOrganizationsApiKeysRotateOutput: @staticmethod - def to_dict(value: Union[ApiKeysRotateOutputRevealInfo, 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 mapApiKeysRotateOutput: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateOutput: - return ApiKeysRotateOutput( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateOutput: + return DashboardOrganizationsApiKeysRotateOutput( object=data.get('object'), id=data.get('id'), status=data.get('status'), secret_redacted=data.get('secret_redacted'), - secret_redacted_long=data.get('secret_redacted_long'), secret=data.get('secret'), type=data.get('type'), name=data.get('name'), description=data.get('description'), ip_filters=data.get('ip_filters', []), - machine_access=mapApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + machine_access=mapDashboardOrganizationsApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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, - reveal_info=mapApiKeysRotateOutputRevealInfo.from_dict(data.get('reveal_info')) if data.get('reveal_info') 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[ApiKeysRotateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): @@ -319,19 +295,19 @@ def to_dict(value: Union[ApiKeysRotateOutput, Dict[str, Any], None]) -> Optional return dataclasses.asdict(value) @dataclass -class ApiKeysRotateBody: +class DashboardOrganizationsApiKeysRotateBody: current_expires_at: Optional[datetime] = None -class mapApiKeysRotateBody: +class mapDashboardOrganizationsApiKeysRotateBody: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRotateBody: - return ApiKeysRotateBody( + def from_dict(data: Dict[str, Any]) -> DashboardOrganizationsApiKeysRotateBody: + return DashboardOrganizationsApiKeysRotateBody( current_expires_at=datetime.fromisoformat(data.get('current_expires_at').replace('Z', '+00:00')) if data.get('current_expires_at') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRotateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardOrganizationsApiKeysRotateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): 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 263538d6..cb940831 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 @@ -36,7 +36,7 @@ def to_dict(value: Union[ManagementInstanceConsumersGetMemberConsumerOutput, Dic @dataclass class ManagementInstanceConsumersGetMemberConsumerBody: - surface_identifier: str + surface_identifier: Optional[str] = None class mapManagementInstanceConsumersGetMemberConsumerBody: diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/__init__.py index 2764f766..0b0a21d3 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/__init__.py @@ -1,5 +1,7 @@ from .create import * from .get import * from .list import * +from .reveal import * from .revoke import * +from .rotate import * from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/reveal.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/reveal.py similarity index 59% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/reveal.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/reveal.py index 1f7d3737..f7c72c60 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/api_keys/reveal.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/reveal.py @@ -4,7 +4,7 @@ import dataclasses @dataclass -class ApiKeysRevealOutputMachineAccessActorTeams: +class ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: id: str name: str slug: str @@ -12,19 +12,19 @@ class ApiKeysRevealOutputMachineAccessActorTeams: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessActor: +class ManagementOrganizationApiKeysRevealOutputMachineAccessActor: object: str id: str type: str organization_id: str name: str image_url: str - teams: List[ApiKeysRevealOutputMachineAccessActorTeams] + teams: List[ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams] created_at: datetime updated_at: datetime email: Optional[str] = None @dataclass -class ApiKeysRevealOutputMachineAccessInstanceProject: +class ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: object: str id: str status: str @@ -34,7 +34,7 @@ class ApiKeysRevealOutputMachineAccessInstanceProject: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessInstance: +class ManagementOrganizationApiKeysRevealOutputMachineAccessInstance: object: str id: str slug: str @@ -43,9 +43,9 @@ class ApiKeysRevealOutputMachineAccessInstance: type: str created_at: datetime updated_at: datetime - project: ApiKeysRevealOutputMachineAccessInstanceProject + project: ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject @dataclass -class ApiKeysRevealOutputMachineAccessOrganization: +class ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: object: str id: str type: str @@ -55,7 +55,7 @@ class ApiKeysRevealOutputMachineAccessOrganization: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccessUser: +class ManagementOrganizationApiKeysRevealOutputMachineAccessUser: object: str id: str status: str @@ -68,7 +68,7 @@ class ApiKeysRevealOutputMachineAccessUser: created_at: datetime updated_at: datetime @dataclass -class ApiKeysRevealOutputMachineAccess: +class ManagementOrganizationApiKeysRevealOutputMachineAccess: object: str id: str status: str @@ -78,12 +78,12 @@ class ApiKeysRevealOutputMachineAccess: created_at: datetime updated_at: datetime deleted_at: datetime - actor: Optional[ApiKeysRevealOutputMachineAccessActor] = None - instance: Optional[ApiKeysRevealOutputMachineAccessInstance] = None - organization: Optional[ApiKeysRevealOutputMachineAccessOrganization] = None - user: Optional[ApiKeysRevealOutputMachineAccessUser] = None + actor: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessActor] = None + instance: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessInstance] = None + organization: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization] = None + user: Optional[ManagementOrganizationApiKeysRevealOutputMachineAccessUser] = None @dataclass -class ApiKeysRevealOutput: +class ManagementOrganizationApiKeysRevealOutput: object: str id: str status: str @@ -91,7 +91,7 @@ class ApiKeysRevealOutput: type: str name: str ip_filters: List[str] - machine_access: ApiKeysRevealOutputMachineAccess + machine_access: ManagementOrganizationApiKeysRevealOutputMachineAccess created_at: datetime updated_at: datetime secret: Optional[str] = None @@ -101,10 +101,10 @@ class ApiKeysRevealOutput: expires_at: Optional[datetime] = None -class mapApiKeysRevealOutputMachineAccessActorTeams: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActorTeams: - return ApiKeysRevealOutputMachineAccessActorTeams( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams: + return ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams( id=data.get('id'), name=data.get('name'), slug=data.get('slug'), @@ -114,17 +114,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActorTeam ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessActorTeams, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams, 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 mapApiKeysRevealOutputMachineAccessActor: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessActor: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActor: - return ApiKeysRevealOutputMachineAccessActor( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessActor: + return ManagementOrganizationApiKeysRevealOutputMachineAccessActor( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -132,23 +132,23 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessActor: name=data.get('name'), email=data.get('email'), image_url=data.get('image_url'), - teams=[mapApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + teams=[mapManagementOrganizationApiKeysRevealOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessActor, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessActor, 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 mapApiKeysRevealOutputMachineAccessInstanceProject: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstanceProject: - return ApiKeysRevealOutputMachineAccessInstanceProject( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject: + return ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -160,17 +160,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstanceP ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessInstanceProject, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject, 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 mapApiKeysRevealOutputMachineAccessInstance: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessInstance: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstance: - return ApiKeysRevealOutputMachineAccessInstance( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessInstance: + return ManagementOrganizationApiKeysRevealOutputMachineAccessInstance( object=data.get('object'), id=data.get('id'), slug=data.get('slug'), @@ -179,21 +179,21 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessInstance: type=data.get('type'), 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, - project=mapApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + project=mapManagementOrganizationApiKeysRevealOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessInstance, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessInstance, 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 mapApiKeysRevealOutputMachineAccessOrganization: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessOrganization: - return ApiKeysRevealOutputMachineAccessOrganization( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization: + return ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization( object=data.get('object'), id=data.get('id'), type=data.get('type'), @@ -205,17 +205,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessOrganizat ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessOrganization, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessOrganization, 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 mapApiKeysRevealOutputMachineAccessUser: +class mapManagementOrganizationApiKeysRevealOutputMachineAccessUser: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessUser: - return ApiKeysRevealOutputMachineAccessUser( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccessUser: + return ManagementOrganizationApiKeysRevealOutputMachineAccessUser( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -230,17 +230,17 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccessUser: ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccessUser, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccessUser, 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 mapApiKeysRevealOutputMachineAccess: +class mapManagementOrganizationApiKeysRevealOutputMachineAccess: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccess: - return ApiKeysRevealOutputMachineAccess( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutputMachineAccess: + return ManagementOrganizationApiKeysRevealOutputMachineAccess( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -250,24 +250,24 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutputMachineAccess: 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, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, - actor=mapApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, - instance=mapApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, - organization=mapApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, - user=mapApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + actor=mapManagementOrganizationApiKeysRevealOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapManagementOrganizationApiKeysRevealOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapManagementOrganizationApiKeysRevealOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapManagementOrganizationApiKeysRevealOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutputMachineAccess, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutputMachineAccess, 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 mapApiKeysRevealOutput: +class mapManagementOrganizationApiKeysRevealOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutput: - return ApiKeysRevealOutput( + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRevealOutput: + return ManagementOrganizationApiKeysRevealOutput( object=data.get('object'), id=data.get('id'), status=data.get('status'), @@ -277,7 +277,7 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutput: name=data.get('name'), description=data.get('description'), ip_filters=data.get('ip_filters', []), - machine_access=mapApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + machine_access=mapManagementOrganizationApiKeysRevealOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_at') else None, @@ -286,7 +286,7 @@ def from_dict(data: Dict[str, Any]) -> ApiKeysRevealOutput: ) @staticmethod - def to_dict(value: Union[ApiKeysRevealOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementOrganizationApiKeysRevealOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/rotate.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/rotate.py new file mode 100644 index 00000000..9685524c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/organization/api_keys/rotate.py @@ -0,0 +1,317 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + id: str + name: str + slug: str + assignment_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessActor: + object: str + id: str + type: str + organization_id: str + name: str + image_url: str + teams: List[ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams] + created_at: datetime + updated_at: datetime + email: Optional[str] = None +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + object: str + id: str + status: str + slug: str + name: str + organization_id: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + object: str + id: str + slug: str + name: str + organization_id: str + type: str + created_at: datetime + updated_at: datetime + project: ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + object: str + id: str + type: str + slug: str + name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccessUser: + object: str + id: str + status: str + type: str + email: str + name: str + first_name: str + last_name: str + image_url: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementOrganizationApiKeysRotateOutputMachineAccess: + object: str + id: str + status: str + type: str + name: str + last_used_at: datetime + created_at: datetime + updated_at: datetime + deleted_at: datetime + actor: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessActor] = None + instance: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessInstance] = None + organization: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization] = None + user: Optional[ManagementOrganizationApiKeysRotateOutputMachineAccessUser] = None +@dataclass +class ManagementOrganizationApiKeysRotateOutput: + object: str + id: str + status: str + secret_redacted: str + type: str + name: str + ip_filters: List[str] + machine_access: ManagementOrganizationApiKeysRotateOutputMachineAccess + created_at: datetime + updated_at: datetime + secret: Optional[str] = None + description: Optional[str] = None + deleted_at: Optional[datetime] = None + last_used_at: Optional[datetime] = None + expires_at: Optional[datetime] = None + + +class mapManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams: + return ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams( + id=data.get('id'), + name=data.get('name'), + slug=data.get('slug'), + assignment_id=data.get('assignment_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessActor: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessActor: + return ManagementOrganizationApiKeysRotateOutputMachineAccessActor( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + organization_id=data.get('organization_id'), + name=data.get('name'), + email=data.get('email'), + image_url=data.get('image_url'), + teams=[mapManagementOrganizationApiKeysRotateOutputMachineAccessActorTeams.from_dict(item) for item in data.get('teams', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessActor, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject: + return ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessInstance: + return ManagementOrganizationApiKeysRotateOutputMachineAccessInstance( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + organization_id=data.get('organization_id'), + type=data.get('type'), + 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, + project=mapManagementOrganizationApiKeysRotateOutputMachineAccessInstanceProject.from_dict(data.get('project')) if data.get('project') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccessInstance, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization: + return ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization( + object=data.get('object'), + id=data.get('id'), + type=data.get('type'), + slug=data.get('slug'), + name=data.get('name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRotateOutputMachineAccessOrganization, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccessUser: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccessUser: + return ManagementOrganizationApiKeysRotateOutputMachineAccessUser( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + email=data.get('email'), + name=data.get('name'), + first_name=data.get('first_name'), + last_name=data.get('last_name'), + image_url=data.get('image_url'), + 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[ManagementOrganizationApiKeysRotateOutputMachineAccessUser, 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 mapManagementOrganizationApiKeysRotateOutputMachineAccess: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutputMachineAccess: + return ManagementOrganizationApiKeysRotateOutputMachineAccess( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + type=data.get('type'), + name=data.get('name'), + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_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, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + actor=mapManagementOrganizationApiKeysRotateOutputMachineAccessActor.from_dict(data.get('actor')) if data.get('actor') else None, + instance=mapManagementOrganizationApiKeysRotateOutputMachineAccessInstance.from_dict(data.get('instance')) if data.get('instance') else None, + organization=mapManagementOrganizationApiKeysRotateOutputMachineAccessOrganization.from_dict(data.get('organization')) if data.get('organization') else None, + user=mapManagementOrganizationApiKeysRotateOutputMachineAccessUser.from_dict(data.get('user')) if data.get('user') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateOutputMachineAccess, 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 mapManagementOrganizationApiKeysRotateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateOutput: + return ManagementOrganizationApiKeysRotateOutput( + object=data.get('object'), + id=data.get('id'), + status=data.get('status'), + secret_redacted=data.get('secret_redacted'), + secret=data.get('secret'), + type=data.get('type'), + name=data.get('name'), + description=data.get('description'), + ip_filters=data.get('ip_filters', []), + machine_access=mapManagementOrganizationApiKeysRotateOutputMachineAccess.from_dict(data.get('machine_access')) if data.get('machine_access') else None, + deleted_at=datetime.fromisoformat(data.get('deleted_at').replace('Z', '+00:00')) if data.get('deleted_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None, + expires_at=datetime.fromisoformat(data.get('expires_at').replace('Z', '+00:00')) if data.get('expires_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[ManagementOrganizationApiKeysRotateOutput, 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 ManagementOrganizationApiKeysRotateBody: + current_expires_at: Optional[datetime] = None + + +class mapManagementOrganizationApiKeysRotateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementOrganizationApiKeysRotateBody: + return ManagementOrganizationApiKeysRotateBody( + current_expires_at=datetime.fromisoformat(data.get('current_expires_at').replace('Z', '+00:00')) if data.get('current_expires_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementOrganizationApiKeysRotateBody, 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) +