code: func newScaleSet(az *Cloud) (VMSet, error) {
  	var err error
  	ss := &scaleSet{
  		Cloud:           az,
  		availabilitySet: newAvailabilitySet(az),
  	}
  
  	ss.nodeNameToScaleSetMappingCache, err = ss.newNodeNameToScaleSetMappingCache()
  	if err != nil {
  		return nil, err
  	}
  
  	ss.availabilitySetNodesCache, err = ss.newAvailabilitySetNodesCache()
  	if err != nil {
  		return nil, err
  	}
  
  	ss.vmssCache, err = ss.newVmssCache()
  	if err != nil {
  		return nil, err
  	}
  
  	ss.vmssVMCache, err = ss.newVmssVMCache()
  	if err != nil {
  		return nil, err
  	}
  
  	return ss, nil
  }
docs: // newScaleSet creates a new scaleSet.