public function url()
    {
        if (!isset($this->config['url'])) {
            throw InvalidConfigurationException::urlNotDefined();
        }

        if (!isset($this->config['client'])) {
            throw InvalidConfigurationException::clientNotDefined();
        }

        return implode('/', array_filter([
            $this->config['url'],
            $this->config['client'],
            $this->getResourceKey(),
            $this->getTypeKey(),
            $this->builder->getManipulations(),
            $this->builder->getKey(),
        ]));
    }