def direct_media_share(
        self,
        media_id: str,
        user_ids: List[int],
        send_attribute: SEND_ATTRIBUTES_MEDIA = "feed_timeline",
        media_type: str = "photo",
    ) -> DirectMessage:
        """
        Share a media to list of users

        Parameters
        ----------
        media_id: str
            Unique Media ID
        user_ids: List[int]
            List of unique identifier of Users id
        send_attribute: str, optional
            Sending option. Default is "feed_timeline"
        media_type: str, optional
            Type of the shared media. Default is "photo", also can be "video"

        Returns
        -------
        DirectMessage
            An object of DirectMessage
        """
        assert self.user_id, "Login required"
        token = self.generate_mutation_token()
        media_id = self.media_id(media_id)
        recipient_users = dumps([[int(uid) for uid in user_ids]])
        kwargs = {
            "recipient_users": recipient_users,
            "action": "send_item",
            "is_shh_mode": "0",
            "send_attribution": send_attribute,
            "client_context": token,
            "media_id": media_id,
            "device_id": self.android_device_id,
            "mutation_token": token,
            "_uuid": self.uuid,
            "btt_dual_send": "false",
            "nav_chain": (
                "1qT:feed_timeline:1,1qT:feed_timeline:2,1qT:feed_timeline:3,"
                "7Az:direct_inbox:4,7Az:direct_inbox:5,5rG:direct_thread:7"
            ),
            "is_ae_dual_send": "false",
            "offline_threading_id": token,
        }
        if send_attribute in ["feed_contextual_chain", "feed_short_url"]:
            kwargs["inventory_source"] = "recommended_explore_grid_cover_model"
        if send_attribute == "feed_timeline":
            kwargs["inventory_source"] = "media_or_ad"

        result = self.private_request(
            "direct_v2/threads/broadcast/media_share/",
            params={"media_type": media_type},
            data=self.with_default_data(kwargs),
            with_signature=False,
        )
        assert result.get("status", "") == "ok"

        return extract_direct_message(result["payload"])

        Share a media to list of users

        Parameters
        ----------
        media_id: str
            Unique Media ID
        user_ids: List[int]
            List of unique identifier of Users id
        send_attribute: str, optional
            Sending option. Default is "feed_timeline"
        media_type: str, optional
            Type of the shared media. Default is "photo", also can be "video"

        Returns
        -------
        DirectMessage
            An object of DirectMessage
        
instagrapi/mixins/direct.py