code: func operationsByZone(zones map[string]*dns.ZoneSummary, ops []dns.RecordOperation) map[string][]dns.RecordOperation {
  	changes := make(map[string][]dns.RecordOperation)
  
  	zoneNameIDMapper := zoneIDName{}
  	for _, z := range zones {
  		zoneNameIDMapper.Add(*z.Id, *z.Name)
  		changes[*z.Id] = []dns.RecordOperation{}
  	}
  
  	for _, op := range ops {
  		if zoneID, _ := zoneNameIDMapper.FindZone(*op.Domain); zoneID != "" {
  			changes[zoneID] = append(changes[zoneID], op)
  		} else {
  			log.Warnf("No matching zone for record operation %s", op)
  		}
  	}
  
  	// Remove zones that don't have any changes.
  	for zone, ops := range changes {
  		if len(ops) == 0 {
  			delete(changes, zone)
  		}
  	}
  
  	return changes
  }
docs: // operationsByZone segments a slice of RecordOperations by their zone.