code: def server_update(
      endpoint_id,
      server_id,
      subject,
      port,
      scheme,
      hostname,
      incoming_data_ports,
      outgoing_data_ports,
  ):
      
      client = get_client()
  
      server_doc = assemble_generic_doc(
          "server", subject=subject, port=port, scheme=scheme, hostname=hostname
      )
  
      # n.b. must be done after assemble_generic_doc(), as that function filters
      # out `None`s, which we need to be able to set for `'unspecified'`
      if incoming_data_ports:
          server_doc.update(
              incoming_data_port_start=incoming_data_ports[0],
              incoming_data_port_end=incoming_data_ports[1],
          )
      if outgoing_data_ports:
          server_doc.update(
              outgoing_data_port_start=outgoing_data_ports[0],
              outgoing_data_port_end=outgoing_data_ports[1],
          )
  
      res = client.update_endpoint_server(endpoint_id, server_id, server_doc)
      formatted_print(res, text_format=FORMAT_TEXT_RAW, response_key="message")
docs: Executor for `globus endpoint server update`