@@ -1032,21 +1032,26 @@ def create_alert_rule(
10321032 j1ql : str = None ,
10331033 action_configs : Union [Dict , List [Dict ]] = None ,
10341034 resource_group_id : str = None ,
1035+ query_name : str = "query0" ,
1036+ trigger_actions_on_new_entities_only : bool = True ,
1037+ ignore_previous_results : bool = False ,
1038+ notify_on_failure : bool = True ,
1039+ templates : Dict [str , str ] = None ,
10351040 ):
10361041 """Create Alert Rule Configuration in J1 account"""
10371042
10381043 variables = {
10391044 "instance" : {
10401045 "name" : name ,
10411046 "description" : description ,
1042- "notifyOnFailure" : True ,
1043- "triggerActionsOnNewEntitiesOnly" : True ,
1044- "ignorePreviousResults" : False ,
1047+ "notifyOnFailure" : notify_on_failure ,
1048+ "triggerActionsOnNewEntitiesOnly" : trigger_actions_on_new_entities_only ,
1049+ "ignorePreviousResults" : ignore_previous_results ,
10451050 "operations" : [
10461051 {
10471052 "when" : {
10481053 "type" : "FILTER" ,
1049- "condition" : ["AND" , ["queries.query0 .total" , ">" , 0 ]],
1054+ "condition" : ["AND" , [f "queries.{ query_name } .total" , ">" , 0 ]],
10501055 },
10511056 "actions" : [
10521057 {
@@ -1064,7 +1069,7 @@ def create_alert_rule(
10641069 "queries" : [
10651070 {
10661071 "query" : j1ql ,
1067- "name" : "query0" ,
1072+ "name" : query_name ,
10681073 "version" : "v1" ,
10691074 "includeDeleted" : False ,
10701075 }
@@ -1073,7 +1078,7 @@ def create_alert_rule(
10731078 "specVersion" : 1 ,
10741079 "tags" : tags ,
10751080 "labels" : labels ,
1076- "templates" : {},
1081+ "templates" : templates if templates is not None else {},
10771082 "resourceGroupId" : resource_group_id ,
10781083 }
10791084 }
@@ -1112,6 +1117,11 @@ def update_alert_rule(
11121117 action_configs : Union [Dict , List [Dict ]] = None ,
11131118 action_configs_op : str = None ,
11141119 resource_group_id : str = None ,
1120+ query_name : str = None ,
1121+ trigger_actions_on_new_entities_only : bool = None ,
1122+ ignore_previous_results : bool = None ,
1123+ notify_on_failure : bool = None ,
1124+ templates : Dict [str , str ] = None ,
11151125 ):
11161126 """Update Alert Rule Configuration in J1 account"""
11171127 # fetch existing alert rule
@@ -1151,6 +1161,13 @@ def update_alert_rule(
11511161 del question_config ["__typename" ]
11521162 del question_config ["queries" ][0 ]["__typename" ]
11531163
1164+ # update query name if provided
1165+ if query_name is not None :
1166+ # update query name in question config
1167+ question_config ["queries" ][0 ]["name" ] = query_name
1168+ # update condition reference to use new query name
1169+ operations [0 ]["when" ]["condition" ] = ["AND" , [f"queries.{ query_name } .total" , ">" , 0 ]]
1170+
11541171 # update polling_interval if provided
11551172 if polling_interval is not None :
11561173 interval_config = polling_interval
@@ -1171,6 +1188,8 @@ def update_alert_rule(
11711188 # update labels list if provided
11721189 if labels is not None :
11731190 label_config = labels
1191+ else :
1192+ label_config = alert_rule_config .get ("labels" , [])
11741193
11751194 # update action_configs list if provided
11761195 if action_configs is not None :
@@ -1203,18 +1222,46 @@ def update_alert_rule(
12031222 if severity is not None :
12041223 operations [0 ]["actions" ][0 ]["targetValue" ] = severity
12051224
1225+ # update trigger_actions_on_new_entities_only if provided
1226+ if trigger_actions_on_new_entities_only is not None :
1227+ trigger_config = trigger_actions_on_new_entities_only
1228+ else :
1229+ trigger_config = alert_rule_config ["triggerActionsOnNewEntitiesOnly" ]
1230+
1231+ # update ignore_previous_results if provided
1232+ if ignore_previous_results is not None :
1233+ ignore_config = ignore_previous_results
1234+ else :
1235+ ignore_config = alert_rule_config ["ignorePreviousResults" ]
1236+
1237+ # update notify_on_failure if provided
1238+ if notify_on_failure is not None :
1239+ notify_config = notify_on_failure
1240+ else :
1241+ notify_config = alert_rule_config ["notifyOnFailure" ]
1242+
1243+ # update templates if provided
1244+ if templates is not None :
1245+ templates_config = templates
1246+ else :
1247+ templates_config = alert_rule_config ["templates" ]
1248+
12061249 variables = {
12071250 "instance" : {
12081251 "id" : rule_id ,
12091252 "version" : rule_version ,
12101253 "specVersion" : alert_rule_config ["specVersion" ],
12111254 "name" : alert_name ,
12121255 "description" : alert_description ,
1256+ "notifyOnFailure" : notify_config ,
1257+ "triggerActionsOnNewEntitiesOnly" : trigger_config ,
1258+ "ignorePreviousResults" : ignore_config ,
12131259 "question" : question_config ,
12141260 "operations" : operations ,
12151261 "pollingInterval" : interval_config ,
12161262 "tags" : tags_config ,
12171263 "labels" : label_config ,
1264+ "templates" : templates_config ,
12181265 "resourceGroupId" : resource_group_id ,
12191266 }
12201267 }
0 commit comments