class_docstr: Interact with ServiceBusClient.
  
  This acts as a high level interface for getting ServiceBusSender and ServiceBusReceiver.
class_docstr_tok: ["Interact","with","ServiceBusClient",".","This","acts","as","a","high","level","interface","for","getting","ServiceBusSender","and","ServiceBusReceiver","."]
docstr: Use ServiceBusClient Send to send message(s) to a Service Bus Queue.
  
  By using ``batch_message_flag``, it enables and send message as batch message.
  
  :param queue_name: The name of the queue or a QueueProperties with name.
  :param messages: Message which needs to be sent to the queue. It can be string or list of string.
  :param batch_message_flag: bool flag, can be set to True if message needs to be
      sent as batch message.
docstr_tok: ["Use","ServiceBusClient","Send","to","send","message","(","s",")","to","a","Service","Bus","Queue",".","By","using","``","batch_message_flag","``",",","it","enables","and","send","message","as","batch","message",".",":","param","queue_name",":","The","name","of","the","queue","or","a","QueueProperties","with","name",".",":","param","messages",":","Message","which","needs","to","be","sent","to","the","queue",".","It","can","be","string","or","list","of","string",".",":","param","batch_message_flag",":","bool","flag",",","can","be","set","to","True","if","message","needs","to","be","sent","as","batch","message","."]
code: def send_message(
      self,
      queue_name: str,
      messages: str | list[str],
      batch_message_flag: bool = False,
  ):
      """Use ServiceBusClient Send to send message(s) to a Service Bus Queue.
  
      By using ``batch_message_flag``, it enables and send message as batch message.
  
      :param queue_name: The name of the queue or a QueueProperties with name.
      :param messages: Message which needs to be sent to the queue. It can be string or list of string.
      :param batch_message_flag: bool flag, can be set to True if message needs to be
          sent as batch message.
      """
      if queue_name is None:
          raise TypeError("Queue name cannot be None.")
      if not messages:
          raise ValueError("Messages list cannot be empty.")
      with self.get_conn() as service_bus_client, service_bus_client.get_queue_sender(
          queue_name=queue_name
      ) as sender, sender:
          if isinstance(messages, str):
              if not batch_message_flag:
                  msg = ServiceBusMessage(messages)
                  sender.send_messages(msg)
              else:
                  self.send_batch_message(sender, [messages])
          else:
              if not batch_message_flag:
                  self.send_list_messages(sender, messages)
              else:
                  self.send_batch_message(sender, messages)
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any
  from azure.servicebus import ServiceBusClient, ServiceBusMessage, ServiceBusSender
  from azure.servicebus.management import QueueProperties, ServiceBusAdministrationClient
  from airflow.hooks.base import BaseHook
  from airflow.providers.microsoft.azure.utils import add_managed_identity_connection_widgets, get_field, get_sync_default_azure_credential
label_desc: Use image node_id 2 for calling the MessageHook obj's underlying member method code with example usage: obj.send_message(queue_name, messages, batch_message_flag) without return types