':param  user_id: The email address (for service accounts) or Client ID
(for installed apps) to be used for authentication.
:type   user_id: ``str``
:param  key: The RSA Key (for service accounts) or file path containing
key or Client Secret (for installed apps) to be used for
authentication.
:type   key: ``str``
:keyword  project: Your GCE project name. (required)
:type     project: ``str``
:keyword  auth_type: Accepted values are "SA" or "IA" or "GCE"
("Service Account" or "Installed Application" or
"GCE" if libcloud is being used on a GCE instance
with service account enabled).
If not supplied, auth_type will be guessed based
on value of user_id or if the code is being
executed in a GCE instance.
:type     auth_type: ``str``
:keyword  scopes: List of authorization URLs. Default is empty and
grants read/write to Compute, Storage, DNS.
:type     scopes: ``list``
:keyword  credential_file: Path to file for caching authentication
information used by GCEConnection.
:type     credential_file: ``str``'

def __init__(self, user_id, key=None, project=None, auth_type=None, scopes=None, credential_file=None, **kwargs):

    if (not project):
        raise ValueError('Project    name    must    be    specified    using    "project"    keyword.')
    self.auth_type = auth_type
    self.project = project
    self.scopes = scopes
    self.credential_file = (credential_file or (('~/.gce_libcloud_auth' + '.') + self.project))
    super(GCEBackupDriver, self).__init__(user_id, key, **kwargs)
    self.base_path = ('/compute/%s/projects/%s' % (API_VERSION, self.project))
