# ---------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# ---------------------------------------------------------
from typing import Any
from azure.ai.ml._restclient.v2022_10_01.models import SystemData as RestSystemData
from azure.ai.ml.entities._mixins import RestTranslatableMixin
[docs]
class SystemData(RestTranslatableMixin):
"""Metadata related to the creation and most recent modification of a resource.
:ivar created_by: The identity that created the resource.
:vartype created_by: str
:ivar created_by_type: The type of identity that created the resource. Possible values include:
"User", "Application", "ManagedIdentity", "Key".
:vartype created_by_type: str or ~azure.ai.ml.entities.CreatedByType
:ivar created_at: The timestamp of resource creation (UTC).
:vartype created_at: ~datetime.datetime
:ivar last_modified_by: The identity that last modified the resource.
:vartype last_modified_by: str
:ivar last_modified_by_type: The type of identity that last modified the resource. Possible
values include: "User", "Application", "ManagedIdentity", "Key".
:vartype last_modified_by_type: str or ~azure.ai.ml.entities.CreatedByType
:ivar last_modified_at: The timestamp of resource last modification (UTC).
:vartype last_modified_at: ~datetime.datetime
:keyword created_by: The identity that created the resource.
:paramtype created_by: str
:keyword created_by_type: The type of identity that created the resource. Accepted values are
"User", "Application", "ManagedIdentity", "Key".
:paramtype created_by_type: Union[str, ~azure.ai.ml.entities.CreatedByType]
:keyword created_at: The timestamp of resource creation (UTC).
:paramtype created_at: datetime
:keyword last_modified_by: The identity that last modified the resource.
:paramtype last_modified_by: str
:keyword last_modified_by_type: The type of identity that last modified the resource. Accepted values are
"User", "Application", "ManagedIdentity", "Key".
:paramtype last_modified_by_type: Union[str, ~azure.ai.ml.entities.CreatedByType]
:keyword last_modified_at: The timestamp of resource last modification in UTC.
:paramtype last_modified_at: datetime
"""
def __init__(self, **kwargs: Any) -> None:
self.created_by = kwargs.get("created_by", None)
self.created_by_type = kwargs.get("created_by_type", None)
self.created_at = kwargs.get("created_at", None)
self.last_modified_by = kwargs.get("last_modified_by", None)
self.last_modified_by_type = kwargs.get("last_modified_by_type", None)
self.last_modified_at = kwargs.get("last_modified_at", None)
@classmethod
def _from_rest_object(cls, obj: RestSystemData) -> "SystemData":
return cls(
created_by=obj.created_by,
created_at=obj.created_at,
created_by_type=obj.created_by_type,
last_modified_by=obj.last_modified_by,
last_modified_by_type=obj.last_modified_by_type,
last_modified_at=obj.last_modified_at,
)
def _to_rest_object(self) -> RestSystemData:
return RestSystemData(
created_by=self.created_by,
created_at=self.created_at,
created_by_type=self.created_by_type,
last_modified_by=self.last_modified_by,
last_modified_by_type=self.last_modified_by_type,
last_modified_at=self.last_modified_at,
)
def _to_dict(self) -> dict:
from azure.ai.ml._schema.job.creation_context import CreationContextSchema
return CreationContextSchema().dump(self) # pylint: disable=no-member