docs: def update_space(self, space_key, space_definition, callback=None):
          """
          Updates a Space.
  
          Currently only the Space name, description and homepage can be updated.
          :param space_key (string): The key of the space to update.
          :param space_definition (dict): The dictionary describing the updated space metadata. This should include
                                          "key", "name" and "description".
          :param callback: OPTIONAL: The callback to execute on the resulting data, before the method returns.
                           Default: None (no callback, raw data returned).
          :return: The JSON data returned from the space/{key} endpoint,
                   or the results of the callback. Will raise requests.HTTPError on bad input, potentially.
  
          Example updated space definition:
          {
              "key": "TST",
              "name": "Example space",
              "description": {
                  "plain": {
                      "value": "This is an example space",
                      "representation": "plain"
                  }
              }
          }
          """
          assert isinstance(space_definition, dict) and {"key", "name", "description"} <= set(space_definition.keys())
          return self._service_put_request("rest/api/space/{key}".format(key=space_key),
                                           data=json.dumps(space_definition),
                                           headers={"Content-Type": "application/json"}, callback=callback)