def create_from_discriminator_value(parse_node: ParseNode) -> DeviceAndAppManagementAssignmentTarget:
        """
        Creates a new instance of the appropriate class based on discriminator value
        param parse_node: The parse node to use to read the discriminator value and create the object
        Returns: DeviceAndAppManagementAssignmentTarget
        """
        if parse_node is None:
            raise TypeError("parse_node cannot be null.")
        try:
            child_node = parse_node.get_child_node("@odata.type")
            mapping_value = child_node.get_str_value() if child_node else None
        except AttributeError:
            mapping_value = None
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.allDevicesAssignmentTarget".casefold():
            from .all_devices_assignment_target import AllDevicesAssignmentTarget

            return AllDevicesAssignmentTarget()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.allLicensedUsersAssignmentTarget".casefold():
            from .all_licensed_users_assignment_target import AllLicensedUsersAssignmentTarget

            return AllLicensedUsersAssignmentTarget()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.configurationManagerCollectionAssignmentTarget".casefold():
            from .configuration_manager_collection_assignment_target import ConfigurationManagerCollectionAssignmentTarget

            return ConfigurationManagerCollectionAssignmentTarget()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.exclusionGroupAssignmentTarget".casefold():
            from .exclusion_group_assignment_target import ExclusionGroupAssignmentTarget

            return ExclusionGroupAssignmentTarget()
        if mapping_value and mapping_value.casefold() == "#microsoft.graph.groupAssignmentTarget".casefold():
            from .group_assignment_target import GroupAssignmentTarget

            return GroupAssignmentTarget()
        return DeviceAndAppManagementAssignmentTarget()

        Creates a new instance of the appropriate class based on discriminator value
        param parse_node: The parse node to use to read the discriminator value and create the object
        Returns: DeviceAndAppManagementAssignmentTarget
        
msgraph/generated/models/device_and_app_management_assignment_target.py