3737 CREATE_SMARTCLASS_QUERY ,
3838 EVALUATE_SMARTCLASS ,
3939 GET_SMARTCLASS_DETAILS ,
40+ J1QL_FROM_NATURAL_LANGUAGE ,
4041 LIST_RULE_INSTANCES ,
41- J1QL_FROM_NATURAL_LANGUAGE
42+ CREATE_RULE_INSTANCE ,
43+ DELETE_RULE_INSTANCE
4244)
4345
4446
@@ -434,10 +436,7 @@ def delete_relationship(self, relationship_id: str = None):
434436 response = self ._execute_query (DELETE_RELATIONSHIP , variables = variables )
435437 return response ["data" ]["deleteRelationship" ]
436438
437- def create_integration_instance (self ,
438- instance_name : str = None ,
439- instance_description : str = None ,
440- integration_definition_id : str = "8013680b-311a-4c2e-b53b-c8735fd97a5c" ):
439+ def create_integration_instance (self , instance_name : str = None , instance_description : str = None , integration_definition_id : str = "8013680b-311a-4c2e-b53b-c8735fd97a5c" ):
441440 """Creates a new Custom Integration Instance.
442441
443442 args:
@@ -696,18 +695,6 @@ def get_smartclass_details(self, smartclass_id: str = None):
696695
697696 return response ['data' ]['smartClass' ]
698697
699- def list_configured_alert_rules (self ):
700- """List defined Alert Rules configured in J1 account
701-
702- """
703- variables = {
704- "limit" : 100
705- }
706-
707- response = self ._execute_query (LIST_RULE_INSTANCES , variables = variables )
708-
709- return response ['data' ]['listRuleInstances' ]
710-
711698 def generate_j1ql (self , natural_language_prompt : str = None ):
712699 """Generate J1QL query syntax from natural language user input.
713700
@@ -723,3 +710,89 @@ def generate_j1ql(self, natural_language_prompt: str = None):
723710 response = self ._execute_query (J1QL_FROM_NATURAL_LANGUAGE , variables = variables )
724711
725712 return response ['data' ]['j1qlFromNaturalLanguage' ]
713+
714+ def list_alert_rules (self ):
715+ """List defined Alert Rules configured in J1 account
716+
717+ """
718+ response = self ._execute_query (LIST_RULE_INSTANCES )
719+
720+ return response ['data' ]['listRuleInstances' ]
721+
722+ def create_alert_rule (self , name : str = None , description : str = None , tags : List [str ] = None , polling_interval : str = None , severity : str = None , j1ql : str = None , action_configs : Dict = None ):
723+ """Create Alert Rule Configuration in J1 account
724+
725+ """
726+
727+ variables = {
728+ "instance" : {
729+ "name" : name ,
730+ "description" : description ,
731+ "notifyOnFailure" : True ,
732+ "triggerActionsOnNewEntitiesOnly" : True ,
733+ "ignorePreviousResults" : False ,
734+ "operations" : [
735+ {
736+ "when" : {
737+ "type" : "FILTER" ,
738+ "condition" : [
739+ "AND" ,
740+ [
741+ "queries.query0.total" ,
742+ ">" ,
743+ 0
744+ ]
745+ ]
746+ },
747+ "actions" : [
748+ {
749+ "type" : "SET_PROPERTY" ,
750+ "targetProperty" : "alertLevel" ,
751+ "targetValue" : severity
752+ },
753+ {
754+ "type" : "CREATE_ALERT"
755+ }
756+ ]
757+ }
758+ ],
759+ "outputs" : [
760+ "alertLevel"
761+ ],
762+ "pollingInterval" : polling_interval ,
763+ "question" : {
764+ "queries" : [
765+ {
766+ "query" : j1ql ,
767+ "name" : "query0" ,
768+ "version" : "v1" ,
769+ "includeDeleted" : False
770+ }
771+ ]
772+ },
773+ "specVersion" : 1 ,
774+ "tags" : tags ,
775+ "templates" : {}
776+ }
777+ }
778+
779+ if action_configs :
780+ variables ['instance' ]['operations' ][0 ]['actions' ].append (action_configs )
781+
782+ print (variables )
783+
784+ response = self ._execute_query (CREATE_RULE_INSTANCE , variables = variables )
785+
786+ return response ['data' ]['createInlineQuestionRuleInstance' ]
787+
788+ def delete_alert_rule (self , rule_id : str = None ):
789+ """Delete a single Alert Rule configured in J1 account
790+
791+ """
792+ variables = {
793+ "id" : rule_id
794+ }
795+
796+ response = self ._execute_query (DELETE_RULE_INSTANCE , variables = variables )
797+
798+ return response ['data' ]['deleteRuleInstance' ]
0 commit comments