private function getComponents()
    {
        $components = [];
        if ($this->isConfigured()) {
            $clientIdKey = $this->getClientIdKey();
            $cacheKey    = 'statuspageComponents'.$this->keys[$clientIdKey];
            $cacheExpire = 10;
            if (!$components = $this->cache->get($cacheKey, $cacheExpire)) {
                $clientSKey = $this->getClientSecretKey();
                $state      = $this->getAuthLoginState();
                $url        = $this->getAuthenticationUrl()
                    .'pages/'.$this->keys[$clientIdKey].'/components.json'
                    .'?api_key='.$this->keys[$clientSKey]
                    .'&response_type=code'
                    .'&state='.$state;
                $components = $this->makeRequest($url, ['ignore_event_dispatch' => true]);
                if (is_array($components) && count($components)) {
                    $this->cache->set($cacheKey, $components, $cacheExpire);
                }
            }
        }

        return $components;
    }