def get_session(username, password, default_endpoints=clc.defaults, cert=None):
	"""Start a session with the given parameters

	Use instead of SetCredentials if you need a session object to avoid the use of global credentials.

	Returns a session object accepted by many v2 objects.
	"""
	if cert is None:
		cert = API._ResourcePath('clc/cacert.pem')

	session = requests.Session()

	request = session.request(
		"POST",
		"{}/v2/authentication/login".format(default_endpoints.ENDPOINT_URL_V2),
		data={"username": username, "password": password},
		verify=cert)

	data = request.json()

	if request.status_code == 200:
		token = data['bearerToken']
		alias = data['accountAlias']
		location = data['locationAlias']
	elif request.status_code == 400:
		raise Exception("Invalid V2 API login. {}".format(data['message']))
	else:
		raise Exception("Error logging into V2 API.  Response code {}. message {}"
					    .format(request.status_code,data['message']))

	return {'username': username,
			'password': password,
			'http_session': session,
			'token': token,
			'alias': alias,
			'location': location}
Start a session with the given parameters

	Use instead of SetCredentials if you need a session object to avoid the use of global credentials.

	Returns a session object accepted by many v2 objects.