code: def update_metadata(self, path, max_versions=None, cas_required=None, mount_point=DEFAULT_MOUNT_POINT):
          
          params = {}
          if max_versions is not None:
              params['max_versions'] = max_versions
          if cas_required is not None:
              if not isinstance(cas_required, bool):
                  error_msg = 'bool expected for cas_required param, {type} received'.format(type=type(cas_required))
                  raise exceptions.ParamValidationError(error_msg)
              params['cas_required'] = cas_required
          api_path = '/v1/{mount_point}/metadata/{path}'.format(mount_point=mount_point, path=path)
          return self._adapter.post(
              url=api_path,
              json=params,
          )
docs: Updates the max_versions of cas_required setting on an existing path.
  
          Supported methods:
              POST: /{mount_point}/metadata/{path}. Produces: 204 (empty body)
  
  
          :param path: Path
          :type path: str | unicode
          :param max_versions: The number of versions to keep per key. If not set, the backend's configured max version is
              used. Once a key has more than the configured allowed versions the oldest version will be permanently
              deleted.
          :type max_versions: int
          :param cas_required: If true the key will require the cas parameter to be set on all write requests. If false,
              the backend's configuration will be used.
          :type cas_required: bool
          :param mount_point: The "path" the secret engine was mounted on.
          :type mount_point: str | unicode
          :return: The response of the request.
          :rtype: requests.Response