docs: function SelfServiceManager(options={}) {
  	const vcapServices = JSON.parse(process.env[VCAP_SERVICES] || "{}");
  	var vcapServiceCredentials = {};
  	// Find App ID service config
  	for (var propName in vcapServices) {
  		// Does service name starts with VCAP_SERVICES_SERVICE_NAME
  		if (propName.indexOf(VCAP_SERVICES_SERVICE_NAME1) === 0 || propName.indexOf(VCAP_SERVICES_SERVICE_NAME2) === 0) {
  			vcapServiceCredentials = vcapServices[propName][0][VCAP_SERVICES_CREDENTIALS];
  			break;
  		}
  	}
  	this.iamApiKey = options.iamApiKey || vcapServiceCredentials[API_KEY];
  	if (this.iamApiKey) {
  		logger.info("using user IAM API key [NOT SHOWING]");
  	}
  	this.managementUrl = options[MGMT_URL] || vcapServiceCredentials[MGMT_URL];
  	let tenantId = options[TENANT_ID] || vcapServiceCredentials[TENANT_ID];
  	this.tenantId = tenantId;
  
  	if (!this.managementUrl) {
  		if (!tenantId) {
  			logger.error(initError);
  			logger.error(initErrorMsg);
  			throw new Error(initError);
  		}
  		let oauthServerUrl = options[OAUTH_SERVER_URL] || options['oAuthServerUrl'] || vcapServiceCredentials[OAUTH_SERVER_URL];
  		if (!oauthServerUrl || oauthServerUrl.indexOf(OAUTH_V3) === -1) {
  			logger.error(initError);
  			logger.error(initErrorMsg);
  			throw new Error(initError);
  		}
  		logger.info(OAUTH_SERVER_URL, oauthServerUrl);
  
  		let serverUrl = oauthServerUrl.split(OAUTH_V3)[0];
  		let serverDomain = serverUrl.split(APPID_AUTH);
  		if (serverDomain[1]) {
  			this.managementUrl = serverDomain[0] + APPID_MGMT + serverDomain[1];
  		} else {
  			logger.error(initError);
  			logger.error(initErrorMsg);
  			throw new Error(initError);
  		}
  		this.managementUrl += MGMT_V4 + tenantId;
  	}
  
  	this.iamTokenUrl = options[IAM_TOKEN_URL] || PRODUCTION_IAM_TOKEN_URL;
  	logger.info(IAM_TOKEN_URL, this.iamTokenUrl);
  	logger.info(MGMT_URL, this.managementUrl);
  }