async def send_media_group(self, chat_id: typing.Union[base.Integer, base.String],
                               media: typing.Union[types.MediaGroup, typing.List],
                               disable_notification: typing.Union[base.Boolean, None] = None,
                               reply_to_message_id: typing.Union[base.Integer,
                                                                 None] = None) -> typing.List[types.Message]:
        """
        Use this method to send a group of photos or videos as an album.

        Source: https://core.telegram.org/bots/api#sendmediagroup

        :param chat_id: Unique identifier for the target chat or username of the target channel
        :type chat_id: :obj:`typing.Union[base.Integer, base.String]`
        :param media: A JSON-serialized array describing photos and videos to be sent
        :type media: :obj:`typing.Union[types.MediaGroup, typing.List]`
        :param disable_notification: Sends the message silently. Users will receive a notification with no sound
        :type disable_notification: :obj:`typing.Union[base.Boolean, None]`
        :param reply_to_message_id: If the message is a reply, ID of the original message
        :type reply_to_message_id: :obj:`typing.Union[base.Integer, None]`
        :return: On success, an array of the sent Messages is returned
        :rtype: typing.List[types.Message]
        """
        # Convert list to MediaGroup
        if isinstance(media, list):
            media = types.MediaGroup(media)

        files = dict(media.get_files())

        media = prepare_arg(media)
        payload = generate_payload(**locals(), exclude=['files'])

        result = await self.request(api.Methods.SEND_MEDIA_GROUP, payload, files)
        return [types.Message(**message) for message in result]
Use this method to send a group of photos or videos as an album.

        Source: https://core.telegram.org/bots/api#sendmediagroup

        :param chat_id: Unique identifier for the target chat or username of the target channel
        :type chat_id: :obj:`typing.Union[base.Integer, base.String]`
        :param media: A JSON-serialized array describing photos and videos to be sent
        :type media: :obj:`typing.Union[types.MediaGroup, typing.List]`
        :param disable_notification: Sends the message silently. Users will receive a notification with no sound
        :type disable_notification: :obj:`typing.Union[base.Boolean, None]`
        :param reply_to_message_id: If the message is a reply, ID of the original message
        :type reply_to_message_id: :obj:`typing.Union[base.Integer, None]`
        :return: On success, an array of the sent Messages is returned
        :rtype: typing.List[types.Message]