docs: def bucket_update(self, name, current, bucket_password=None, replicas=None,
                        ram_quota=None, flush_enabled=None):
          """
          Update an existing bucket's settings.
  
          :param string name: The name of the bucket to update
          :param dict current: Current state of the bucket.
              This can be retrieve from :meth:`bucket_info`
          :param str bucket_password: Change the bucket's password
          :param int replicas: The number of replicas for the bucket
          :param int ram_quota: The memory available to the bucket
              on each node.
          :param bool flush_enabled: Whether the flush API should be allowed
              from normal clients
          :return: A :class:`~.HttpResult` object
          :raise: :exc:`~.HTTPError` if the request could not be
              completed
  
  
          .. note::
  
              The default value for all options in this method is
              ``None``. If a value is set to something else, it will
              modify the setting.
  
  
          Change the bucket password::
  
              adm.bucket_update('a_bucket', adm.bucket_info('a_bucket'),
                                bucket_password='n3wpassw0rd')
  
          Enable the flush API::
  
              adm.bucket_update('a_bucket', adm.bucket_info('a_bucket'),
                                flush_enabled=True)
          """
          params = {}
          current = current.value
  
          # Merge params
          params['authType'] = current['authType']
          if 'saslPassword' in current:
              params['saslPassword'] = current['saslPassword']
  
          if bucket_password is not None:
              params['authType'] = 'sasl'
              params['saslPassword'] = bucket_password
  
          params['replicaNumber'] = (
              replicas if replicas is not None else current['replicaNumber'])
  
          if ram_quota:
              params['ramQuotaMB'] = ram_quota
          else:
              params['ramQuotaMB'] = current['quota']['ram'] / 1024 / 1024
  
          if flush_enabled is not None:
              params['flushEnabled'] = int(flush_enabled)
  
          params['proxyPort'] = current['proxyPort']
          return self.http_request(path='/pools/default/buckets/' + name,
                                   method='POST',
                                   content_type='application/x-www-form-urlencoded',
                                   content=self._mk_formstr(params))