async def send(
            self,
            from_phone_number,  # type: ~azure.communication.sms.PhoneNumber
            to_phone_numbers,  # type: list[~azure.communication.sms.PhoneNumber]
            message,  # type: str
            **kwargs  # type: Any
    ):  # type: (...) -> SendSmsResponse
        """Sends SMSs to phone numbers.

        :param from_phone_number: the sender of the SMS.
        :type from_phone_number: ~azure.communication.sms.PhoneNumber
        :param to_phone_numbers: the list of recipients of the SMS.
        :type to_phone_numbers: list[~azure.communication.sms.PhoneNumber]
        :param str message: The message in the SMS
        :keyword send_sms_options: the options object to configure delivery reporting.
        :type send_sms_options: ~azure.communication.sms.models.SendSmsOptions
        :return: The response object with the message_id
        :rtype: SendMessageResponse: ~azure.communication.sms.models.SendMessageResponse
        """

        send_sms_options = kwargs.pop('send_sms_options', None)

        request = SendMessageRequest(from_property=from_phone_number,
                                     to=to_phone_numbers,
                                     message=message,
                                     send_sms_options=send_sms_options,
                                     **kwargs)

        return await self._sms_service_client.sms.send(request, **kwargs)
    async def send(self, from_, # type: str
             to, # type: Union[str, List[str]]
             message, # type: str
             **kwargs # type: Any
             ): # type: (...) -> [SmsSendResult]
        """Sends SMSs to phone numbers.

        :param str from_: The sender of the SMS.
        :param to: The single recipient or the list of recipients of the SMS.
        :type to: Union[str, List[str]]
        :param str message: The message in the SMS
        :keyword bool enable_delivery_report: Enable this flag to receive a delivery report for this
         message on the Azure Resource EventGrid.
        :keyword str tag: Use this field to provide metadata that will then be sent back in the corresponding
         Delivery Report.
        :return: A list of SmsSendResult.
        :rtype: [~azure.communication.sms.models.SmsSendResult]
        """

        if isinstance(to, str):
            to = [to]

        enable_delivery_report = kwargs.pop('enable_delivery_report', False)
        tag = kwargs.pop('tag', None)

        sms_send_options = SmsSendOptions(
            enable_delivery_report=enable_delivery_report,
            tag=tag
        )

        request = SendMessageRequest(
            from_property=from_,
            sms_recipients=[
                SmsRecipient(
                    to=p,
                    repeatability_request_id=str(uuid4()),
                    repeatability_first_sent=datetime.utcnow()
                ) for p in to
            ],
            message=message,
            sms_send_options=sms_send_options,
            **kwargs)

        return await self._sms_service_client.sms.send(
            request,
            cls=lambda pr, r, e: [
                SmsSendResult(
                    to=item.to,
                    message_id=item.message_id,
                    http_status_code=item.http_status_code,
                    successful=item.successful,
                    error_message=item.error_message
                ) for item in r.value
            ],
            **kwargs)