Updated on 2026-05-12 GMT+08:00

Configuring Alarm Notifications

Function

This API is used to configure alarm notifications.

Calling Method

For details, see Calling APIs.

URI

POST /v2/{project_id}/waf/alert

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition

Project ID. To obtain it, log in to the Huawei Cloud console, click the username, choose My Credentials, and find the project ID in the Projects list.

Constraints

N/A

Range

The value contains 32 characters. Only letters and digits are supported.

Default Value

N/A

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition

User token.

Constraints

N/A

Range

N/A

Default Value

N/A

Content-Type

Yes

String

Definition

Content type.

Constraints

N/A

Range

N/A

Default Value

application/json;charset=utf8

enterpriseProjectId

Yes

String

Definition

Obtain the enterprise project ID by calling the ListEnterpriseProject API of Enterprise Project Management Service (EPS). To obtain the resource details in all enterprise projects of a user, set this parameter to all_granted_eps.

Constraints

N/A

Range

  • 0: the default enterprise project.

  • all_granted_eps: all enterprise projects.

  • A specific enterprise project ID: Enter a maximum of 36 characters.

Default Value

0

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Language

Yes

String

Definition

Language. The default value is en-us. zh-cn: Chinese; en-us: English.

Constraints

N/A

Range

N/A

Default Value

zh-cn

Table 4 Request body parameters

Parameter

Mandatory

Type

Description

enabled

Yes

Boolean

Definition

Function status. true: The current configuration is enabled. false: The current configuration is disabled.

Constraints

N/A

Range

  • true

  • false

Default Value

true

prefer_html

Yes

Boolean

Definition

Reserved parameter. The default value is false.

Constraints

N/A

Range

N/A

Default Value

  • false

topic_urn

Yes

String

Definition

Notification template, which is associated with the SMN topic URN used to send alarm notifications. You can obtain the URN from the SMN service.

To query the available topics, you can call the CloudLogService API used for querying SMN topics and find the topics in the topic_urn field in the response body.

Constraints

N/A

Range

N/A

Default Value

N/A

sendfreq

No

Integer

Definition

Interval, in minutes. When the notification type is attack event, this parameter specifies the interval at which an alarm notification is sent if the number of attacks reaches or exceeds the threshold. The value can be 5, 15, 30, 60, 120, 360, 720, or 1440. When the notification type is certificate expiration, this parameter specifies the interval at which an alarm notification is sent. The value can be 1440 or 10080 (unit: minute).

Constraints

N/A

Range

N/A

Default Value

N/A

local

Yes

String

Definition

Region, which specifies the language or region-related configuration of alarm notifications.

Constraints

N/A

Range

  • zh-cn

  • en-us

Default Value

N/A

times

No

Integer

Definition

This parameter is mandatory when the notification type is set to protection event. WAF will report a notification when the number of attacks reaches the configured threshold.

Constraints

N/A

Range

N/A

Default Value

N/A

name

Yes

String

Definition

Alarm name, which is used to identify the name of the alarm notification configuration.

Constraints

N/A

Range

N/A

Default Value

N/A

notice_class

Yes

String

Definition

Alarm type, which is used to distinguish alarms in different scenarios, such as protection rule triggering and resource exceptions.

Constraints

N/A

Range

  • threat_alert_notice: threat alarm notifications

  • cert_alert_notice: certificate alarm notifications

  • rule_alert_notice: rule alarm notifications

  • cname_ip_alert_notice: domain name/IP address alarm notifications

Default Value

N/A

nearly_expired_time

No

Long

Definition

Number of days in advance for expiration notifications.

Constraints

N/A

Range

N/A

Default Value

N/A

is_all_enterprise_project

Yes

Boolean

Definition

Whether the alarm configuration is applicable to all enterprise projects.

Constraints

N/A

Range

  • true

  • false

Default Value

true

description

No

String

Definition

Description of the alarm notification configuration.

Constraints

N/A

Range

N/A

Default Value

N/A

threat

No

Array of strings

Definition

Threat type range for which an alarm will be generated. For example, all indicates all threats.

Constraints

N/A

Range

N/A

Default Value

all

rule_type

No

Array of strings

Definition

Rule type for which an alarm will be generated. all indicates all rule types.

Constraints

N/A

Range

N/A

Default Value

all

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

id

String

ID

name

String

Alarm notification name.

enabled

Boolean

Whether to enable this feature.

  • false: disabled

  • true: enabled.

topic_urn

String

Theme.

sendfreq

Integer

Interval, in minutes. When the notification type is attack event, this parameter specifies the interval at which an alarm notification is sent if the number of attacks reaches or exceeds the threshold. The value can be 5, 15, 30, 60, 120, 360, 720, or 1440. When the notification type is certificate expiration, this parameter specifies the interval at which an alarm notification is sent. The value can be 1440 (one day) or 10080 (one week), in minutes.

locale

String

Language.

times

Integer

This parameter is mandatory when the notification type is set to protection event. WAF will report a notification when the number of attacks reaches the configured threshold.

threat

Array of strings

Event type.

prefer_html

Boolean

Reserved parameter, which can be ignored.

notice_class

String

Notification type.

nearly_expired_time

String

Advance notification days.

is_all_enterprise_project

Boolean

Whether all enterprise projects are included.

enterprise_project_id

String

Enterprise project ID.

update_time

Long

Update time.

Status code: 400

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

encoded_authorization_message

String

You can call the decode-authorization-message interface of the STS service to decode the rejection reason. For details, see the STS5 joint commissioning and self-verification. This parameter is returned only when an IAM 5 authentication error occurs.

details

Array of IAM5ErrorDetails objects

The set of error messages reported when a downstream service is invoked. This parameter is returned only when an IAM 5 authentication error occurs.

Table 7 IAM5ErrorDetails

Parameter

Type

Description

error_code

String

Error codes of the downstream service.

error_msg

String

Error messages of the downstream service.

Status code: 401

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

encoded_authorization_message

String

You can call the decode-authorization-message interface of the STS service to decode the rejection reason. For details, see the STS5 joint commissioning and self-verification. This parameter is returned only when an IAM 5 authentication error occurs.

details

Array of IAM5ErrorDetails objects

The set of error messages reported when a downstream service is invoked. This parameter is returned only when an IAM 5 authentication error occurs.

Table 9 IAM5ErrorDetails

Parameter

Type

Description

error_code

String

Error codes of the downstream service.

error_msg

String

Error messages of the downstream service.

Status code: 500

Table 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

encoded_authorization_message

String

You can call the decode-authorization-message interface of the STS service to decode the rejection reason. For details, see the STS5 joint commissioning and self-verification. This parameter is returned only when an IAM 5 authentication error occurs.

details

Array of IAM5ErrorDetails objects

The set of error messages reported when a downstream service is invoked. This parameter is returned only when an IAM 5 authentication error occurs.

Table 11 IAM5ErrorDetails

Parameter

Type

Description

error_code

String

Error codes of the downstream service.

error_msg

String

Error messages of the downstream service.

Example Requests

{
  "enabled" : true,
  "prefer_html" : false,
  "local" : "zh-cn",
  "is_all_enterprise_project" : true,
  "notice_class" : "threat_alert_notice",
  "name" : "testa",
  "description" : "",
  "topic_urn" : "urn:smn:cn-north-7:f116e3217cd84c88a979f95e5842a637:sonar_test_2cdab",
  "sendfreq" : 30,
  "times" : 1,
  "threat" : [ "all" ]
}

Example Responses

Status code: 200

Definition

Request succeeded.

Constraints

N/A

Range

N/A

Default Value

N/A

{
  "id" : "85b8db31f300427cbba62ba8b33cf263",
  "name" : "test",
  "enabled" : true,
  "sendfreq" : 30,
  "locale" : "zh-cn",
  "times" : 1,
  "topic_urn" : "urn:smn:cn-north-7:550500b49078408682d0d4f7d923f3e1:ces_lgs_test",
  "notice_class" : "threat_alert_notice",
  "is_all_enterprise_project" : true,
  "enterprise_project_id" : "0"
}

SDK Sample Code

The SDK sample code is as follows.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.waf.v1.region.WafRegion;
import com.huaweicloud.sdk.waf.v1.*;
import com.huaweicloud.sdk.waf.v1.model.*;


public class CreateAlertNoticeConfigSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        WafClient client = WafClient.newBuilder()
                .withCredential(auth)
                .withRegion(WafRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateAlertNoticeConfigRequest request = new CreateAlertNoticeConfigRequest();
        try {
            CreateAlertNoticeConfigResponse response = client.createAlertNoticeConfig(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkwaf.v1.region.waf_region import WafRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkwaf.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = WafClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(WafRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateAlertNoticeConfigRequest()
        response = client.create_alert_notice_config(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    waf "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := waf.WafClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := waf.NewWafClient(hcClient)

    request := &model.CreateAlertNoticeConfigRequest{}
	response, err := client.CreateAlertNoticeConfig(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Definition

Request succeeded.

Constraints

N/A

Range

N/A

Default Value

N/A

400

Definition

Request failed.

Constraints

N/A

Range

N/A

Default Value

N/A

401

Definition

The token does not have required permissions.

Constraints

N/A

Range

N/A

Default Value

N/A

500

Definition

Internal server error.

Constraints

N/A

Range

N/A

Default Value

N/A

Error Codes

See Error Codes.