docs: function (options, cb) {
  		//call google api and get the machines
  		let cluster = options.infra.stack;
  		
  		//Ref: https://cloud.google.com/compute/docs/reference/latest/instances/list
  		let request = getConnector(options.infra.api);
  		request.clusterId = cluster.id;
  		request.filter = "name eq gke-" + cluster.id.substring(0, 19) + "-" + cluster.options.nodePoolId + "-.*";
  		let response = {
  			"env": options.soajs.registry.code,
  			"stackId": cluster.id,
  			"stackName": cluster.id,
  			"templateProperties": {
  				"region": cluster.options.zone
  				//"keyPair": "keyPair" //todo: what is this for ????
  			},
  			"machines": [],
  		};
  		driver.checkZoneRegion(options, cluster.options.zone, true, (err, zones) => {
  			if (err) {
  				return cb(err)
  			}
  			//loop over all the zone ang get the ip of each location found in the zone
  			//if zonal we only have to loop once
  			async.each(zones, function (oneZone, callback) {
  				request.zone = oneZone;
  				v1Compute().instances.list(request, (error, instances) => {
  					if (error) {
  						return callback(error);
  					}
  					if (instances && instances.items) {
  						//extract name and ip from response
  						instances.items.forEach((oneInstance) => {
  							let machineIP;
  							
  							oneInstance.networkInterfaces.forEach((oneNetInterface) => {
  								if (oneNetInterface.accessConfigs) {
  									oneNetInterface.accessConfigs.forEach((oneAC) => {
  										if (oneAC.name === 'external-nat') {
  											machineIP = oneAC.natIP;
  										}
  									});
  								}
  							});
  							
  							if (machineIP) {
  								response.machines.push({
  									"name": oneInstance.name,
  									"ip": machineIP,
  									"zone": oneZone
  								});
  							}
  						});
  					}
  					callback();
  				});
  			}, function (err) {
  				if (err) {
  					return cb(err)
  				} else {
  					return cb(null, response);
  				}
  			});
  		});
  	}