Validates whether a configuration is valid.

        :rtype: bool
        :raises ConfigurationError: if no ``access_token`` provided.
        :raises ConfigurationError: if provided ``access_token`` is invalid - contains disallowed characters.
        :raises ConfigurationError: if provided ``access_token`` is invalid - has invalid length.
        :raises ConfigurationError: if provided ``base_url`` is invalid.

def validate(self):
        """Validates whether a configuration is valid.

        :rtype: bool
        :raises ConfigurationError: if no ``access_token`` provided.
        :raises ConfigurationError: if provided ``access_token`` is invalid - contains disallowed characters.
        :raises ConfigurationError: if provided ``access_token`` is invalid - has invalid length.
        :raises ConfigurationError: if provided ``base_url`` is invalid.
        """
        if self.access_token is None:
            raise ConfigurationError('No access token provided. '
                                     'Set your access token during client initialization using: '
                                     '"basecrm.Client(access_token= <YOUR_PERSONAL_ACCESS_TOKEN>)"')

        if re.search(r'\s', self.access_token):
            raise ConfigurationError('Provided access token is invalid '
                                     'as it contains disallowed characters. '
                                     'Please double-check you access token.')

        if len(self.access_token) != 64:
            raise ConfigurationError('Provided access token is invalid '
                                     'as it has invalid length. '
                                     'Please double-check your access token.')

        if not self.base_url or not re.match(self.URL_REGEXP, self.base_url):
            raise ConfigurationError('Provided base url is invalid '
                                     'as it not a valid URI. '
                                     'Please make sure it incldues the schema part, '
                                     'both http and https are accepted, '
                                     'and the hierarchical part')

        return True