def __init__(self, **options): """ Usage:: >>> import os >>> import statuspageio >>> client = statuspageio.Client(api_key='<YOUR_PERSONAL_API_KEY>', page_id=<YOUR_PERSONAL_PAGE_ID') <statuspageio.Client> :param str access_token: Personal access token. :param str base_url: (optional) Base url for the api. Default: ``https://api.getbase.com``. :param str user_agent: (optional) Client user agent. Default: ``statuspageio/v1 Python/{basecrm.VERSION}``. :param bool verbose: (optional) Verbose/debug mode. Default: ``False``. :param int timeout: (optional) Connection and response timeout. Default: **30** seconds. :param bool verify_ssl: (optional) Whether to verify ssl or not. Default: ``True``. :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. """ self.config = Configuration(**options) self.config.validate() self.http_client = HttpClient(self.config) self.organization_id = self.config.organization_id self.__pages = statuspageio.services.PageService( self.http_client, self.config.page_id) self.__components = statuspageio.services.ComponentsService( self.http_client, self.config.page_id) self.__component_groups = statuspageio.services.ComponentGroupsService( self.http_client, self.config.page_id) self.__incidents = statuspageio.services.IncidentsService( self.http_client, self.config.page_id) self.__subscribers = statuspageio.services.SubscribersService( self.http_client, self.config.page_id) self.__metrics = statuspageio.services.MetricsService( self.http_client, self.config.page_id) self.__users = statuspageio.services.UsersService( self.http_client, self.organization_id)