All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.ai.metricsadvisor.administration.models.EmailNotificationHook Maven / Gradle / Ivy

The newest version!
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.ai.metricsadvisor.administration.models;

import com.azure.core.annotation.Fluent;

import java.util.Collections;
import java.util.List;

/**
 * A hook that describes email based incident alerts notification.
 */
@Fluent
public final class EmailNotificationHook extends NotificationHook {
    private String name;
    private String description;
    private List emailsToAlert;
    private String externalLink;

    /**
     * Create a new instance of EmailNotificationHook.
     *
     * @param name The email hook name.
     */
    public EmailNotificationHook(String name) {
        this.name = name;
    }

    /**
     * Create a new instance of EmailNotificationHook.
     *
     * @param name The email hook name.
     * @param emails The emails to send the alerts.
     */
    public EmailNotificationHook(String name, List emails) {
        if (emails != null) {
            this.emailsToAlert = dedupe(emails);
        }
        this.name = name;
    }

    @Override
    public String getName() {
        return this.name;
    }

    @Override
    public String getDescription() {
        return this.description;
    }

    /**
     * Gets the customized external link which is displayed in the title bar of the alert email.
     *
     * @return The external link.
     */
    public String getExternalLink() {
        return this.externalLink;
    }

    /**
     * Gets the emails to send the alerts.
     *
     * @return The emails.
     */
    public List getEmailsToAlert() {
        if (this.emailsToAlert != null) {
            return Collections.unmodifiableList(this.emailsToAlert);
        } else {
            return Collections.emptyList();
        }
    }

    /**
     * Sets the emails to send the alert.
     *
     * @param emails The emails.
     * @return The EmailNotificationHook object itself.
     */
    public EmailNotificationHook setEmailsToAlert(List emails) {
        this.emailsToAlert = emails != null ? dedupe(emails) : null;
        return this;
    }

    /**
     * Sets email hook name.
     *
     * @param name The email hook name.
     * @return The EmailNotificationHook object itself.
     */
    public EmailNotificationHook setName(String name) {
        this.name = name;
        return this;
    }

    /**
     * Sets email hook description.
     *
     * @param description The email hook description.
     * @return The EmailNotificationHook object itself.
     */
    public EmailNotificationHook setDescription(String description) {
        this.description = description;
        return this;
    }

    /**
     * Sets the customized external link which is displayed in the title bar of the alert email.
     *
     * @param externalLink The customized link.
     * @return The EmailNotificationHook object itself.
     */
    public EmailNotificationHook setExternalLink(String externalLink) {
        this.externalLink = externalLink;
        return this;
    }

    /**
     * Sets the user e-mails and clientIds with administrative rights to manage the hook.
     * 

* The administrators have total control over the hook, being allowed to update or delete the hook. * Each element in this list represents a user with administrator access, but the value of each string element * is either user email address or clientId uniquely identifying the user service principal. * * @param admins A list containing email or clientId of admins * @return The EmailNotificationHook object itself. */ public EmailNotificationHook setAdmins(List admins) { super.setAdministrators(admins); return this; } List getEmailsToAlertRaw() { // package private getter that won't translate null emails to empty-list. return this.emailsToAlert; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy