code: def Call(method,url,payload=None,session=None,debug=False):
  		if session is not None:
  			token = session['token']
  			http_session = session['http_session']
  		else:
  			if not clc._LOGIN_TOKEN_V2:
  				API._Login()
  			token = clc._LOGIN_TOKEN_V2
  			http_session = clc._REQUESTS_SESSION
  		if payload is None:
  		    payload = {}
  		if url[0]=='/':  fq_url = "%s%s" % (clc.defaults.ENDPOINT_URL_V2,url)
  		else:  fq_url = "%s/v2/%s" % (clc.defaults.ENDPOINT_URL_V2,url)
  		http_session.headers.update({'Authorization': "Bearer %s" % token})
  		if isinstance(payload, basestring):  http_session.headers['content-type'] = "Application/json"
  		else:  http_session.headers['content-type'] = "application/x-www-form-urlencoded"
  		if method=="GET":
  			r = http_session.request(method,fq_url,
  			                     params=payload,
  								 verify=API._ResourcePath('clc/cacert.pem'))
  		else:
  			r = http_session.request(method,fq_url,
  			                     data=payload,
  								 verify=API._ResourcePath('clc/cacert.pem'))
  		if debug:
  			API._DebugRequest(request=requests.Request(method,fq_url,data=payload,headers=http_session.headers).prepare(),
  			                  response=r)
  		if r.status_code>=200 and r.status_code<300:
  			try:
  				return(r.json())
  			except:
  				return({})
  		else:
  			try:
  				e = clc.APIFailedResponse("Response code %s.  %s %s %s" %
  				                          (r.status_code,r.json()['message'],method,fq_url))
  				e.response_status_code = r.status_code
  				e.response_json = r.json()
  				e.response_text = r.text
  				raise(e)
  			except clc.APIFailedResponse:
  				raise
  			except:
  				e = clc.APIFailedResponse("Response code %s. %s. %s %s" %
  				                         (r.status_code,r.text,method,fq_url))
  				e.response_status_code = r.status_code
  				e.response_json = {}
  				e.response_text = r.text
  				raise(e)