func()

in alertmanager/client/client.go [126:154]


func (c *client) UpdateReceiver(tenantID, receiverName string, newRec *config.Receiver) error {
	c.Lock()
	defer c.Unlock()
	conf, err := c.readConfigFile()
	if err != nil {
		return err
	}

	newRec.Secure(tenantID)

	receiverToUpdate := config.SecureReceiverName(receiverName, tenantID)
	receiverIdx := -1
	for idx, rec := range conf.Receivers {
		if rec.Name == receiverToUpdate {
			receiverIdx = idx
			break
		}
	}
	if receiverIdx < 0 {
		return fmt.Errorf("Receiver '%s' not found", newRec.Name)
	}

	conf.Receivers[receiverIdx] = newRec
	err = conf.Validate()
	if err != nil {
		return fmt.Errorf("Error updating receiver: %v", err)
	}
	return c.writeConfigFile(conf)
}