def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL,<EOL>single_request_timeout=DEFAULT_SINGLE_REQUEST_TIMEOUT,<EOL>wait_on_rate_limit=DEFAULT_WAIT_ON_RATE_LIMIT,<EOL>object_factory=immutable_data_factory,<EOL>client_id=None,<EOL>client_secret=None,<EOL>oauth_code=None,<EOL>redirect_uri=None):
check_type(access_token, basestring)<EOL>check_type(base_url, basestring)<EOL>check_type(single_request_timeout, int)<EOL>check_type(wait_on_rate_limit, bool)<EOL>check_type(client_id, basestring, may_be_none=True)<EOL>check_type(client_secret, basestring, may_be_none=True)<EOL>check_type(oauth_code, basestring, may_be_none=True)<EOL>check_type(redirect_uri, basestring, may_be_none=True)<EOL>access_token = access_token or WEBEX_TEAMS_ACCESS_TOKEN<EOL>self.access_tokens = AccessTokensAPI(<EOL>base_url, object_factory,<EOL>single_request_timeout=single_request_timeout,<EOL>)<EOL>oauth_param_list = [client_id, client_secret, oauth_code, redirect_uri]<EOL>if not access_token and all(oauth_param_list):<EOL><INDENT>access_token = self.access_tokens.get(<EOL>client_id=client_id,<EOL>client_secret=client_secret,<EOL>code=oauth_code,<EOL>redirect_uri=redirect_uri<EOL>).access_token<EOL><DEDENT>if not access_token:<EOL><INDENT>raise AccessTokenError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>self._session = RestSession(<EOL>access_token=access_token,<EOL>base_url=base_url,<EOL>single_request_timeout=single_request_timeout,<EOL>wait_on_rate_limit=wait_on_rate_limit<EOL>)<EOL>self.people = PeopleAPI(self._session, object_factory)<EOL>self.rooms = RoomsAPI(self._session, object_factory)<EOL>self.memberships = MembershipsAPI(self._session, object_factory)<EOL>self.messages = MessagesAPI(self._session, object_factory)<EOL>self.teams = TeamsAPI(self._session, object_factory)<EOL>self.team_memberships = TeamMembershipsAPI(<EOL>self._session, object_factory<EOL>)<EOL>self.webhooks = WebhooksAPI(self._session, object_factory)<EOL>self.organizations = OrganizationsAPI(self._session, object_factory)<EOL>self.licenses = LicensesAPI(self._session, object_factory)<EOL>self.roles = RolesAPI(self._session, object_factory)<EOL>self.events = EventsAPI(self._session, object_factory)<EOL>self.guest_issuer = GuestIssuerAPI(self._session, object_factory)<EOL>
Create a new WebexTeamsAPI object.

        An access token must be used when interacting with the Webex Teams API.
        This package supports three methods for you to provide that access
        token:

          1. You may manually specify the access token via the `access_token`
             argument, when creating a new WebexTeamsAPI object.

          2. If an access_token argument is not supplied, the package checks
             for a WEBEX_TEAMS_ACCESS_TOKEN environment variable.

          3. Provide the parameters (client_id, client_secret, oauth_code and
             oauth_redirect_uri) from your oauth flow.

        An AccessTokenError is raised if an access token is not provided
        via one of these two methods.

        Args:
            access_token(basestring): The access token to be used for API
                calls to the Webex Teams service.  Defaults to checking for a
                WEBEX_TEAMS_ACCESS_TOKEN environment variable.
            base_url(basestring): The base URL to be prefixed to the
                individual API endpoint suffixes.
                Defaults to webexteamssdk.DEFAULT_BASE_URL.
            single_request_timeout(int): Timeout (in seconds) for RESTful HTTP
                requests. Defaults to
                webexteamssdk.config.DEFAULT_SINGLE_REQUEST_TIMEOUT.
            wait_on_rate_limit(bool): Enables or disables automatic rate-limit
                handling. Defaults to
                webexteamssdk.config.DEFAULT_WAIT_ON_RATE_LIMIT.
            object_factory(callable): The factory function to use to create
                Python objects from the returned Webex Teams JSON data objects.
            client_id(basestring): The client id of your integration. Provided
                upon creation in the portal.
            client_secret(basestring): The client secret of your integration.
                Provided upon creation in the portal.
            oauth_code(basestring): The oauth authorization code provided by
                the user oauth process.
            oauth_redirect_uri(basestring): The redirect URI used in the user
                OAuth process.

        Returns:
            WebexTeamsAPI: A new WebexTeamsAPI object.

        Raises:
            TypeError: If the parameter types are incorrect.
            AccessTokenError: If an access token is not provided via the
                access_token argument or an environment variable.