code: def delete_secret_versions(self, path, versions, mount_point=DEFAULT_MOUNT_POINT):
          
          if not isinstance(versions, list) or len(versions) == 0:
              error_msg = 'argument to "versions" must be a list containing one or more integers, "{versions}" provided.'.format(
                  versions=versions
              )
              raise exceptions.ParamValidationError(error_msg)
          params = {
              'versions': versions,
          }
          api_path = '/v1/{mount_point}/delete/{path}'.format(mount_point=mount_point, path=path)
          return self._adapter.post(
              url=api_path,
              json=params,
          )
docs: Issue a soft delete of the specified versions of the secret.
  
          This marks the versions as deleted and will stop them from being returned from reads,
          but the underlying data will not be removed. A delete can be undone using the
          undelete path.
  
          Supported methods:
              POST: /{mount_point}/delete/{path}. Produces: 204 (empty body)
  
  
          :param path: Specifies the path of the secret to delete. This is specified as part of the URL.
          :type path: str | unicode
          :param versions: The versions to be deleted. The versioned data will not be deleted, but it will no longer be
              returned in normal get requests.
          :type versions: int
          :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