code: def edit(self, name=None, description=None, version=None, **kwargs):
          update_dict = {'id': self.id}
          if name:
              if not isinstance(name, str):
                  raise IllegalArgumentError("name should be provided as a string")
              update_dict.update({'name': name})
          if description:
              if not isinstance(description, str):
                  raise IllegalArgumentError("description should be provided as a string")
              update_dict.update({'description': description})
          if version:
              if not isinstance(version, str):
                  raise IllegalArgumentError("description should be provided as a string")
              update_dict.update({'script_version': version})
          if kwargs:
              update_dict.update(**kwargs)
          response = self._client._request('PUT',
                                           self._client._build_url('service', service_id=self.id), json=update_dict)
          if response.status_code != requests.codes.ok:
              raise APIError("Could not update Service ({})".format(response))
          if name:
              self.name = name
          if version:
              self.version = version