code: func (p designateProvider) ApplyChanges(changes *plan.Changes) error {
  	managedZones, err := p.getZones()
  	if err != nil {
  		return err
  	}
  	recordSets := map[string]*recordSet{}
  	for _, ep := range changes.Create {
  		addEndpoint(ep, recordSets, false)
  	}
  	for _, ep := range changes.UpdateNew {
  		addEndpoint(ep, recordSets, false)
  	}
  	for _, ep := range changes.UpdateOld {
  		addEndpoint(ep, recordSets, true)
  	}
  	for _, ep := range changes.Delete {
  		addEndpoint(ep, recordSets, true)
  	}
  	for _, rs := range recordSets {
  		if err2 := p.upsertRecordSet(rs, managedZones); err == nil {
  			err = err2
  		}
  	}
  	return err
  }
docs: // ApplyChanges applies a given set of changes in a given zone.