'Initialization of Client object.
:param api_version: Compute API version
:type api_version: novaclient.api_versions.APIVersion
:param str auth: Auth
:param str auth_token: Auth token
:param str auth_url: Auth URL
:param str cacert: ca-certificate
:param str cert: certificate
:param bool direct_use: Inner variable of novaclient. Do not use it
outside novaclient. It\'s restricted.
:param str endpoint_override: Bypass URL
:param str endpoint_type: Endpoint Type
:param str extensions: Extensions
:param bool http_log_debug: Enable debugging for HTTP connections
:param bool insecure: Allow insecure
:param logging.Logger logger: Logger instance to be used for all
logging stuff
:param str password: User password
:param bool os_cache: OS cache
:param str project_domain_id: ID of project domain
:param str project_domain_name: Name of project domain
:param str project_id: Project/Tenant ID
:param str project_name: Project/Tenant name
:param str region_name: Region Name
:param str service_name: Service Name
:param str service_type: Service Type
:param str session: Session
:param float timeout: API timeout, None or 0 disables
:param bool timings: Timings
:param str user_domain_id: ID of user domain
:param str user_domain_name: Name of user domain
:param str user_id: User ID
:param str username: Username'

def __init__(self, api_version=None, auth=None, auth_token=None, auth_url=None, cacert=None, cert=None, direct_use=True, endpoint_override=None, endpoint_type='publicURL', extensions=None, http_log_debug=False, insecure=False, logger=None, os_cache=False, password=None, project_domain_id=None, project_domain_name=None, project_id=None, project_name=None, region_name=None, service_name=None, service_type='compute', session=None, timeout=None, timings=False, user_domain_id=None, user_domain_name=None, user_id=None, username=None, **kwargs):

    if direct_use:
        raise exceptions.Forbidden(403, _("'novaclient.v2.client.Client'    is    not    designed    to    be    initialized    directly.    It    is    inner    class    of    novaclient.    You    should    use    'novaclient.client.Client'    instead.    Related    lp    bug-report:    1493576"))
    self.project_id = project_id
    self.project_name = project_name
    self.user_id = user_id
    self.flavors = flavors.FlavorManager(self)
    self.flavor_access = flavor_access.FlavorAccessManager(self)
    self.glance = images.GlanceManager(self)
    self.limits = limits.LimitsManager(self)
    self.servers = servers.ServerManager(self)
    self.versions = versions.VersionManager(self)
    self.agents = agents.AgentsManager(self)
    self.cloudpipe = cloudpipe.CloudpipeManager(self)
    self.certs = certs.CertificateManager(self)
    self.volumes = volumes.VolumeManager(self)
    self.keypairs = keypairs.KeypairManager(self)
    self.neutron = networks.NeutronManager(self)
    self.quota_classes = quota_classes.QuotaClassSetManager(self)
    self.quotas = quotas.QuotaSetManager(self)
    self.usage = usage.UsageManager(self)
    self.virtual_interfaces = virtual_interfaces.VirtualInterfaceManager(self)
    self.aggregates = aggregates.AggregateManager(self)
    self.hosts = hosts.HostManager(self)
    self.hypervisors = hypervisors.HypervisorManager(self)
    self.hypervisor_stats = hypervisors.HypervisorStatsManager(self)
    self.services = services.ServiceManager(self)
    self.os_cache = os_cache
    self.availability_zones = availability_zones.AvailabilityZoneManager(self)
    self.server_groups = server_groups.ServerGroupsManager(self)
    self.server_migrations = server_migrations.ServerMigrationsManager(self)
    self.assisted_volume_snapshots = assisted_volume_snapshots.AssistedSnapshotManager(self)
    self.cells = cells.CellsManager(self)
    self.instance_action = instance_action.InstanceActionManager(self)
    self.list_extensions = list_extensions.ListExtManager(self)
    self.migrations = migrations.MigrationManager(self)
    self.server_external_events = server_external_events.ServerExternalEventManager(self)
    self.logger = (logger or logging.getLogger(__name__))
    if extensions:
        for extension in extensions:
            if (extension.name in contrib.V2_0_EXTENSIONS):
                self.logger.debug("Nova    2.0    extenstion    '%s'    is    auto-loaded    by    default.    You    do    not    need    to    specify    it    manually.", extension.name)
                continue
            if extension.manager_class:
                setattr(self, extension.name, extension.manager_class(self))
    self.client = client._construct_http_client(api_version=api_version, auth=auth, auth_token=auth_token, auth_url=auth_url, cacert=cacert, cert=cert, endpoint_override=endpoint_override, endpoint_type=endpoint_type, http_log_debug=http_log_debug, insecure=insecure, logger=self.logger, os_cache=self.os_cache, password=password, project_domain_id=project_domain_id, project_domain_name=project_domain_name, project_id=project_id, project_name=project_name, region_name=region_name, service_name=service_name, service_type=service_type, session=session, timeout=timeout, timings=timings, user_domain_id=user_domain_id, user_domain_name=user_domain_name, user_id=user_id, username=username, **kwargs)
