code: 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]:
          
          # 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]
docs: 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]