
# 添加或修改指标类或事件类告警规则 - AddOrUpdateMetricOrEventAlarmRule
#### 功能介绍
添加或修改AOM2.0指标类或事件类告警规则。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-aom/aom_04_0057.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-aom/aom_04_0031.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                  | 访问级别  | 资源类型（\*为必须）  | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | aom:alarmRule:create | Write | alarmRule \* | g:ResourceTag/\<tag-key\>                                                                                                                                                                                                                                                                                                                                                                                                                                        | -  | -      |
  | aom:alarmRule:create | Write | -            | - g:TagKeys   - g:RequestTag/\<tag-key\>    | -  | -      |
     
  
 
#### URI
POST /v4/{project_id}/alarm-rules
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，可以从控制台获取，也可以从调用API处获取。获取方式请参见：[获取项目ID](https://support.huaweicloud.com/api-aom/aom_04_0024.html)。 |
   
表2Query参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| action_id | 是    | String | 告警规则id。 - 新增告警时，填写"add-alarm-action"   - 更新告警时，填写"update-alarm-action"    |
   
#### 请求参数
表3请求Header参数 
| 参数                    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| X-Auth-Token          | 是    | String | 从IAM服务获取的用户Token。获取方式请参见：[获取Token](https://support.huaweicloud.com/api-aom/aom_04_0059.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Content-Type          | 是    | String | 消息体的类型（格式）。指定类型为"application/json"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Enterprise-Project-Id | 否    | String | 企业项目id。获取方式请参见：[获取企业项目ID](https://support.huaweicloud.com/api-aom/aom_04_0024.html) 。 - 查询单个企业项目下实例，填写企业项目id。   - 查询所有企业项目下实例，填写"all_granted_eps"。    |
   
表4请求Body参数 
| 参数                     | 是否必选 | 参数类型                                                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| alarm_notifications    | 否    | [AlarmNotification] object | 告警规则通知模块。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| alarm_rule_description | 否    | String                                                                                    | 告警规则描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| alarm_rule_enable      | 否    | Boolean                                                                                   | 是否启用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| alarm_rule_name        | 是    | String                                                                                    | 告警规则名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| alarm_rule_type        | 是    | String                                                                                    | 告警规则类型。 - "metric"：指标告警规则   - "event"：事件告警规则    |
| event_alarm_spec       | 否    | [EventAlarmSpec] object       | 事件类告警结构。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| metric_alarm_spec      | 否    | [MetricAlarmSpec] object     | 指标类告警结构。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| prom_instance_id       | 否    | String                                                                                    | Prometheus实例id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| alias                  | 否    | String                                                                                    | 告警规则别名。最多可输入256个字符，只能包含中文、字母、数字、特殊字符（_-【】），开头、结尾不允许输入中划线、下划线。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表5AlarmNotification 
| 参数                        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| notification_type         | 是    | String  | 通知类型。 - "direct"：直接告警   - "alarm_policy"：告警降噪                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| route_group_enable        | 是    | Boolean | 启用告警分组规则。 - 当通知类型为"alarm_policy"时：true   - 当通知类型为"direct"时：false    如果告警触发"notify_triggered"或告警恢复"notify_resolved"都设置为false（即都不进行告警通知），则route_group_enable需设置为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| route_group_rule          | 是    | String  | 告警分组规则名称。 - 当route_group_enable 为true时，填告警分组规则名称   - 当route_group_enable 为false时，填""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| notification_enable       | 否    | Boolean | 是否启用告警通知规则。 - 当通知类型为"direct"时，填true   - 当通知类型为"alarm_policy"时，填false    如果告警触发"notify_triggered"或告警恢复"notify_resolved"都设置为false（即都不进行告警通知），则notification_enable需设置为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| bind_notification_rule_id | 否    | String  | 告警行动策略id。 - 当notification_enable为true时，填告警行动策略id   - 当notification_enable为false时，填""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| notify_resolved           | 否    | Boolean | 告警解决是否通知。 - true：通知   - false：不通知                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| notify_triggered          | 否    | Boolean | 告警触发是否通知。 - true：通知   - false：不通知                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| notify_frequency          | 否    | Integer | 通知频率 - 当通知类型为"alarm_policy"时，填"-1"   - 当通知类型为"direct"时， - "0"：只告警一次   - "300"：每5分钟   - "600"：每10分钟   - "900"：每15分钟   - "1800"：每30分钟   - "3600"：每1小时   - "10800"：每3小时   - "21600"：每6小时   - "43200"：每12小时   - "86400"：每天      |
   
 表6EventAlarmSpec 
| 参数                              | 是否必选 | 参数类型                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| alarm_source                    | 否    | String                                                                                                      | 告警规则来源。 - "systemEvent"：系统事件   - "customEvent"：自定义事件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| event_source                    | 否    | String                                                                                                      | 告警来源。 - "RDS"   - "EVS"   - "CCE"   - "LTS"   - "AOM"                                                                                                                                                                                                                                                                                         |
| monitor_objects                 | 否    | Array of Map\<String,String\> objects                                                                       | 监控对象列表。键值对形式，键值为： - "event_type"：通知类型   - "event_severity"：告警级别   - "event_name"：事件名称   - "namespace"：命名空间   - "clusterId"：集群id   - "customField"：用户自定义字段    |
| trigger_conditions              | 是    | Array of [EventTriggerCondition] objects | 触发条件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| alarm_rule_template_bind_enable | 否    | Boolean                                                                                                     | 是否绑定告警模板（废弃）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| alarm_rule_template_id          | 否    | String                                                                                                      | 告警模板id（废弃）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表7EventTriggerCondition 
| 参数                 | 是否必选 | 参数类型                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| event_name         | 否    | String                | 事件名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| trigger_type       | 否    | String                | 触发方式： - "immediately"：立即触发   - "accumulative"：累计触发                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| aggregation_window | 否    | Long                  | 监控周期。单位为秒，例如 1小时 填"3600"，当trigger_type为"immediately"时 该参数为空，当trigger_type为"accumulative"时 该参数必填。 监控周期范围： 5分钟，20分钟，1小时，4小时，24小时。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| operator           | 否    | String                | 判断条件："\>","\<","=","\>=","\<="，当trigger_type为"immediately"时 该参数为空。当trigger_type为"accumulative"时 该参数必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| thresholds         | 否    | Map\<String,Integer\> | 键值对形式，键为告警级别，值为累计次数，当trigger_type为"immediately"时 累计次数为1。当当trigger_type为"accumulative"时 累计次数范围为1\~100 （如果trigger_conditions参数不为空，该参数必填）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| frequency          | 否    | String                | 事件类告警频率。当trigger_type为"immediately"时 值为-1。 - "-1"：N/A   - "0"：只告警一次   - "300"：每5分钟   - "600"：每10分钟：   - "900"：每15分钟：   - "1800"：每30分钟：   - "3600"：每1小时：   - "10800"：每3小时：   - "21600"：每6小时：   - "43200"：每12小时：   - "86400"：每天：    |
   
 表8MetricAlarmSpec 
| 参数                              | 是否必选 | 参数类型                                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| monitor_type                    | 是    | String                                                                                            | 监控类型。 - "all_metric"：全量指标   - "promql"：PromQL   - "resource"：（日落）资源类型    |
| no_data_conditions              | 否    | Array of [NoDataCondition] objects   | 无数据处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| alarm_tags                      | 是    | Array of [AlarmTags] objects               | 告警标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| monitor_objects                 | 否    | Array of Map\<String,String\> objects                                                             | 监控对象列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| recovery_conditions             | 是    | [RecoveryCondition] object         | 告警恢复条件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| trigger_conditions              | 是    | Array of [TriggerCondition] objects | 触发条件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| alarm_rule_template_bind_enable | 否    | Boolean                                                                                           | 是否绑定告警模板（废弃）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| alarm_rule_template_id          | 否    | String                                                                                            | 告警模板id（废弃）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表9NoDataCondition 
| 参数                  | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| no_data_timeframe   | 否    | Integer | 无数据处理连续周期。取值范围为1\~5。（当"notify_no_data"为true时，该参数必填，当"notify_no_data"为false时，该参数为空）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| no_data_alert_state | 否    | String  | 数据不足时，阈值规则的状态。（当"notify_no_data"为true时，该参数必填，当"notify_no_data"为false时，该参数为空） - "no_data"：数据不足并发送通知   - "alerting"：告警   - "ok"：正常   - "pre_state"：保持上一个状态    |
| notify_no_data      | 否    | Boolean | 无数据处理开关。true表示启用无数据处理，false表示关闭无数据处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表10AlarmTags 
| 参数                 | 是否必选 | 参数类型             | 描述     |
|:---|:---|:---|:---|
| auto_tags          | 否    | Array of strings | 自动标签。  |
| custom_tags        | 否    | Array of strings | 自定义标签。 |
| custom_annotations | 否    | Array of strings | 告警标注。  |
   
 表11RecoveryCondition 
| 参数                 | 是否必选 | 参数类型    | 描述                                                     |
|:---|:---|:---|:---|
| recovery_timeframe | 否    | Integer | 告警恢复周期的个数。取值范围为1\~3 (如果recovery_timeframe 参数不为空，该参数必填） |
   
 表12TriggerCondition 
| 参数                      | 是否必选 | 参数类型                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| metric_query_mode       | 是    | String                                                                  | 指标查询模式。 - "AOM"：AOM原生   - "PROM"：AOM Prometheus   - "NATIVE_PROM"：原生Prometheus                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| metric_namespace        | 是    | String                                                                  | 指标命名空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| metric_name             | 是    | String                                                                  | 指标名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| metric_unit             | 是    | String                                                                  | 指标单位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| metric_labels           | 是    | Array of strings                                                        | 指标维度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| promql                  | 是    | String                                                                  | Prometheus语句。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| promql_expr             | 否    | String                                                                  | Prometheus语句模板。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| trigger_times           | 否    | Integer                                                                 | 连续周期个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| trigger_interval        | 否    | String                                                                  | 检查频率周期。 - 当trigger_type 为"HOURLY"时，填""。   - 当trigger_type为"DAILY"时，格式为："小时" 。例如每天凌晨三点"03:00"。   - 当trigger_type为"WEEKLY"时，格式为："星期 小时"。例如每周一凌晨三点 "1 03:00"。   - 当trigger_type为"CRON"时，格式为标准CRON表达式。   - 当trigger_type为"FIXED_RATE"时，秒的取值为15s，30s，分钟为 1\~59，小时为 1\~24。例如"15s"，"30s"，"1min"，"1h"。    |
| trigger_type            | 否    | String                                                                  | 触发频率的类型： - "FIXED_RATE"：固定间隔   - "HOURLY"：每小时   - "DAILY"：每天   - "WEEKLY"：每周   - "CRON"：Cron表达式                                                                                                                                                                                                   |
| promql_for              | 否    | String                                                                  | Prometheus原生监控时长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| aggregation_type        | 否    | String                                                                  | **参数解释**： 统计方式： **取值范围**： average：平均值。 minimum：最小值。 maximum：最大值。 sum：总计。 sampleCount：样本个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| operator                | 否    | String                                                                  | 判断条件："\>","\<","=","\>=","\<="。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| thresholds              | 否    | Map\<String,String\>                                                    | 键值对形式，键为告警级别，值为告警阈值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| aggregation_window      | 否    | String                                                                  | 统计周期。 - "15s"：15秒   - "30s"：30秒   - "1m"：1分钟   - "5m"：5分钟   - "15m"：15分钟   - "1h"：1小时                            |
| cmdb                    | 否    | [CmdbInfo] object | cmdb信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| query_match             | 否    | String                                                                  | 查询筛选条件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| query_param             | 是    | Object                                                                  | 查询参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| aom_monitor_level       | 否    | String                                                                  | 监控层级。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| aggregate_type          | 否    | String                                                                  | 聚合方式。 - "by"：不分组   - "avg"：平均值分组   - "max"：最大值分组   - "min"：最小值分组   - "sum"：求和分组                                                                                                                                                                                                                   |
| metric_statistic_method | 否    | String                                                                  | 当配置方式为全量指标时可选择的指标运算方式。 - "single"：单个指标进行运算   - "mix"：多个指标进行混合运算                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| expression              | 否    | String                                                                  | 混合运算的表达式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| mix_promql              | 否    | String                                                                  | 混合运算的promQL。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表13CmdbInfo 
| 参数       | 是否必选 | 参数类型                                                                              | 描述      |
|:---|:---|:---|:---|
| app_id   | 否    | String                                                                            | 应用id。   |
| node_ids | 否    | Array of [NodeInfo] objects | 节点信息列表。 |
   
 表14NodeInfo 
| 参数        | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| node_type | 否    | String | 节点类型。 |
| node_id   | 否    | String | 节点id。 |
   
#### 响应参数
**状态码：200**
表15响应Body参数 
| 参数            | 参数类型                                                                                                                               | 描述      |
|:---|:---|:---|
| error_code    | String                                                                                                                             | 错误码。    |
| error_message | String                                                                                                                             | 错误信息。   |
| alarm_rules   | Array of [AddOrUpdateAlarmRuleV4ItemResult] objects | 告警规则列表。 |
   
 表16AddOrUpdateAlarmRuleV4ItemResult 
| 参数              | 参数类型   | 描述           |
|:---|:---|:---|
| alarm_rule_name | String | 告警规则名称。      |
| result          | String | 告警规则新增或修改结果。 |
   
**状态码：400**
表17响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                               |
|:---|:---|:---|
| error_code | String | **参数解释：** 非法请求错误码。 **取值范围：** 不涉及。 |
| error_msg  | String | **参数解释：** 错误信息。 **取值范围：** 不涉及。    |
| error_type | String | **参数解释：** 错误类型。 **取值范围：** 不涉及。    |
| trace_id   | String | **参数解释：** 请求id。 **取值范围：** 不涉及。    |
   
**状态码：500**
表18响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                               |
|:---|:---|:---|
| error_code | String | **参数解释：** 非法请求错误码。 **取值范围：** 不涉及。 |
| error_msg  | String | **参数解释：** 错误信息。 **取值范围：** 不涉及。    |
| error_type | String | **参数解释：** 错误类型。 **取值范围：** 不涉及。    |
| trace_id   | String | **参数解释：** 请求id。 **取值范围：** 不涉及。    |
   
#### 请求示例
- 新增指标类告警规则。
  ```
  https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=add-alarm-action
  {
    "alarm_notifications" : {
      "bind_notification_rule_id" : "",
      "notification_enable" : false,
      "notification_type" : "alarm_policy",
      "notify_frequency" : -1,
      "notify_resolved" : true,
      "notify_triggered" : true,
      "route_group_enable" : true,
      "route_group_rule" : "aom_route_group_rule"
    },
    "alarm_rule_description" : "aom_alarm_rule",
    "alarm_rule_enable" : true,
    "alarm_rule_name" : "aom_alarm_rule",
    "alarm_rule_type" : "metric",
    "metric_alarm_spec" : {
      "alarm_rule_template_bind_enable" : false,
      "alarm_rule_template_id" : "",
      "alarm_tags" : [ {
        "auto_tags" : [ ],
        "custom_annotations" : [ "333=rrr" ],
        "custom_tags" : [ "333=rrr" ]
      } ],
      "monitor_objects" : [ ],
      "monitor_type" : "all_metric",
      "no_data_conditions" : [ {
        "no_data_alert_state" : "no_data",
        "no_data_timeframe" : 3,
        "notify_no_data" : true
      } ],
      "recovery_conditions" : {
        "recovery_timeframe" : 2
      },
      "trigger_conditions" : [ {
        "aggregate_type" : "by",
        "aggregation_type" : "average",
        "aggregation_window" : "5m",
        "aom_monitor_level" : "",
        "cmdb" : {
          "app_id" : "",
          "node_ids" : [ ]
        },
        "expression" : "",
        "metric_labels" : [ ],
        "metric_name" : "aom_metrics_total",
        "metric_namespace" : "",
        "metric_query_mode" : "PROM",
        "metric_statistic_method" : "single",
        "metric_unit" : "",
        "mix_promql" : "",
        "operator" : ">",
        "promql" : "label_replace(avg_over_time(aom_metrics_total{instance=\"1117919565\"}[59999ms]),\"__name__\",\"aom_metrics_total\",\"\",\"\")",
        "query_match" : "",
        "query_param" : { },
        "thresholds" : {
          "Info" : "100"
        },
        "trigger_interval" : "15m",
        "trigger_times" : 4,
        "trigger_type" : "FIXED_RATE"
      } ]
    },
    "prom_instance_id" : "0"
  }
  ```
  
- 更新指标类告警规则
  ```
  https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=update-alarm-action
  {
    "alarm_notifications" : {
      "bind_notification_rule_id" : "",
      "notification_enable" : false,
      "notification_type" : "alarm_policy",
      "notify_frequency" : -1,
      "notify_resolved" : true,
      "notify_triggered" : true,
      "route_group_enable" : true,
      "route_group_rule" : "aom_route_group_rule"
    },
    "alarm_rule_description" : "aom_alarm_rule",
    "alarm_rule_enable" : true,
    "alarm_rule_name" : "aom_alarm_rule",
    "alarm_rule_type" : "metric",
    "metric_alarm_spec" : {
      "alarm_rule_template_bind_enable" : false,
      "alarm_rule_template_id" : "",
      "alarm_tags" : [ {
        "auto_tags" : [ ],
        "custom_annotations" : [ "333=rrr" ],
        "custom_tags" : [ "333=rrr" ]
      } ],
      "monitor_objects" : [ ],
      "monitor_type" : "all_metric",
      "no_data_conditions" : [ {
        "no_data_alert_state" : "no_data",
        "no_data_timeframe" : 3,
        "notify_no_data" : true
      } ],
      "recovery_conditions" : {
        "recovery_timeframe" : 2
      },
      "trigger_conditions" : [ {
        "aggregate_type" : "by",
        "aggregation_type" : "average",
        "aggregation_window" : "5m",
        "aom_monitor_level" : "",
        "cmdb" : {
          "app_id" : "",
          "node_ids" : [ ]
        },
        "expression" : "",
        "metric_labels" : [ ],
        "metric_name" : "aom_metrics_total",
        "metric_namespace" : "",
        "metric_query_mode" : "PROM",
        "metric_statistic_method" : "single",
        "metric_unit" : "",
        "mix_promql" : "",
        "operator" : ">",
        "promql" : "label_replace(avg_over_time(aom_metrics_total{instance=\"1117919565\"}[59999ms]),\"__name__\",\"aom_metrics_total\",\"\",\"\")",
        "query_match" : "",
        "query_param" : { },
        "thresholds" : {
          "Info" : "100"
        },
        "trigger_interval" : "15m",
        "trigger_times" : 4,
        "trigger_type" : "FIXED_RATE"
      } ]
    },
    "prom_instance_id" : "0"
  }
  ```
  
- 新增事件类告警规则。
  ```
  https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=add-alarm-action
  {
    "alarm_notifications" : {
      "bind_notification_rule_id" : "aom_event_notification_rule",
      "notification_enable" : true,
      "notification_type" : "direct",
      "notify_frequency" : 0,
      "notify_resolved" : false,
      "notify_triggered" : false,
      "route_group_enable" : false,
      "route_group_rule" : ""
    },
    "alarm_rule_description" : "aom_alarm_event_rule",
    "alarm_rule_enable" : true,
    "alarm_rule_name" : "aom_event_alarm_rule",
    "alarm_rule_type" : "event",
    "event_alarm_spec" : {
      "alarm_source" : "systemEvent",
      "event_source" : "CCE",
      "monitor_objects" : [ {
        "event_name" : "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
        "event_type" : "event"
      } ],
      "trigger_conditions" : [ {
        "aggregation_window" : 300,
        "event_name" : "扩容节点超时##ScaleUpTimedOut",
        "frequency" : "-1",
        "operator" : ">",
        "thresholds" : {
          "Critical" : 1
        },
        "trigger_type" : "accumulative"
      }, {
        "event_name" : "数据卷扩容失败##VolumeResizeFailed",
        "thresholds" : {
          "Critical" : 1
        },
        "trigger_type" : "immediately"
      } ]
    }
  }
  ```
  
- 更新事件类告警规则
  ```
  https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=update-alarm-action
  {
    "alarm_notifications" : {
      "bind_notification_rule_id" : "aom_event_notification_rule",
      "notification_enable" : true,
      "notification_type" : "direct",
      "notify_frequency" : 0,
      "notify_resolved" : false,
      "notify_triggered" : false,
      "route_group_enable" : false,
      "route_group_rule" : ""
    },
    "alarm_rule_description" : "aom_alarm_event_rule",
    "alarm_rule_enable" : true,
    "alarm_rule_name" : "aom_event_alarm_rule",
    "alarm_rule_type" : "event",
    "event_alarm_spec" : {
      "alarm_source" : "systemEvent",
      "event_source" : "CCE",
      "monitor_objects" : [ {
        "event_name" : "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
        "event_type" : "event"
      } ],
      "trigger_conditions" : [ {
        "aggregation_window" : 300,
        "event_name" : "扩容节点超时##ScaleUpTimedOut",
        "frequency" : "-1",
        "operator" : ">",
        "thresholds" : {
          "Critical" : 1
        },
        "trigger_type" : "accumulative"
      }, {
        "event_name" : "数据卷扩容失败##VolumeResizeFailed",
        "thresholds" : {
          "Critical" : 2
        },
        "trigger_type" : "immediately"
      } ]
    }
  }
  ```
  
 
#### 响应示例
**状态码：200**
OK 请求响应成功。
```
{
  "alarm_rules" : [ {
    "alarm_rule_name" : "aom_alarm_rule",
    "result" : "success"
  } ],
  "error_code" : "200",
  "error_message" : "success"
}
```
**状态码：400**
BadRequest 非法请求。建议直接修改该请求，不要重试该请求。
```
{
  "error_code" : "AOM.02021006",
  "error_msg" : "This rule actionId is invalid",
  "error_type" : "PARAM_INVALID",
  "trace_id" : "58ef0f7c107a2b577f78b9cc7f48b46f"
}
```
**状态码：500**
InternalServerError 表明服务端能被请求访问到，但是不能理解用户的请求。
```
{
  "error_code" : "AOM.02021500",
  "error_msg" : "internal server error",
  "error_type" : "INTERNAL_SERVER_ERROR",
  "trace_id" : ""
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  - 新增指标类告警规则。
    ```
    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.aom.v2.region.AomRegion;
    import com.huaweicloud.sdk.aom.v2.*;
    import com.huaweicloud.sdk.aom.v2.model.*;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    public class AddOrUpdateMetricOrEventAlarmRuleSolution {
        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);
            AomClient client = AomClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(AomRegion.valueOf("<YOUR REGION>"))
                    .build();
            AddOrUpdateMetricOrEventAlarmRuleRequest request = new AddOrUpdateMetricOrEventAlarmRuleRequest();
            AddOrUpdateAlarmRuleV4RequestBody body = new AddOrUpdateAlarmRuleV4RequestBody();
            CmdbInfo cmdbTriggerConditions = new CmdbInfo();
            cmdbTriggerConditions.withAppId("");
            Map<String, String> listTriggerConditionsThresholds = new HashMap<>();
            listTriggerConditionsThresholds.put("Info", "100");
            List<TriggerCondition> listMetricAlarmSpecTriggerConditions = new ArrayList<>();
            listMetricAlarmSpecTriggerConditions.add(
                new TriggerCondition()
                    .withMetricQueryMode(TriggerCondition.MetricQueryModeEnum.fromValue("PROM"))
                    .withMetricNamespace("")
                    .withMetricName("aom_metrics_total")
                    .withMetricUnit("")
                    .withMetricLabels()
                    .withPromql("label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")")
                    .withTriggerTimes(4)
                    .withTriggerInterval("15m")
                    .withTriggerType(TriggerCondition.TriggerTypeEnum.fromValue("FIXED_RATE"))
                    .withAggregationType("average")
                    .withOperator(">")
                    .withThresholds(listTriggerConditionsThresholds)
                    .withAggregationWindow("5m")
                    .withCmdb(cmdbTriggerConditions)
                    .withQueryMatch("")
                    .withQueryParam(new Object())
                    .withAomMonitorLevel("")
                    .withAggregateType(TriggerCondition.AggregateTypeEnum.fromValue("by"))
                    .withMetricStatisticMethod(TriggerCondition.MetricStatisticMethodEnum.fromValue("single"))
                    .withExpression("")
                    .withMixPromql("")
            );
            RecoveryCondition recoveryConditionsMetricAlarmSpec = new RecoveryCondition();
            recoveryConditionsMetricAlarmSpec.withRecoveryTimeframe(2);
            List<String> listAlarmTagsCustomAnnotations = new ArrayList<>();
            listAlarmTagsCustomAnnotations.add("333=rrr");
            List<String> listAlarmTagsCustomTags = new ArrayList<>();
            listAlarmTagsCustomTags.add("333=rrr");
            List<AlarmTags> listMetricAlarmSpecAlarmTags = new ArrayList<>();
            listMetricAlarmSpecAlarmTags.add(
                new AlarmTags()
                    .withAutoTags()
                    .withCustomTags(listAlarmTagsCustomTags)
                    .withCustomAnnotations(listAlarmTagsCustomAnnotations)
            );
            List<NoDataCondition> listMetricAlarmSpecNoDataConditions = new ArrayList<>();
            listMetricAlarmSpecNoDataConditions.add(
                new NoDataCondition()
                    .withNoDataTimeframe(3)
                    .withNoDataAlertState(NoDataCondition.NoDataAlertStateEnum.fromValue("no_data"))
                    .withNotifyNoData(true)
            );
            MetricAlarmSpec metricAlarmSpecbody = new MetricAlarmSpec();
            metricAlarmSpecbody.withMonitorType(MetricAlarmSpec.MonitorTypeEnum.fromValue("all_metric"))
                .withNoDataConditions(listMetricAlarmSpecNoDataConditions)
                .withAlarmTags(listMetricAlarmSpecAlarmTags)
                .withRecoveryConditions(recoveryConditionsMetricAlarmSpec)
                .withTriggerConditions(listMetricAlarmSpecTriggerConditions)
                .withAlarmRuleTemplateBindEnable(false)
                .withAlarmRuleTemplateId("");
            AlarmNotification alarmNotificationsbody = new AlarmNotification();
            alarmNotificationsbody.withNotificationType(AlarmNotification.NotificationTypeEnum.fromValue("alarm_policy"))
                .withRouteGroupEnable(true)
                .withRouteGroupRule("aom_route_group_rule")
                .withNotificationEnable(false)
                .withBindNotificationRuleId("")
                .withNotifyResolved(true)
                .withNotifyTriggered(true)
                .withNotifyFrequency(-1);
            body.withPromInstanceId("0");
            body.withMetricAlarmSpec(metricAlarmSpecbody);
            body.withAlarmRuleType(AddOrUpdateAlarmRuleV4RequestBody.AlarmRuleTypeEnum.fromValue("metric"));
            body.withAlarmRuleName("aom_alarm_rule");
            body.withAlarmRuleEnable(true);
            body.withAlarmRuleDescription("aom_alarm_rule");
            body.withAlarmNotifications(alarmNotificationsbody);
            request.withBody(body);
            try {
                AddOrUpdateMetricOrEventAlarmRuleResponse response = client.addOrUpdateMetricOrEventAlarmRule(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());
            }
        }
    }
    ```
    
  
  - 更新指标类告警规则
    ```
    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.aom.v2.region.AomRegion;
    import com.huaweicloud.sdk.aom.v2.*;
    import com.huaweicloud.sdk.aom.v2.model.*;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    public class AddOrUpdateMetricOrEventAlarmRuleSolution {
        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);
            AomClient client = AomClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(AomRegion.valueOf("<YOUR REGION>"))
                    .build();
            AddOrUpdateMetricOrEventAlarmRuleRequest request = new AddOrUpdateMetricOrEventAlarmRuleRequest();
            AddOrUpdateAlarmRuleV4RequestBody body = new AddOrUpdateAlarmRuleV4RequestBody();
            CmdbInfo cmdbTriggerConditions = new CmdbInfo();
            cmdbTriggerConditions.withAppId("");
            Map<String, String> listTriggerConditionsThresholds = new HashMap<>();
            listTriggerConditionsThresholds.put("Info", "100");
            List<TriggerCondition> listMetricAlarmSpecTriggerConditions = new ArrayList<>();
            listMetricAlarmSpecTriggerConditions.add(
                new TriggerCondition()
                    .withMetricQueryMode(TriggerCondition.MetricQueryModeEnum.fromValue("PROM"))
                    .withMetricNamespace("")
                    .withMetricName("aom_metrics_total")
                    .withMetricUnit("")
                    .withMetricLabels()
                    .withPromql("label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")")
                    .withTriggerTimes(4)
                    .withTriggerInterval("15m")
                    .withTriggerType(TriggerCondition.TriggerTypeEnum.fromValue("FIXED_RATE"))
                    .withAggregationType("average")
                    .withOperator(">")
                    .withThresholds(listTriggerConditionsThresholds)
                    .withAggregationWindow("5m")
                    .withCmdb(cmdbTriggerConditions)
                    .withQueryMatch("")
                    .withQueryParam(new Object())
                    .withAomMonitorLevel("")
                    .withAggregateType(TriggerCondition.AggregateTypeEnum.fromValue("by"))
                    .withMetricStatisticMethod(TriggerCondition.MetricStatisticMethodEnum.fromValue("single"))
                    .withExpression("")
                    .withMixPromql("")
            );
            RecoveryCondition recoveryConditionsMetricAlarmSpec = new RecoveryCondition();
            recoveryConditionsMetricAlarmSpec.withRecoveryTimeframe(2);
            List<String> listAlarmTagsCustomAnnotations = new ArrayList<>();
            listAlarmTagsCustomAnnotations.add("333=rrr");
            List<String> listAlarmTagsCustomTags = new ArrayList<>();
            listAlarmTagsCustomTags.add("333=rrr");
            List<AlarmTags> listMetricAlarmSpecAlarmTags = new ArrayList<>();
            listMetricAlarmSpecAlarmTags.add(
                new AlarmTags()
                    .withAutoTags()
                    .withCustomTags(listAlarmTagsCustomTags)
                    .withCustomAnnotations(listAlarmTagsCustomAnnotations)
            );
            List<NoDataCondition> listMetricAlarmSpecNoDataConditions = new ArrayList<>();
            listMetricAlarmSpecNoDataConditions.add(
                new NoDataCondition()
                    .withNoDataTimeframe(3)
                    .withNoDataAlertState(NoDataCondition.NoDataAlertStateEnum.fromValue("no_data"))
                    .withNotifyNoData(true)
            );
            MetricAlarmSpec metricAlarmSpecbody = new MetricAlarmSpec();
            metricAlarmSpecbody.withMonitorType(MetricAlarmSpec.MonitorTypeEnum.fromValue("all_metric"))
                .withNoDataConditions(listMetricAlarmSpecNoDataConditions)
                .withAlarmTags(listMetricAlarmSpecAlarmTags)
                .withRecoveryConditions(recoveryConditionsMetricAlarmSpec)
                .withTriggerConditions(listMetricAlarmSpecTriggerConditions)
                .withAlarmRuleTemplateBindEnable(false)
                .withAlarmRuleTemplateId("");
            AlarmNotification alarmNotificationsbody = new AlarmNotification();
            alarmNotificationsbody.withNotificationType(AlarmNotification.NotificationTypeEnum.fromValue("alarm_policy"))
                .withRouteGroupEnable(true)
                .withRouteGroupRule("aom_route_group_rule")
                .withNotificationEnable(false)
                .withBindNotificationRuleId("")
                .withNotifyResolved(true)
                .withNotifyTriggered(true)
                .withNotifyFrequency(-1);
            body.withPromInstanceId("0");
            body.withMetricAlarmSpec(metricAlarmSpecbody);
            body.withAlarmRuleType(AddOrUpdateAlarmRuleV4RequestBody.AlarmRuleTypeEnum.fromValue("metric"));
            body.withAlarmRuleName("aom_alarm_rule");
            body.withAlarmRuleEnable(true);
            body.withAlarmRuleDescription("aom_alarm_rule");
            body.withAlarmNotifications(alarmNotificationsbody);
            request.withBody(body);
            try {
                AddOrUpdateMetricOrEventAlarmRuleResponse response = client.addOrUpdateMetricOrEventAlarmRule(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());
            }
        }
    }
    ```
    
  
  - 新增事件类告警规则。
    ```
    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.aom.v2.region.AomRegion;
    import com.huaweicloud.sdk.aom.v2.*;
    import com.huaweicloud.sdk.aom.v2.model.*;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    public class AddOrUpdateMetricOrEventAlarmRuleSolution {
        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);
            AomClient client = AomClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(AomRegion.valueOf("<YOUR REGION>"))
                    .build();
            AddOrUpdateMetricOrEventAlarmRuleRequest request = new AddOrUpdateMetricOrEventAlarmRuleRequest();
            AddOrUpdateAlarmRuleV4RequestBody body = new AddOrUpdateAlarmRuleV4RequestBody();
            Map<String, Integer> listTriggerConditionsThresholds = new HashMap<>();
            listTriggerConditionsThresholds.put("Critical", 1);
            Map<String, Integer> listTriggerConditionsThresholds1 = new HashMap<>();
            listTriggerConditionsThresholds1.put("Critical", 1);
            List<EventTriggerCondition> listEventAlarmSpecTriggerConditions = new ArrayList<>();
            listEventAlarmSpecTriggerConditions.add(
                new EventTriggerCondition()
                    .withEventName("扩容节点超时##ScaleUpTimedOut")
                    .withTriggerType(EventTriggerCondition.TriggerTypeEnum.fromValue("accumulative"))
                    .withAggregationWindow(300L)
                    .withOperator(">")
                    .withThresholds(listTriggerConditionsThresholds1)
                    .withFrequency("-1")
            );
            listEventAlarmSpecTriggerConditions.add(
                new EventTriggerCondition()
                    .withEventName("数据卷扩容失败##VolumeResizeFailed")
                    .withTriggerType(EventTriggerCondition.TriggerTypeEnum.fromValue("immediately"))
                    .withThresholds(listTriggerConditionsThresholds)
            );
            Map<String, String> listMonitorObjectsMonitorObjects = new HashMap<>();
            listMonitorObjectsMonitorObjects.put("event_name", "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed");
            listMonitorObjectsMonitorObjects.put("event_type", "event");
            List<Map<String, String>> listEventAlarmSpecMonitorObjects = new ArrayList<>();
            listEventAlarmSpecMonitorObjects.add(listMonitorObjectsMonitorObjects);
            EventAlarmSpec eventAlarmSpecbody = new EventAlarmSpec();
            eventAlarmSpecbody.withAlarmSource(EventAlarmSpec.AlarmSourceEnum.fromValue("systemEvent"))
                .withEventSource("CCE")
                .withMonitorObjects(listEventAlarmSpecMonitorObjects)
                .withTriggerConditions(listEventAlarmSpecTriggerConditions);
            AlarmNotification alarmNotificationsbody = new AlarmNotification();
            alarmNotificationsbody.withNotificationType(AlarmNotification.NotificationTypeEnum.fromValue("direct"))
                .withRouteGroupEnable(false)
                .withRouteGroupRule("")
                .withNotificationEnable(true)
                .withBindNotificationRuleId("aom_event_notification_rule")
                .withNotifyResolved(false)
                .withNotifyTriggered(false)
                .withNotifyFrequency(0);
            body.withEventAlarmSpec(eventAlarmSpecbody);
            body.withAlarmRuleType(AddOrUpdateAlarmRuleV4RequestBody.AlarmRuleTypeEnum.fromValue("event"));
            body.withAlarmRuleName("aom_event_alarm_rule");
            body.withAlarmRuleEnable(true);
            body.withAlarmRuleDescription("aom_alarm_event_rule");
            body.withAlarmNotifications(alarmNotificationsbody);
            request.withBody(body);
            try {
                AddOrUpdateMetricOrEventAlarmRuleResponse response = client.addOrUpdateMetricOrEventAlarmRule(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());
            }
        }
    }
    ```
    
  
  - 更新事件类告警规则
    ```
    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.aom.v2.region.AomRegion;
    import com.huaweicloud.sdk.aom.v2.*;
    import com.huaweicloud.sdk.aom.v2.model.*;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    public class AddOrUpdateMetricOrEventAlarmRuleSolution {
        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);
            AomClient client = AomClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(AomRegion.valueOf("<YOUR REGION>"))
                    .build();
            AddOrUpdateMetricOrEventAlarmRuleRequest request = new AddOrUpdateMetricOrEventAlarmRuleRequest();
            AddOrUpdateAlarmRuleV4RequestBody body = new AddOrUpdateAlarmRuleV4RequestBody();
            Map<String, Integer> listTriggerConditionsThresholds = new HashMap<>();
            listTriggerConditionsThresholds.put("Critical", 2);
            Map<String, Integer> listTriggerConditionsThresholds1 = new HashMap<>();
            listTriggerConditionsThresholds1.put("Critical", 1);
            List<EventTriggerCondition> listEventAlarmSpecTriggerConditions = new ArrayList<>();
            listEventAlarmSpecTriggerConditions.add(
                new EventTriggerCondition()
                    .withEventName("扩容节点超时##ScaleUpTimedOut")
                    .withTriggerType(EventTriggerCondition.TriggerTypeEnum.fromValue("accumulative"))
                    .withAggregationWindow(300L)
                    .withOperator(">")
                    .withThresholds(listTriggerConditionsThresholds1)
                    .withFrequency("-1")
            );
            listEventAlarmSpecTriggerConditions.add(
                new EventTriggerCondition()
                    .withEventName("数据卷扩容失败##VolumeResizeFailed")
                    .withTriggerType(EventTriggerCondition.TriggerTypeEnum.fromValue("immediately"))
                    .withThresholds(listTriggerConditionsThresholds)
            );
            Map<String, String> listMonitorObjectsMonitorObjects = new HashMap<>();
            listMonitorObjectsMonitorObjects.put("event_name", "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed");
            listMonitorObjectsMonitorObjects.put("event_type", "event");
            List<Map<String, String>> listEventAlarmSpecMonitorObjects = new ArrayList<>();
            listEventAlarmSpecMonitorObjects.add(listMonitorObjectsMonitorObjects);
            EventAlarmSpec eventAlarmSpecbody = new EventAlarmSpec();
            eventAlarmSpecbody.withAlarmSource(EventAlarmSpec.AlarmSourceEnum.fromValue("systemEvent"))
                .withEventSource("CCE")
                .withMonitorObjects(listEventAlarmSpecMonitorObjects)
                .withTriggerConditions(listEventAlarmSpecTriggerConditions);
            AlarmNotification alarmNotificationsbody = new AlarmNotification();
            alarmNotificationsbody.withNotificationType(AlarmNotification.NotificationTypeEnum.fromValue("direct"))
                .withRouteGroupEnable(false)
                .withRouteGroupRule("")
                .withNotificationEnable(true)
                .withBindNotificationRuleId("aom_event_notification_rule")
                .withNotifyResolved(false)
                .withNotifyTriggered(false)
                .withNotifyFrequency(0);
            body.withEventAlarmSpec(eventAlarmSpecbody);
            body.withAlarmRuleType(AddOrUpdateAlarmRuleV4RequestBody.AlarmRuleTypeEnum.fromValue("event"));
            body.withAlarmRuleName("aom_event_alarm_rule");
            body.withAlarmRuleEnable(true);
            body.withAlarmRuleDescription("aom_alarm_event_rule");
            body.withAlarmNotifications(alarmNotificationsbody);
            request.withBody(body);
            try {
                AddOrUpdateMetricOrEventAlarmRuleResponse response = client.addOrUpdateMetricOrEventAlarmRule(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());
            }
        }
    }
    ```
    
   
- [Python]
  - 新增指标类告警规则。
    ```
    # coding: utf-8
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkaom.v2.region.aom_region import AomRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkaom.v2 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 = AomClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(AomRegion.value_of("<YOUR REGION>")) \
            .build()
        try:
            request = AddOrUpdateMetricOrEventAlarmRuleRequest()
            cmdbTriggerConditions = CmdbInfo(
                app_id=""
            )
            listThresholdsTriggerConditions = {
                "Info": "100"
            }
            listTriggerConditionsMetricAlarmSpec = [
                TriggerCondition(
                    metric_query_mode="PROM",
                    metric_namespace="",
                    metric_name="aom_metrics_total",
                    metric_unit="",
                    promql="label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")",
                    trigger_times=4,
                    trigger_interval="15m",
                    trigger_type="FIXED_RATE",
                    aggregation_type="average",
                    operator=">",
                    thresholds=listThresholdsTriggerConditions,
                    aggregation_window="5m",
                    cmdb=cmdbTriggerConditions,
                    query_match="",
                    query_param={},
                    aom_monitor_level="",
                    aggregate_type="by",
                    metric_statistic_method="single",
                    expression="",
                    mix_promql=""
                )
            ]
            recoveryConditionsMetricAlarmSpec = RecoveryCondition(
                recovery_timeframe=2
            )
            listCustomAnnotationsAlarmTags = [
                "333=rrr"
            ]
            listCustomTagsAlarmTags = [
                "333=rrr"
            ]
            listAlarmTagsMetricAlarmSpec = [
                AlarmTags(
                    custom_tags=listCustomTagsAlarmTags,
                    custom_annotations=listCustomAnnotationsAlarmTags
                )
            ]
            listNoDataConditionsMetricAlarmSpec = [
                NoDataCondition(
                    no_data_timeframe=3,
                    no_data_alert_state="no_data",
                    notify_no_data=True
                )
            ]
            metricAlarmSpecbody = MetricAlarmSpec(
                monitor_type="all_metric",
                no_data_conditions=listNoDataConditionsMetricAlarmSpec,
                alarm_tags=listAlarmTagsMetricAlarmSpec,
                recovery_conditions=recoveryConditionsMetricAlarmSpec,
                trigger_conditions=listTriggerConditionsMetricAlarmSpec,
                alarm_rule_template_bind_enable=False,
                alarm_rule_template_id=""
            )
            alarmNotificationsbody = AlarmNotification(
                notification_type="alarm_policy",
                route_group_enable=True,
                route_group_rule="aom_route_group_rule",
                notification_enable=False,
                bind_notification_rule_id="",
                notify_resolved=True,
                notify_triggered=True,
                notify_frequency=-1
            )
            request.body = AddOrUpdateAlarmRuleV4RequestBody(
                prom_instance_id="0",
                metric_alarm_spec=metricAlarmSpecbody,
                alarm_rule_type="metric",
                alarm_rule_name="aom_alarm_rule",
                alarm_rule_enable=True,
                alarm_rule_description="aom_alarm_rule",
                alarm_notifications=alarmNotificationsbody
            )
            response = client.add_or_update_metric_or_event_alarm_rule(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    ```
    
  
  - 更新指标类告警规则
    ```
    # coding: utf-8
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkaom.v2.region.aom_region import AomRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkaom.v2 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 = AomClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(AomRegion.value_of("<YOUR REGION>")) \
            .build()
        try:
            request = AddOrUpdateMetricOrEventAlarmRuleRequest()
            cmdbTriggerConditions = CmdbInfo(
                app_id=""
            )
            listThresholdsTriggerConditions = {
                "Info": "100"
            }
            listTriggerConditionsMetricAlarmSpec = [
                TriggerCondition(
                    metric_query_mode="PROM",
                    metric_namespace="",
                    metric_name="aom_metrics_total",
                    metric_unit="",
                    promql="label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")",
                    trigger_times=4,
                    trigger_interval="15m",
                    trigger_type="FIXED_RATE",
                    aggregation_type="average",
                    operator=">",
                    thresholds=listThresholdsTriggerConditions,
                    aggregation_window="5m",
                    cmdb=cmdbTriggerConditions,
                    query_match="",
                    query_param={},
                    aom_monitor_level="",
                    aggregate_type="by",
                    metric_statistic_method="single",
                    expression="",
                    mix_promql=""
                )
            ]
            recoveryConditionsMetricAlarmSpec = RecoveryCondition(
                recovery_timeframe=2
            )
            listCustomAnnotationsAlarmTags = [
                "333=rrr"
            ]
            listCustomTagsAlarmTags = [
                "333=rrr"
            ]
            listAlarmTagsMetricAlarmSpec = [
                AlarmTags(
                    custom_tags=listCustomTagsAlarmTags,
                    custom_annotations=listCustomAnnotationsAlarmTags
                )
            ]
            listNoDataConditionsMetricAlarmSpec = [
                NoDataCondition(
                    no_data_timeframe=3,
                    no_data_alert_state="no_data",
                    notify_no_data=True
                )
            ]
            metricAlarmSpecbody = MetricAlarmSpec(
                monitor_type="all_metric",
                no_data_conditions=listNoDataConditionsMetricAlarmSpec,
                alarm_tags=listAlarmTagsMetricAlarmSpec,
                recovery_conditions=recoveryConditionsMetricAlarmSpec,
                trigger_conditions=listTriggerConditionsMetricAlarmSpec,
                alarm_rule_template_bind_enable=False,
                alarm_rule_template_id=""
            )
            alarmNotificationsbody = AlarmNotification(
                notification_type="alarm_policy",
                route_group_enable=True,
                route_group_rule="aom_route_group_rule",
                notification_enable=False,
                bind_notification_rule_id="",
                notify_resolved=True,
                notify_triggered=True,
                notify_frequency=-1
            )
            request.body = AddOrUpdateAlarmRuleV4RequestBody(
                prom_instance_id="0",
                metric_alarm_spec=metricAlarmSpecbody,
                alarm_rule_type="metric",
                alarm_rule_name="aom_alarm_rule",
                alarm_rule_enable=True,
                alarm_rule_description="aom_alarm_rule",
                alarm_notifications=alarmNotificationsbody
            )
            response = client.add_or_update_metric_or_event_alarm_rule(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    ```
    
  
  - 新增事件类告警规则。
    ```
    # coding: utf-8
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkaom.v2.region.aom_region import AomRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkaom.v2 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 = AomClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(AomRegion.value_of("<YOUR REGION>")) \
            .build()
        try:
            request = AddOrUpdateMetricOrEventAlarmRuleRequest()
            listThresholdsTriggerConditions = {
                "Critical": 1
            }
            listThresholdsTriggerConditions1 = {
                "Critical": 1
            }
            listTriggerConditionsEventAlarmSpec = [
                EventTriggerCondition(
                    event_name="扩容节点超时##ScaleUpTimedOut",
                    trigger_type="accumulative",
                    aggregation_window=300,
                    operator=">",
                    thresholds=listThresholdsTriggerConditions1,
                    frequency="-1"
                ),
                EventTriggerCondition(
                    event_name="数据卷扩容失败##VolumeResizeFailed",
                    trigger_type="immediately",
                    thresholds=listThresholdsTriggerConditions
                )
            ]
            listMonitorObjectsMonitorObjects = {
                "event_name": "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
                "event_type": "event"
            }
            listMonitorObjectsEventAlarmSpec = [
                listMonitorObjectsMonitorObjects
            ]
            eventAlarmSpecbody = EventAlarmSpec(
                alarm_source="systemEvent",
                event_source="CCE",
                monitor_objects=listMonitorObjectsEventAlarmSpec,
                trigger_conditions=listTriggerConditionsEventAlarmSpec
            )
            alarmNotificationsbody = AlarmNotification(
                notification_type="direct",
                route_group_enable=False,
                route_group_rule="",
                notification_enable=True,
                bind_notification_rule_id="aom_event_notification_rule",
                notify_resolved=False,
                notify_triggered=False,
                notify_frequency=0
            )
            request.body = AddOrUpdateAlarmRuleV4RequestBody(
                event_alarm_spec=eventAlarmSpecbody,
                alarm_rule_type="event",
                alarm_rule_name="aom_event_alarm_rule",
                alarm_rule_enable=True,
                alarm_rule_description="aom_alarm_event_rule",
                alarm_notifications=alarmNotificationsbody
            )
            response = client.add_or_update_metric_or_event_alarm_rule(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    ```
    
  
  - 更新事件类告警规则
    ```
    # coding: utf-8
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkaom.v2.region.aom_region import AomRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkaom.v2 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 = AomClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(AomRegion.value_of("<YOUR REGION>")) \
            .build()
        try:
            request = AddOrUpdateMetricOrEventAlarmRuleRequest()
            listThresholdsTriggerConditions = {
                "Critical": 2
            }
            listThresholdsTriggerConditions1 = {
                "Critical": 1
            }
            listTriggerConditionsEventAlarmSpec = [
                EventTriggerCondition(
                    event_name="扩容节点超时##ScaleUpTimedOut",
                    trigger_type="accumulative",
                    aggregation_window=300,
                    operator=">",
                    thresholds=listThresholdsTriggerConditions1,
                    frequency="-1"
                ),
                EventTriggerCondition(
                    event_name="数据卷扩容失败##VolumeResizeFailed",
                    trigger_type="immediately",
                    thresholds=listThresholdsTriggerConditions
                )
            ]
            listMonitorObjectsMonitorObjects = {
                "event_name": "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
                "event_type": "event"
            }
            listMonitorObjectsEventAlarmSpec = [
                listMonitorObjectsMonitorObjects
            ]
            eventAlarmSpecbody = EventAlarmSpec(
                alarm_source="systemEvent",
                event_source="CCE",
                monitor_objects=listMonitorObjectsEventAlarmSpec,
                trigger_conditions=listTriggerConditionsEventAlarmSpec
            )
            alarmNotificationsbody = AlarmNotification(
                notification_type="direct",
                route_group_enable=False,
                route_group_rule="",
                notification_enable=True,
                bind_notification_rule_id="aom_event_notification_rule",
                notify_resolved=False,
                notify_triggered=False,
                notify_frequency=0
            )
            request.body = AddOrUpdateAlarmRuleV4RequestBody(
                event_alarm_spec=eventAlarmSpecbody,
                alarm_rule_type="event",
                alarm_rule_name="aom_event_alarm_rule",
                alarm_rule_enable=True,
                alarm_rule_description="aom_alarm_event_rule",
                alarm_notifications=alarmNotificationsbody
            )
            response = client.add_or_update_metric_or_event_alarm_rule(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    ```
    
   
- [Go]
  - 新增指标类告警规则。
    ```
    package main
    import (
    "fmt"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/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 := aom.AomClientBuilder().
             WithRegion(region.ValueOf("<YOUR REGION>")).
             WithCredential(auth).
             SafeBuild()
        if err != nil {
            fmt.Println(err)
            return
        }
        client := aom.NewAomClient(hcClient)
        request := &model.AddOrUpdateMetricOrEventAlarmRuleRequest{}
    appIdCmdb:= ""
    cmdbTriggerConditions := &model.CmdbInfo{
    AppId: &appIdCmdb,
    }
    var listThresholdsTriggerConditions = map[string]string{
            "Info": "100",
        }
    triggerTimesTriggerConditions:= int32(4)
    triggerIntervalTriggerConditions:= "15m"
    triggerTypeTriggerConditions:= model.GetTriggerConditionTriggerTypeEnum().FIXED_RATE
    aggregationTypeTriggerConditions:= "average"
    operatorTriggerConditions:= ">"
    aggregationWindowTriggerConditions:= "5m"
    queryMatchTriggerConditions:= ""
    queryParamTriggerConditions:= make(map[string]string)
    var queryParamTriggerConditionsInterface interface{} = queryParamTriggerConditions
    aomMonitorLevelTriggerConditions:= ""
    aggregateTypeTriggerConditions:= model.GetTriggerConditionAggregateTypeEnum().BY
    metricStatisticMethodTriggerConditions:= model.GetTriggerConditionMetricStatisticMethodEnum().SINGLE
    expressionTriggerConditions:= ""
    mixPromqlTriggerConditions:= ""
    var listTriggerConditionsMetricAlarmSpec = []model.TriggerCondition{
            {
                MetricQueryMode: model.GetTriggerConditionMetricQueryModeEnum().PROM,
                MetricNamespace: "",
                MetricName: "aom_metrics_total",
                MetricUnit: "",
                Promql: "label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")",
                TriggerTimes: &triggerTimesTriggerConditions,
                TriggerInterval: &triggerIntervalTriggerConditions,
                TriggerType: &triggerTypeTriggerConditions,
                AggregationType: &aggregationTypeTriggerConditions,
                Operator: &operatorTriggerConditions,
                Thresholds: listThresholdsTriggerConditions,
                AggregationWindow: &aggregationWindowTriggerConditions,
                Cmdb: cmdbTriggerConditions,
                QueryMatch: &queryMatchTriggerConditions,
                QueryParam: &queryParamTriggerConditionsInterface,
                AomMonitorLevel: &aomMonitorLevelTriggerConditions,
                AggregateType: &aggregateTypeTriggerConditions,
                MetricStatisticMethod: &metricStatisticMethodTriggerConditions,
                Expression: &expressionTriggerConditions,
                MixPromql: &mixPromqlTriggerConditions,
            },
        }
    recoveryTimeframeRecoveryConditions:= int32(2)
    recoveryConditionsMetricAlarmSpec := &model.RecoveryCondition{
    RecoveryTimeframe: &recoveryTimeframeRecoveryConditions,
    }
    var listCustomAnnotationsAlarmTags = []string{
            "333=rrr",
        }
    var listCustomTagsAlarmTags = []string{
            "333=rrr",
        }
    var listAlarmTagsMetricAlarmSpec = []model.AlarmTags{
            {
                CustomTags: &listCustomTagsAlarmTags,
                CustomAnnotations: &listCustomAnnotationsAlarmTags,
            },
        }
    noDataTimeframeNoDataConditions:= int32(3)
    noDataAlertStateNoDataConditions:= model.GetNoDataConditionNoDataAlertStateEnum().NO_DATA
    notifyNoDataNoDataConditions:= true
    var listNoDataConditionsMetricAlarmSpec = []model.NoDataCondition{
            {
                NoDataTimeframe: &noDataTimeframeNoDataConditions,
                NoDataAlertState: &noDataAlertStateNoDataConditions,
                NotifyNoData: &notifyNoDataNoDataConditions,
            },
        }
    alarmRuleTemplateBindEnableMetricAlarmSpec:= false
    alarmRuleTemplateIdMetricAlarmSpec:= ""
    metricAlarmSpecbody := &model.MetricAlarmSpec{
    MonitorType: model.GetMetricAlarmSpecMonitorTypeEnum().ALL_METRIC,
    NoDataConditions: &listNoDataConditionsMetricAlarmSpec,
    AlarmTags: listAlarmTagsMetricAlarmSpec,
    RecoveryConditions: recoveryConditionsMetricAlarmSpec,
    TriggerConditions: listTriggerConditionsMetricAlarmSpec,
    AlarmRuleTemplateBindEnable: &alarmRuleTemplateBindEnableMetricAlarmSpec,
    AlarmRuleTemplateId: &alarmRuleTemplateIdMetricAlarmSpec,
    }
    notificationEnableAlarmNotifications:= false
    bindNotificationRuleIdAlarmNotifications:= ""
    notifyResolvedAlarmNotifications:= true
    notifyTriggeredAlarmNotifications:= true
    notifyFrequencyAlarmNotifications:= int32(-1)
    alarmNotificationsbody := &model.AlarmNotification{
    NotificationType: model.GetAlarmNotificationNotificationTypeEnum().ALARM_POLICY,
    RouteGroupEnable: true,
    RouteGroupRule: "aom_route_group_rule",
    NotificationEnable: &notificationEnableAlarmNotifications,
    BindNotificationRuleId: &bindNotificationRuleIdAlarmNotifications,
    NotifyResolved: &notifyResolvedAlarmNotifications,
    NotifyTriggered: &notifyTriggeredAlarmNotifications,
    NotifyFrequency: &notifyFrequencyAlarmNotifications,
    }
    promInstanceIdAddOrUpdateAlarmRuleV4RequestBody:= "0"
    alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody:= true
    alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody:= "aom_alarm_rule"
    request.Body = &model.AddOrUpdateAlarmRuleV4RequestBody{
    PromInstanceId: &promInstanceIdAddOrUpdateAlarmRuleV4RequestBody,
    MetricAlarmSpec: metricAlarmSpecbody,
    AlarmRuleType: model.GetAddOrUpdateAlarmRuleV4RequestBodyAlarmRuleTypeEnum().METRIC,
    AlarmRuleName: "aom_alarm_rule",
    AlarmRuleEnable: &alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody,
    AlarmRuleDescription: &alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody,
    AlarmNotifications: alarmNotificationsbody,
    }
    response, err := client.AddOrUpdateMetricOrEventAlarmRule(request)
    if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    ```
    
  
  - 更新指标类告警规则
    ```
    package main
    import (
    "fmt"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/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 := aom.AomClientBuilder().
             WithRegion(region.ValueOf("<YOUR REGION>")).
             WithCredential(auth).
             SafeBuild()
        if err != nil {
            fmt.Println(err)
            return
        }
        client := aom.NewAomClient(hcClient)
        request := &model.AddOrUpdateMetricOrEventAlarmRuleRequest{}
    appIdCmdb:= ""
    cmdbTriggerConditions := &model.CmdbInfo{
    AppId: &appIdCmdb,
    }
    var listThresholdsTriggerConditions = map[string]string{
            "Info": "100",
        }
    triggerTimesTriggerConditions:= int32(4)
    triggerIntervalTriggerConditions:= "15m"
    triggerTypeTriggerConditions:= model.GetTriggerConditionTriggerTypeEnum().FIXED_RATE
    aggregationTypeTriggerConditions:= "average"
    operatorTriggerConditions:= ">"
    aggregationWindowTriggerConditions:= "5m"
    queryMatchTriggerConditions:= ""
    queryParamTriggerConditions:= make(map[string]string)
    var queryParamTriggerConditionsInterface interface{} = queryParamTriggerConditions
    aomMonitorLevelTriggerConditions:= ""
    aggregateTypeTriggerConditions:= model.GetTriggerConditionAggregateTypeEnum().BY
    metricStatisticMethodTriggerConditions:= model.GetTriggerConditionMetricStatisticMethodEnum().SINGLE
    expressionTriggerConditions:= ""
    mixPromqlTriggerConditions:= ""
    var listTriggerConditionsMetricAlarmSpec = []model.TriggerCondition{
            {
                MetricQueryMode: model.GetTriggerConditionMetricQueryModeEnum().PROM,
                MetricNamespace: "",
                MetricName: "aom_metrics_total",
                MetricUnit: "",
                Promql: "label_replace(avg_over_time(aom_metrics_total{instance="1117919565"}[59999ms]),"__name__","aom_metrics_total","","")",
                TriggerTimes: &triggerTimesTriggerConditions,
                TriggerInterval: &triggerIntervalTriggerConditions,
                TriggerType: &triggerTypeTriggerConditions,
                AggregationType: &aggregationTypeTriggerConditions,
                Operator: &operatorTriggerConditions,
                Thresholds: listThresholdsTriggerConditions,
                AggregationWindow: &aggregationWindowTriggerConditions,
                Cmdb: cmdbTriggerConditions,
                QueryMatch: &queryMatchTriggerConditions,
                QueryParam: &queryParamTriggerConditionsInterface,
                AomMonitorLevel: &aomMonitorLevelTriggerConditions,
                AggregateType: &aggregateTypeTriggerConditions,
                MetricStatisticMethod: &metricStatisticMethodTriggerConditions,
                Expression: &expressionTriggerConditions,
                MixPromql: &mixPromqlTriggerConditions,
            },
        }
    recoveryTimeframeRecoveryConditions:= int32(2)
    recoveryConditionsMetricAlarmSpec := &model.RecoveryCondition{
    RecoveryTimeframe: &recoveryTimeframeRecoveryConditions,
    }
    var listCustomAnnotationsAlarmTags = []string{
            "333=rrr",
        }
    var listCustomTagsAlarmTags = []string{
            "333=rrr",
        }
    var listAlarmTagsMetricAlarmSpec = []model.AlarmTags{
            {
                CustomTags: &listCustomTagsAlarmTags,
                CustomAnnotations: &listCustomAnnotationsAlarmTags,
            },
        }
    noDataTimeframeNoDataConditions:= int32(3)
    noDataAlertStateNoDataConditions:= model.GetNoDataConditionNoDataAlertStateEnum().NO_DATA
    notifyNoDataNoDataConditions:= true
    var listNoDataConditionsMetricAlarmSpec = []model.NoDataCondition{
            {
                NoDataTimeframe: &noDataTimeframeNoDataConditions,
                NoDataAlertState: &noDataAlertStateNoDataConditions,
                NotifyNoData: &notifyNoDataNoDataConditions,
            },
        }
    alarmRuleTemplateBindEnableMetricAlarmSpec:= false
    alarmRuleTemplateIdMetricAlarmSpec:= ""
    metricAlarmSpecbody := &model.MetricAlarmSpec{
    MonitorType: model.GetMetricAlarmSpecMonitorTypeEnum().ALL_METRIC,
    NoDataConditions: &listNoDataConditionsMetricAlarmSpec,
    AlarmTags: listAlarmTagsMetricAlarmSpec,
    RecoveryConditions: recoveryConditionsMetricAlarmSpec,
    TriggerConditions: listTriggerConditionsMetricAlarmSpec,
    AlarmRuleTemplateBindEnable: &alarmRuleTemplateBindEnableMetricAlarmSpec,
    AlarmRuleTemplateId: &alarmRuleTemplateIdMetricAlarmSpec,
    }
    notificationEnableAlarmNotifications:= false
    bindNotificationRuleIdAlarmNotifications:= ""
    notifyResolvedAlarmNotifications:= true
    notifyTriggeredAlarmNotifications:= true
    notifyFrequencyAlarmNotifications:= int32(-1)
    alarmNotificationsbody := &model.AlarmNotification{
    NotificationType: model.GetAlarmNotificationNotificationTypeEnum().ALARM_POLICY,
    RouteGroupEnable: true,
    RouteGroupRule: "aom_route_group_rule",
    NotificationEnable: &notificationEnableAlarmNotifications,
    BindNotificationRuleId: &bindNotificationRuleIdAlarmNotifications,
    NotifyResolved: &notifyResolvedAlarmNotifications,
    NotifyTriggered: &notifyTriggeredAlarmNotifications,
    NotifyFrequency: &notifyFrequencyAlarmNotifications,
    }
    promInstanceIdAddOrUpdateAlarmRuleV4RequestBody:= "0"
    alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody:= true
    alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody:= "aom_alarm_rule"
    request.Body = &model.AddOrUpdateAlarmRuleV4RequestBody{
    PromInstanceId: &promInstanceIdAddOrUpdateAlarmRuleV4RequestBody,
    MetricAlarmSpec: metricAlarmSpecbody,
    AlarmRuleType: model.GetAddOrUpdateAlarmRuleV4RequestBodyAlarmRuleTypeEnum().METRIC,
    AlarmRuleName: "aom_alarm_rule",
    AlarmRuleEnable: &alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody,
    AlarmRuleDescription: &alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody,
    AlarmNotifications: alarmNotificationsbody,
    }
    response, err := client.AddOrUpdateMetricOrEventAlarmRule(request)
    if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    ```
    
  
  - 新增事件类告警规则。
    ```
    package main
    import (
    "fmt"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/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 := aom.AomClientBuilder().
             WithRegion(region.ValueOf("<YOUR REGION>")).
             WithCredential(auth).
             SafeBuild()
        if err != nil {
            fmt.Println(err)
            return
        }
        client := aom.NewAomClient(hcClient)
        request := &model.AddOrUpdateMetricOrEventAlarmRuleRequest{}
    var listThresholdsTriggerConditions = map[string]int32{
            "Critical": int32(1),
        }
    var listThresholdsTriggerConditions1 = map[string]int32{
            "Critical": int32(1),
        }
    eventNameTriggerConditions:= "扩容节点超时##ScaleUpTimedOut"
    triggerTypeTriggerConditions:= model.GetEventTriggerConditionTriggerTypeEnum().ACCUMULATIVE
    aggregationWindowTriggerConditions:= int64(300)
    operatorTriggerConditions:= ">"
    frequencyTriggerConditions:= "-1"
    eventNameTriggerConditions1:= "数据卷扩容失败##VolumeResizeFailed"
    triggerTypeTriggerConditions1:= model.GetEventTriggerConditionTriggerTypeEnum().IMMEDIATELY
    var listTriggerConditionsEventAlarmSpec = []model.EventTriggerCondition{
            {
                EventName: &eventNameTriggerConditions,
                TriggerType: &triggerTypeTriggerConditions,
                AggregationWindow: &aggregationWindowTriggerConditions,
                Operator: &operatorTriggerConditions,
                Thresholds: listThresholdsTriggerConditions1,
                Frequency: &frequencyTriggerConditions,
            },
            {
                EventName: &eventNameTriggerConditions1,
                TriggerType: &triggerTypeTriggerConditions1,
                Thresholds: listThresholdsTriggerConditions,
            },
        }
    var listMonitorObjectsMonitorObjects = map[string]string{
            "event_name": "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
            "event_type": "event",
        }
    var listMonitorObjectsEventAlarmSpec = []map[string]string{
            listMonitorObjectsMonitorObjects,
        }
    alarmSourceEventAlarmSpec:= model.GetEventAlarmSpecAlarmSourceEnum().SYSTEM_EVENT
    eventSourceEventAlarmSpec:= "CCE"
    eventAlarmSpecbody := &model.EventAlarmSpec{
    AlarmSource: &alarmSourceEventAlarmSpec,
    EventSource: &eventSourceEventAlarmSpec,
    MonitorObjects: &listMonitorObjectsEventAlarmSpec,
    TriggerConditions: listTriggerConditionsEventAlarmSpec,
    }
    notificationEnableAlarmNotifications:= true
    bindNotificationRuleIdAlarmNotifications:= "aom_event_notification_rule"
    notifyResolvedAlarmNotifications:= false
    notifyTriggeredAlarmNotifications:= false
    notifyFrequencyAlarmNotifications:= int32(0)
    alarmNotificationsbody := &model.AlarmNotification{
    NotificationType: model.GetAlarmNotificationNotificationTypeEnum().DIRECT,
    RouteGroupEnable: false,
    RouteGroupRule: "",
    NotificationEnable: &notificationEnableAlarmNotifications,
    BindNotificationRuleId: &bindNotificationRuleIdAlarmNotifications,
    NotifyResolved: &notifyResolvedAlarmNotifications,
    NotifyTriggered: &notifyTriggeredAlarmNotifications,
    NotifyFrequency: &notifyFrequencyAlarmNotifications,
    }
    alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody:= true
    alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody:= "aom_alarm_event_rule"
    request.Body = &model.AddOrUpdateAlarmRuleV4RequestBody{
    EventAlarmSpec: eventAlarmSpecbody,
    AlarmRuleType: model.GetAddOrUpdateAlarmRuleV4RequestBodyAlarmRuleTypeEnum().EVENT,
    AlarmRuleName: "aom_event_alarm_rule",
    AlarmRuleEnable: &alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody,
    AlarmRuleDescription: &alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody,
    AlarmNotifications: alarmNotificationsbody,
    }
    response, err := client.AddOrUpdateMetricOrEventAlarmRule(request)
    if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    ```
    
  
  - 更新事件类告警规则
    ```
    package main
    import (
    "fmt"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2"
    "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/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 := aom.AomClientBuilder().
             WithRegion(region.ValueOf("<YOUR REGION>")).
             WithCredential(auth).
             SafeBuild()
        if err != nil {
            fmt.Println(err)
            return
        }
        client := aom.NewAomClient(hcClient)
        request := &model.AddOrUpdateMetricOrEventAlarmRuleRequest{}
    var listThresholdsTriggerConditions = map[string]int32{
            "Critical": int32(2),
        }
    var listThresholdsTriggerConditions1 = map[string]int32{
            "Critical": int32(1),
        }
    eventNameTriggerConditions:= "扩容节点超时##ScaleUpTimedOut"
    triggerTypeTriggerConditions:= model.GetEventTriggerConditionTriggerTypeEnum().ACCUMULATIVE
    aggregationWindowTriggerConditions:= int64(300)
    operatorTriggerConditions:= ">"
    frequencyTriggerConditions:= "-1"
    eventNameTriggerConditions1:= "数据卷扩容失败##VolumeResizeFailed"
    triggerTypeTriggerConditions1:= model.GetEventTriggerConditionTriggerTypeEnum().IMMEDIATELY
    var listTriggerConditionsEventAlarmSpec = []model.EventTriggerCondition{
            {
                EventName: &eventNameTriggerConditions,
                TriggerType: &triggerTypeTriggerConditions,
                AggregationWindow: &aggregationWindowTriggerConditions,
                Operator: &operatorTriggerConditions,
                Thresholds: listThresholdsTriggerConditions1,
                Frequency: &frequencyTriggerConditions,
            },
            {
                EventName: &eventNameTriggerConditions1,
                TriggerType: &triggerTypeTriggerConditions1,
                Thresholds: listThresholdsTriggerConditions,
            },
        }
    var listMonitorObjectsMonitorObjects = map[string]string{
            "event_name": "扩容节点超时##ScaleUpTimedOut;数据卷扩容失败##VolumeResizeFailed",
            "event_type": "event",
        }
    var listMonitorObjectsEventAlarmSpec = []map[string]string{
            listMonitorObjectsMonitorObjects,
        }
    alarmSourceEventAlarmSpec:= model.GetEventAlarmSpecAlarmSourceEnum().SYSTEM_EVENT
    eventSourceEventAlarmSpec:= "CCE"
    eventAlarmSpecbody := &model.EventAlarmSpec{
    AlarmSource: &alarmSourceEventAlarmSpec,
    EventSource: &eventSourceEventAlarmSpec,
    MonitorObjects: &listMonitorObjectsEventAlarmSpec,
    TriggerConditions: listTriggerConditionsEventAlarmSpec,
    }
    notificationEnableAlarmNotifications:= true
    bindNotificationRuleIdAlarmNotifications:= "aom_event_notification_rule"
    notifyResolvedAlarmNotifications:= false
    notifyTriggeredAlarmNotifications:= false
    notifyFrequencyAlarmNotifications:= int32(0)
    alarmNotificationsbody := &model.AlarmNotification{
    NotificationType: model.GetAlarmNotificationNotificationTypeEnum().DIRECT,
    RouteGroupEnable: false,
    RouteGroupRule: "",
    NotificationEnable: &notificationEnableAlarmNotifications,
    BindNotificationRuleId: &bindNotificationRuleIdAlarmNotifications,
    NotifyResolved: &notifyResolvedAlarmNotifications,
    NotifyTriggered: &notifyTriggeredAlarmNotifications,
    NotifyFrequency: &notifyFrequencyAlarmNotifications,
    }
    alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody:= true
    alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody:= "aom_alarm_event_rule"
    request.Body = &model.AddOrUpdateAlarmRuleV4RequestBody{
    EventAlarmSpec: eventAlarmSpecbody,
    AlarmRuleType: model.GetAddOrUpdateAlarmRuleV4RequestBodyAlarmRuleTypeEnum().EVENT,
    AlarmRuleName: "aom_event_alarm_rule",
    AlarmRuleEnable: &alarmRuleEnableAddOrUpdateAlarmRuleV4RequestBody,
    AlarmRuleDescription: &alarmRuleDescriptionAddOrUpdateAlarmRuleV4RequestBody,
    AlarmNotifications: alarmNotificationsbody,
    }
    response, err := client.AddOrUpdateMetricOrEventAlarmRule(request)
    if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    ```
    
   
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AOM/sdk?api=AddOrUpdateMetricOrEventAlarmRule)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述                                            |
|:---|:---|
| 200 | OK 请求响应成功。                                    |
| 400 | BadRequest 非法请求。建议直接修改该请求，不要重试该请求。            |
| 500 | InternalServerError 表明服务端能被请求访问到，但是不能理解用户的请求。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-aom/ErrorCode.html)。
