def __init__(self, **options): """ Usage:: >>> import os >>> import basecrm >>> client = basecrm.Client(access_token=os.environ.get('BASECRM_ACCESS_TOKEN')) <basecrm.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: ``BaseCRM/v2 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.__accounts = basecrm.services.AccountsService(self.http_client) self.__associated_contacts = basecrm.services.AssociatedContactsService(self.http_client) self.__contacts = basecrm.services.ContactsService(self.http_client) self.__deals = basecrm.services.DealsService(self.http_client) self.__deal_sources = basecrm.services.DealSourcesService(self.http_client) self.__deal_unqualified_reasons = basecrm.services.DealUnqualifiedReasonsService(self.http_client) self.__leads = basecrm.services.LeadsService(self.http_client) self.__lead_sources = basecrm.services.LeadSourcesService(self.http_client) self.__lead_unqualified_reasons = basecrm.services.LeadUnqualifiedReasonsService(self.http_client) self.__line_items = basecrm.services.LineItemsService(self.http_client) self.__loss_reasons = basecrm.services.LossReasonsService(self.http_client) self.__notes = basecrm.services.NotesService(self.http_client) self.__orders = basecrm.services.OrdersService(self.http_client) self.__pipelines = basecrm.services.PipelinesService(self.http_client) self.__products = basecrm.services.ProductsService(self.http_client) self.__sources = basecrm.services.SourcesService(self.http_client) self.__stages = basecrm.services.StagesService(self.http_client) self.__tags = basecrm.services.TagsService(self.http_client) self.__tasks = basecrm.services.TasksService(self.http_client) self.__text_messages = basecrm.services.TextMessagesService(self.http_client) self.__users = basecrm.services.UsersService(self.http_client) self.__visits = basecrm.services.VisitsService(self.http_client) self.__visit_outcomes = basecrm.services.VisitOutcomesService(self.http_client) self.__sync = basecrm.sync.SyncService(self.http_client)