def __init__(self, login: str=None, private_key_pem: str=None, private_key_pem_file: Path=None, access_token: str=None, expiration_time: int=60, read_only: bool=False, global_key: bool=False, label: str=f'{__project__} {__version__}', authentication_url: str='https://api.transip.nl/v6/auth', root_endpoint: str='https://api.transip.nl/v6', connection_timeout: int=30, retry: int=3, retry_delay: float=5):
    'Initialize the interface with TransIP.\n\n        :param login: the TransIP login name, defaults to None\n        :type login: str, optional\n        :param private_key_pem: the private key as string, defaults to None\n        :type private_key_pem: str, optional\n        :param private_key_pem_file: file location of the private key, defaults to None\n        :type private_key_pem_file: Path, optional\n        :param access_token: JSON Web Token, defaults to None\n        :type access_token: str, optional\n        :param expiration_time: expiration time (TTL) of the access token,\n                                defaults to 60\n        :type expiration_time: int, optional\n        :param read_only: key/token allows to change objects or only read,\n                          defaults to False\n        :type read_only: bool, optional\n        :param global_key: key may only be used from whitelisted ip addresses,\n                           defaults to False\n        :type global_key: bool, optional\n        :param label: textual identifier for the access token,\n                      defaults to "__project__ __version__"\n        :type label: str, optional\n        :param authentication_url: TransIP authentication url,\n                                   defaults to "https://api.transip.nl/v6/auth"\n        :type authentication_url: str, optional\n        :param root_endpoint: TransIP root of endpoints,\n                              defaults to "https://api.transip.nl/v6"\n        :type root_endpoint: str, optional\n        :param connection_timeout: timeout for the network response, defaults to 30\n        :type connection_timeout: int, optional\n        :param retry: retry when the call fails due to zone\n                      being saved or locked (409), defaults to 3\n        :type retry: int, optional\n        :param retry_delay: time in seconds to wait between retries,\n                            defaults to 5\n        :type retry_delay: float, optional\n        '
    if ((login is not None) and (access_token is not None)):
        raise ValueError('Either login and private_key or access token must be used, not both.')
    self.attempts = (retry + 1)
    self.retry_delay = retry_delay
    self.root_endpoint = root_endpoint
    self.connection_timeout = connection_timeout
    if (access_token is None):
        self._token = AccessToken(login=login, private_key=private_key_pem, private_key_file=private_key_pem_file, expiration_time=expiration_time, read_only=read_only, global_key=global_key, label=label, authentication_url=authentication_url, connection_timeout=connection_timeout)
    else:
        self._token = access_token
Initialize the interface with TransIP.

:param login: the TransIP login name, defaults to None
:type login: str, optional
:param private_key_pem: the private key as string, defaults to None
:type private_key_pem: str, optional
:param private_key_pem_file: file location of the private key, defaults to None
:type private_key_pem_file: Path, optional
:param access_token: JSON Web Token, defaults to None
:type access_token: str, optional
:param expiration_time: expiration time (TTL) of the access token,
                        defaults to 60
:type expiration_time: int, optional
:param read_only: key/token allows to change objects or only read,
                  defaults to False
:type read_only: bool, optional
:param global_key: key may only be used from whitelisted ip addresses,
                   defaults to False
:type global_key: bool, optional
:param label: textual identifier for the access token,
              defaults to "__project__ __version__"
:type label: str, optional
:param authentication_url: TransIP authentication url,
                           defaults to "https://api.transip.nl/v6/auth"
:type authentication_url: str, optional
:param root_endpoint: TransIP root of endpoints,
                      defaults to "https://api.transip.nl/v6"
:type root_endpoint: str, optional
:param connection_timeout: timeout for the network response, defaults to 30
:type connection_timeout: int, optional
:param retry: retry when the call fails due to zone
              being saved or locked (409), defaults to 3
:type retry: int, optional
:param retry_delay: time in seconds to wait between retries,
                    defaults to 5
:type retry_delay: float, optional
def __init__(self, login: str=None, private_key_pem: str=None, private_key_pem_file: Path=None, access_token: str=None, expiration_time: int=60, read_only: bool=False, global_key: bool=False, label: str=f'{__project__} {__version__}', authentication_url: str='https://api.transip.nl/v6/auth', root_endpoint: str='https://api.transip.nl/v6', connection_timeout: int=30, retry: int=3, retry_delay: float=5):
    'Initialize the interface with TransIP.\n\n        :param login: the TransIP login name, defaults to None\n        :type login: str, optional\n        :param private_key_pem: the private key as string, defaults to None\n        :type private_key_pem: str, optional\n        :param private_key_pem_file: file location of the private key, defaults to None\n        :type private_key_pem_file: Path, optional\n        :param access_token: JSON Web Token, defaults to None\n        :type access_token: str, optional\n        :param expiration_time: expiration time (TTL) of the access token,\n                                defaults to 60\n        :type expiration_time: int, optional\n        :param read_only: key/token allows to change objects or only read,\n                          defaults to False\n        :type read_only: bool, optional\n        :param global_key: key may only be used from whitelisted ip addresses,\n                           defaults to False\n        :type global_key: bool, optional\n        :param label: textual identifier for the access token,\n                      defaults to "__project__ __version__"\n        :type label: str, optional\n        :param authentication_url: TransIP authentication url,\n                                   defaults to "https://api.transip.nl/v6/auth"\n        :type authentication_url: str, optional\n        :param root_endpoint: TransIP root of endpoints,\n                              defaults to "https://api.transip.nl/v6"\n        :type root_endpoint: str, optional\n        :param connection_timeout: timeout for the network response, defaults to 30\n        :type connection_timeout: int, optional\n        :param retry: retry when the call fails due to zone\n                      being saved or locked (409), defaults to 3\n        :type retry: int, optional\n        :param retry_delay: time in seconds to wait between retries,\n                            defaults to 5\n        :type retry_delay: float, optional\n        '
    if ((login is not None) and (access_token is not None)):
        raise ValueError('Either login and private_key or access token must be used, not both.')
    self.attempts = (retry + 1)
    self.retry_delay = retry_delay
    self.root_endpoint = root_endpoint
    self.connection_timeout = connection_timeout
    if (access_token is None):
        self._token = AccessToken(login=login, private_key=private_key_pem, private_key_file=private_key_pem_file, expiration_time=expiration_time, read_only=read_only, global_key=global_key, label=label, authentication_url=authentication_url, connection_timeout=connection_timeout)
    else:
        self._token = access_token