docs: def _put_options(self, options_list):
          """Save the options to KE-chain.
  
          Makes a single API call.
  
          :param options_list: list of options to set.
          :raises APIError: when unable to update the options
          """
          new_options = self._options.copy()  # make a full copy of the dict not to only link it and update dict in place
          new_options.update({"value_choices": options_list})
          validate(new_options, options_json_schema)
  
          url = self._client._build_url('property', property_id=self.id)
          response = self._client._request('PUT', url, json={'options': new_options})
  
          if response.status_code != 200:  # pragma: no cover
              raise APIError("Could not update property value. Response: {}".format(str(response)))
          else:
              self._options = new_options