code: def create_data_link_subscription(self, instance, on_data=None, timeout=60):
          
          manager = WebSocketSubscriptionManager(self, resource='links')
  
          # Represent subscription as a future
          subscription = DataLinkSubscription(manager)
  
          wrapped_callback = functools.partial(
              _wrap_callback_parse_link_event, subscription, on_data)
  
          manager.open(wrapped_callback, instance)
  
          # Wait until a reply or exception is received
          subscription.reply(timeout=timeout)
  
          return subscription
docs: Create a new subscription for receiving data link updates of an instance.
  
          This method returns a future, then returns immediately. Stop the
          subscription by canceling the future.
  
          :param str instance: A Yamcs instance name.
  
          :param on_data: Function that gets called with
                          :class:`.LinkEvent` updates.
          :type on_data: Optional[Callable[.LinkEvent])
  
          :param timeout: The amount of seconds to wait for the request to
                          complete.
          :type timeout: Optional[float]
  
          :return: Future that can be used to manage the background websocket
                   subscription.
          :rtype: .DataLinkSubscription