docs: def join_swarm(self, remote_addrs, join_token, listen_addr='0.0.0.0:2377',
                     advertise_addr=None):
          """
          Make this Engine join a swarm that has already been created.
  
          Args:
              remote_addrs (:py:class:`list`): Addresses of one or more manager
                  nodes already participating in the Swarm to join.
              join_token (string): Secret token for joining this Swarm.
              listen_addr (string): Listen address used for inter-manager
                  communication if the node gets promoted to manager, as well as
                  determining the networking interface used for the VXLAN Tunnel
                  Endpoint (VTEP). Default: ``'0.0.0.0:2377``
              advertise_addr (string): Externally reachable address advertised
                  to other nodes. This can either be an address/port combination
                  in the form ``192.168.1.1:4567``, or an interface followed by a
                  port number, like ``eth0:4567``. If the port number is omitted,
                  the port number from the listen address is used. If
                  AdvertiseAddr is not specified, it will be automatically
                  detected when possible. Default: ``None``
  
          Returns:
              ``True`` if the request went through.
  
          Raises:
              :py:class:`docker.errors.APIError`
                  If the server returns an error.
          """
          data = {
              "RemoteAddrs": remote_addrs,
              "ListenAddr": listen_addr,
              "JoinToken": join_token,
              "AdvertiseAddr": advertise_addr,
          }
          url = self._url('/swarm/join')
          response = self._post_json(url, data=data)
          self._raise_for_status(response)
          return True