{ "version": "4.0", "name": "Qualys Assets", "comment": "Create an asset from Host, Reservation, Lease, Range and start VM scan for Host Reservation and lease", "type": "REST_EVENT", "event_type": [ "FIXED_ADDRESS_IPV4", "HOST_ADDRESS_IPV4", "RANGE_IPV4", "LEASE", "NETWORK_IPV4" ], "action_type": "Create an asset based on IPAM changes", "content_type": "text/xml", "vendor_identifier": "Qualys 2.0", "quoting": "XML", "steps": [ { "name": "Debug#0", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkForModify", "comment": "Check if Modify event, if true, stop template.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:operation_type}", "op": "==", "right": "MODIFY" } ], "stop": true, "else_eval": "${XC:COPY:{L:timestamp}:{E:timestamp}}${XC:COPY:{L:ScanTime}:{E:timestamp}}" } }, { "name": "formatThisAssetTimestamp", "comment": "Format the event (this) timestamp to a string so we can truncate it to the tenth second.", "operation": "NOP", "body_list": [ "${XC:COPY:{L:ThisFormattedTimestamp}:{L:timestamp}}${XC:FORMAT:DATE_EPOCH:{L:ThisFormattedTimestamp}}${XC:FORMAT:DATE_STRFTIME:{L:ThisFormattedTimestamp}:{%a, %d %b %Y %H:%M:%S}}${XC:FORMAT:TRUNCATE:{L:ThisFormattedTimestamp}:{-1t}}" ] }, { "name": "formatLastAssetTimestamp", "comment": "If the timestamp EA is empty there is no need to check the last time it has been scanned. Format the Qualys_LastScanTime EA timestamp to a string so we can truncate it to the tenth second.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [{ "left": "${E:A:values{extattrs}{Qualys_LastScanTime}{value}}", "op": "==", "right": "" }], "next": "checkIfLEASEevent", "else_eval": "${XC:COPY:{L:LastFormattedTimestamp}:{E:values{extattrs}{Qualys_LastScanTime}{value}}}${XC:FORMAT:DATE_EPOCH:{L:LastFormattedTimestamp}}${XC:FORMAT:DATE_STRFTIME:{L:LastFormattedTimestamp}:{%a, %d %b %Y %H:%M:%S}}${XC:FORMAT:TRUNCATE:{L:LastFormattedTimestamp}:{-1t}}" } }, { "name": "compareTimestamps", "comment": "If this timestamp and the last one have the same seconds tens place, stop the template.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [{ "left": "${L:A:ThisFormattedTimestamp}", "op": "==", "right": "${L:A:LastFormattedTimestamp}" }], "stop": true } }, { "name": "checkIfLEASEevent", "comment": "Check if LEASE Event.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "next": "checkSyncForLease" } }, { "name": "checkSync", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Asset_VM}{value}}", "op": "!=", "right": "true" }, { "left": "${E:A:values{extattrs}{Qualys_Asset_PC}{value}}", "op": "!=", "right": "true" } ], "stop": true } }, { "name": "Debug#1", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkForNetwork", "operation": "CONDITION", "condition": { "statements": [ { "left": "${E:A:event_type}", "op": "=~", "right": "NETWORK" } ], "condition_type": "AND", "next": "checkForNetworkDelete" } }, { "name": "Debug#2", "comment":"check in group EA, if EA does not exist, check network cidr name. if group ea exists, check group exists in qua, if false, create new", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkAssetGroupEAForHostFixed", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Assets_Group}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_Assets_Group}:{E:values{extattrs}{Qualys_Assets_Group}{value}}}", "else_next": "EndForHostFixed" } }, { "name": "checkForDeleteHostFixed", "comment": "Check if Modify event, if true, stop template.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:operation_type}", "op": "==", "right": "DELETE" } ], "stop": true } }, { "name": "assignLVarsFixedHost", "operation": "NOP", "body_list": [ "${XC:COPY:{L:Qualys_Scanner}:{E:values{extattrs}{Qualys_Scanner}{value}}}", "${XC:COPY:{L:Qualys_Scan_Option}:{E:values{extattrs}{Qualys_Scan_Option}{value}}}", "${XC:COPY:{L:Qualys_Asset_VM}:{E:values{extattrs}{Qualys_Asset_VM}{value}}}", "${XC:COPY:{L:Qualys_Asset_PC}:{E:values{extattrs}{Qualys_Asset_PC}{value}}}", "${XC:COPY:{L:Qualys_Scan}:{E:values{extattrs}{Qualys_Scan_On_Add}{value}}}", "${XC:COPY:{L:Event}:{E:object_type}}" ] }, { "name": "checkAssetSnmpEAForHostFixed", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_SNMP}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_SNMP}:{E:values{extattrs}{Qualys_User_SNMP}{value}}}" } }, { "name": "checkUnixEAForHostFixed", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_Unix}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_Unix}:{E:values{extattrs}{Qualys_User_Unix}{value}}}" } }, { "name": "Debug#3", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "GetNetworkIDByAssetGroupNameForHostFixed", "comment": "Get Asset Group ID for network deletion", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "output_format", "value": "xml" }, { "name": "title", "value": "${L:A:Qualys_Assets_Group}" } ], "parse": "XML" }, { "name": "VerifyThatAssetGroupExistsForHostFixed", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "next": "GetScannerIDforHostFixed", "else_eval": "${XC:COPY:{L:ID}:{P:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}}", "else_next": "initLvars" } }, { "name": "GetScannerIDforHostFixed", "operation": "GET", "transport": { "path": "/api/2.0/fo/appliance/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "name", "value": "${E:A:values{extattrs}{Qualys_Scanner}{value}}" } ], "parse": "XML" }, { "name": "Debug#3.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "insertNewAssetGroupIfItDoesNotExistForHostFixed", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "title", "value": "${E:A:values{extattrs}{Qualys_Assets_Group}{value}}" }, { "name": "appliance_ids", "value": "${P:A:APPLIANCE_LIST_OUTPUT{RESPONSE}{APPLIANCE_LIST}{APPLIANCE}{ID}}" } ], "parse": "XML" }, { "name": "Debug#4", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "initLvars", "operation": "NOP", "body_list": [ "${XC:ASSIGN:{L:Iter}:{I:0}}", "${XC:ASSIGN:{L:MaxIter}:{I:3}}" ] }, { "name": "Debug#5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Init Qualys_Asset_VM_D forHostFixed", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L:A:Qualys_Asset_VM}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:0}}" } }, { "name": "Debug#6", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Init Qualys_Asset_PC_D ForHostFixed", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L:A:Qualys_Asset_PC}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:0}}" } }, { "name": "Debug#9", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CHECK EVENT TYPE#1", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "next": "CHECK EVENT TYPE#2" } }, { "name": "insertAssetHostFixed", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/ip/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "ips", "value": "${E:A:values{ipv4addr}}" }, { "name": "enable_vm", "value": "${L::Qualys_Asset_VM_D}" }, { "name": "enable_pc", "value": "${L::Qualys_Asset_PC_D}" }, { "name": "comment", "value": "Created+by+Infoblox+DDI+at+${UT::TIME}+from+${L::Event}" } ], "parse": "XML" }, { "name": "CHECK EVENT TYPE#2", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "HOST_ADDRESS_IPV4" } ], "next": "checkInsertAsset" } }, { "name": "insertAsset#2", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/ip/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "ips", "value": "${E:A:values{start_addr}}-${E:A:values{end_addr}}" }, { "name": "enable_vm", "value": "${L::Qualys_Asset_VM_D}" }, { "name": "enable_pc", "value": "${L::Qualys_Asset_PC_D}" }, { "name": "comment", "value": "Created+by+Infoblox+DDI+at+${UT::TIME}+from+${L::Event}" } ], "parse": "XML" }, { "name": "Debug#10", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkInsertAsset", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Vulnerability Management" }, { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Compliance Management" }, { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Vulnerability Management/Compliance Management" } ], "error": true } }, { "name": "Debug#11", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkGroupSet", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L::Qualys_Assets_Group}", "op": "==", "right": "" } ], "next": "checkSNMPAuth" } }, { "name": "Debug#12", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for an asset group ID", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_Assets_Group}" } ], "parse": "XML" }, { "name": "Debug#13", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkGroupID", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "next": "checkSNMPAuth" } }, { "name": "Debug#14", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CHECK EVENT TYPE#3", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "next": "CHECK EVENT TYPE#4" } }, { "name": "add the asset to a group", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "edit" }, { "name": "id", "value": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{ipv4addr}}" } ], "parse": "XML" }, { "name": "CHECK EVENT TYPE#4", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "HOST_ADDRESS_IPV4" } ], "next": "checkSNMPAuth" } }, { "name": "add the asset to a group#2", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "edit" }, { "name": "id", "value": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{start_addr}}-${E:A:values{end_addr}}" } ], "parse": "XML" }, { "name": "Debug#15", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkSNMPAuth", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_SNMP}{value}}", "op": "==", "right": "" } ], "next": "checkUnixAuth" } }, { "name": "Debug#16", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for a snmp auth ID", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_SNMP}" } ], "parse": "XML" }, { "name": "Debug#17", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CHECK EVENT TYPE#5", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "next": "CHECK EVENT TYPE#6" } }, { "name": "add the asset to a snmp", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_SNMP_LIST_OUTPUT{RESPONSE}{AUTH_SNMP_LIST}{AUTH_SNMP}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{ipv4addr}}" } ], "parse": "XML" }, { "name": "CHECK EVENT TYPE#6", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "HOST_ADDRESS_IPV4" } ], "next": "checkUnixAuth" } }, { "name": "add the asset to a snmp#2", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_SNMP_LIST_OUTPUT{RESPONSE}{AUTH_SNMP_LIST}{AUTH_SNMP}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{start_addr}}-${E:A:values{end_addr}}" } ], "parse": "XML" }, { "name": "Debug#18", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkUnixAuth", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_Unix}{value}}", "op": "==", "right": "" } ], "next": "check If RANGE_IPV4 event to skip to the end" } }, { "name": "Debug#21.25", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for a Unix auth ID", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_Unix}" } ], "parse": "XML" }, { "name": "Debug#19", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CHECK EVENT TYPE#7", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "next": "CHECK EVENT TYPE#8" } }, { "name": "add the asset to a Unix", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_UNIX_LIST_OUTPUT{RESPONSE}{AUTH_UNIX_LIST}{AUTH_UNIX}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{ipv4addr}}" } ], "parse": "XML" }, { "name": "CHECK EVENT TYPE#8", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "HOST_ADDRESS_IPV4" } ], "next": "assignSyncVarsAndRefValue" } }, { "name": "add the asset to a Unix#2", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_UNIX_LIST_OUTPUT{RESPONSE}{AUTH_UNIX_LIST}{AUTH_UNIX}{ID}}" }, { "name": "add_ips", "value": "${E:A:values{start_addr}}-${E:A:values{end_addr}}" } ], "parse": "XML" }, { "name": "Debug#20", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "check If RANGE_IPV4 event to skip to the end", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" } ], "stop": true } }, { "name": "assignSyncVarsAndRefValue", "operation": "NOP", "body_list": [ "${XC:COPY:{L:SyncTime}:{UT:TIME}}${XC:FORMAT:TRUNCATE:{L:SyncTime}:{10t}}${XC:COPY:{L:REF}:{E:values{_ref}}}" ] }, { "name": "Debug#23.1", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CheckifHost", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:object_type}", "op": "!=", "right": "HostAddress" } ], "next": "Update_syncTimeHostFixed" } }, { "name": "Debug#21", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Get Host _ref", "operation": "GET", "transport": { "path": "record:host?_return_fields=name,extattrs&network_view=${E::values{network_view}}&name=${E::values{host}}&ipv4addr=${E::values{ipv4addr}}" }, "wapi": "v2.6" }, { "name": "Debug#22", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "assignHostRef", "operation": "NOP", "body_list": [ "${XC:COPY:{L:REF}:{P:PARSE[0]{_ref}}}" ] }, { "name": "Debug#23", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Update_syncTimeHostFixed", "operation": "PUT", "transport": { "path": "${L:A:REF}" }, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"Qualys_SyncTime\": { \"value\": \"${L:U:SyncTime}\"}", "}", "}" ] }, { "name": "Debug#24", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkScanVM", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${L::Qualys_Scan}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan}", "op": "==", "right": "false" }, { "left": "${L::Qualys_Scanner}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan_Option}", "op": "==", "right": "" } ], "stop": true } }, { "name": "Debug#25", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "VMScanSleep1", "operation": "SLEEP", "timeout": "30" }, { "name": "Debug#26", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CHECK EVENT TYPE#9", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:event_type}", "op": "==", "right": "RANGE_IPV4" }, { "left": "${E:A:event_type}", "op": "==", "right": "LEASE" } ], "stop": true } }, { "name": "launchVMscan", "operation": "POST", "transport": { "path": "/api/2.0/fo/scan/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "launch" }, { "name": "scan_title", "value": "${E:A:values{ipv4addr}}+scan+initiated+by+Infoblox+at+${UT::TIME}" }, { "name": "ip", "value": "${E:A:values{ipv4addr}}" }, { "name": "iscanner_name", "value": "${L::Qualys_Scanner}" }, { "name": "option_title", "value": "${L:U:Qualys_Scan_Option}" } ], "parse": "XML" }, { "name": "Debug#31", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkScanStart", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${P::SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "New vm scan launched" } ], "stop": true } }, { "name": "Debug#32", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Update_Scan", "operation": "PUT", "transport": { "path": "${L:A:REF}" }, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{\"extattrs+\":{\"Qualys_LastScanTime\": { \"value\": \"${L:A:ScanTime}\"}}}" ] }, { "name": "Debug#33", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "EndForHostFixed", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "", "op": "==", "right": "" } ], "stop": true } }, { "name": "checkSyncForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_Asset_VM}}", "op": "!=", "right": "true" }, { "left": "${E:A:ip.extattrs{Qualys_Asset_PC}}", "op": "!=", "right": "true" } ], "stop": true } }, { "name": "Debug#34", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkLeaseState", "comment": "Check binding state of LEASE for ACTIVE (insertion). All other LEASE states are not supported.", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [{ "left": "${E::binding_state}", "op": "==", "right": "ACTIVE" } ], "eval":"${XC:COPY:{L:ipv4addr}:{E:address}}${XC:COPY:{L:SyncTime}:{UT:TIME}}${XC:FORMAT:TRUNCATE:{L:SyncTime}:{10t}}", "else_stop": true } }, { "name": "Debug#35", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkAssetGroupEAForLease", "comment": "The following steps checks if an Asset group for this lease exists, if it does not exist it will create one.", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_Assets_Group}}", "op": "!=", "right": "" } ], "else_next": "EndForLease" } }, { "name": "GetNetworkIDByAssetGroupNameForLease", "comment": "Get Asset Group ID for network deletion", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "output_format", "value": "xml" }, { "name": "title", "value": "${E:A:ip.extattrs{Qualys_Assets_Group}}" } ], "parse": "XML" }, { "name": "VerifyThatAssetGroupExistsForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "next": "GetScannerIDforLease", "else_eval": "${XC:COPY:{L:ID}:{P:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}}", "else_next": "assignLVarsForLease" } }, { "name": "GetScannerIDforLease", "operation": "GET", "transport": { "path": "/api/2.0/fo/appliance/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "name", "value": "${E:A:ip.extattrs{Qualys_Scanner}}" } ], "parse": "XML" }, { "name": "Debug#3.51", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "insertNewAssetGroupIfItDoesNotExistForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "title", "value": "${E:A:ip.extattrs{Qualys_Assets_Group}}" }, { "name": "appliance_ids", "value": "${P:A:APPLIANCE_LIST_OUTPUT{RESPONSE}{APPLIANCE_LIST}{APPLIANCE}{ID}}" } ], "parse": "XML" }, { "name": "Debug#36", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "assignLVarsForLease", "operation": "NOP", "body_list": [ "${XC:COPY:{L:ipv4addr}:{E:address}}", "${XC:COPY:{L:Qualys_Assets_Group}:{E:ip.extattrs{Qualys_Assets_Group}}}", "${XC:COPY:{L:Qualys_Scanner}:{E:ip.extattrs{Qualys_Scanner}}}", "${XC:COPY:{L:Qualys_Scan_Option}:{E:ip.extattrs{Qualys_Scan_Option}}}", "${XC:COPY:{L:Qualys_Asset_VM}:{E:ip.extattrs{Qualys_Asset_VM}}}", "${XC:COPY:{L:Qualys_Asset_PC}:{E:ip.extattrs{Qualys_Asset_PC}}}", "${XC:COPY:{L:Qualys_Scan}:{E:ip.extattrs{Qualys_Scan_On_Add}}}", "${XC:ASSIGN:{L:Event}:{S:Lease}}" ] }, { "name": "checkAssetSnmpEAForLease", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_User_SNMP}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_SNMP}:{E:ip.extattrs{Qualys_User_SNMP}}}" } }, { "name": "checkUnixEAForLease", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_User_Unix}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_Unix}:{E:ip.extattrs{Qualys_User_Unix}}}" } }, { "name": "Debug#4ForLease", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Init Qualys_Asset_VM_D ForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L:A:Qualys_Asset_VM}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:0}}" } }, { "name": "Debug#37", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Init Qualys_Asset_PC_DForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L:A:Qualys_Asset_PC}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:0}}" } }, { "name": "Debug#38", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "insertAssetForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/ip/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "ips", "value": "${L::ipv4addr}" }, { "name": "enable_vm", "value": "${L::Qualys_Asset_VM_D}" }, { "name": "enable_pc", "value": "${L::Qualys_Asset_PC_D}" }, { "name": "comment", "value": "Created+by+Infoblox+DDI+at+${UT::TIME}+from+${L::Event}" } ], "parse": "XML" }, { "name": "Debug#39", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkInsertAssetForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Vulnerability Management" }, { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Compliance Management" }, { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "IPs successfully added to Vulnerability Management/Compliance Management" } ], "error": true } }, { "name": "Debug#40", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkGroupSetForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L::Qualys_Assets_Group}", "op": "==", "right": "" } ], "next": "checkSNMPAuthForLease" } }, { "name": "Debug#14ForLease", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for an asset group IDForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_Assets_Group}" } ], "parse": "XML" }, { "name": "Debug#41", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkGroupIDForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "next": "checkSNMPAuthForLease" } }, { "name": "Debug#42", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "add the asset to a groupForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "edit" }, { "name": "id", "value": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}" }, { "name": "add_ips", "value": "${L::ipv4addr}" } ], "parse": "XML" }, { "name": "Debug#43", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkSNMPAuthForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_User_SNMP}}", "op": "==", "right": "" } ], "next": "checkUnixAuthForLease" } }, { "name": "Debug#44", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for a snmp auth IDForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_SNMP}" } ], "parse": "XML" }, { "name": "Debug#45", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "add the asset to a snmpForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_SNMP_LIST_OUTPUT{RESPONSE}{AUTH_SNMP_LIST}{AUTH_SNMP}{ID}}" }, { "name": "add_ips", "value": "${L::ipv4addr}" } ], "parse": "XML" }, { "name": "Debug#46", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkUnixAuthForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:ip.extattrs{Qualys_User_Unix}}", "op": "==", "right": "" } ], "next": "checkScanVMForLease" } }, { "name": "Debug#47", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "look for a Unix auth IDForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_Unix}" } ], "parse": "XML" }, { "name": "Debug#48", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "add the asset to a UnixForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_UNIX_LIST_OUTPUT{RESPONSE}{AUTH_UNIX_LIST}{AUTH_UNIX}{ID}}" }, { "name": "add_ips", "value": "${L::ipv4addr}" } ], "parse": "XML" }, { "name": "Debug#49", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkScanVMForLease", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${L::Qualys_Scan}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan}", "op": "==", "right": "false" }, { "left": "${L::Qualys_Scanner}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan_Option}", "op": "==", "right": "" } ], "stop": true } }, { "name": "Debug#50", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "VMScanSleep1ForLease", "operation": "SLEEP", "timeout": "30" }, { "name": "Debug#51", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "launchVMscanForLease", "operation": "POST", "transport": { "path": "/api/2.0/fo/scan/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "launch" }, { "name": "scan_title", "value": "${L::ipv4addr}+scan+initiated+by+Infoblox+at+${UT::TIME}" }, { "name": "ip", "value": "${L::ipv4addr}" }, { "name": "iscanner_name", "value": "${L::Qualys_Scanner}" }, { "name": "option_title", "value": "${L:U:Qualys_Scan_Option}" } ], "parse": "XML" }, { "name": "Debug#53", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "EndForLease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "", "op": "==", "right": "" } ], "stop": true } }, { "name": "checkForNetworkDelete", "comment": "check for IPv4 Network DELETE, if true jump to Delete steps", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:operation_type}", "op": "==", "right": "DELETE" } ], "next": "checkAssetGroupEAForDelete" } }, { "name": "assignSyncVars", "operation": "NOP", "body_list": [ "${XC:COPY:{L:SyncTime}:{UT:TIME}}${XC:FORMAT:TRUNCATE:{L:SyncTime}:{10t}}" ] }, { "name": "assignLVarsNetwork", "operation": "NOP", "body_list": [ "${XC:COPY:{L:Qualys_Scanner}:{E:values{extattrs}{Qualys_Scanner}{value}}}", "${XC:COPY:{L:Qualys_Scan_Option}:{E:values{extattrs}{Qualys_Scan_Option}{value}}}", "${XC:COPY:{L:Qualys_Asset_VM}:{E:values{extattrs}{Qualys_Asset_VM}{value}}}", "${XC:COPY:{L:Qualys_Asset_PC}:{E:values{extattrs}{Qualys_Asset_PC}{value}}}", "${XC:COPY:{L:Qualys_Scan}:{E:values{extattrs}{Qualys_Scan_On_Add}{value}}}", "${XC:COPY:{L:Event}:{E:object_type}}" ] }, { "name": "checkAssetSnmpEAForNetwork", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_SNMP}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_SNMP}:{E:values{extattrs}{Qualys_User_SNMP}{value}}}" } }, { "name": "checkUnixEAForNetwork", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_Unix}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_User_Unix}:{E:values{extattrs}{Qualys_User_Unix}{value}}}" } }, { "name": "Init Qualys_Asset_VM_D ForNetwork", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Asset_VM}{value}}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_VM_D}:{I:0}}" } }, { "name": "Debug#56", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "Init Qualys_Asset_PC_D", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Asset_PC}{value}}", "op": "==", "right": "true" } ], "eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:1}}", "else_eval": "${XC:ASSIGN:{L:Qualys_Asset_PC_D}:{I:0}}" } }, { "name": "Debug#54", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "insertAssetNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/ip/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "ips", "value": "${E::values{network}}" }, { "name": "enable_vm", "value": "${L::Qualys_Asset_VM_D}" }, { "name": "enable_pc", "value": "${L::Qualys_Asset_PC_D}" }, { "name": "comment", "value": "Created+by+Infoblox+DDI+at+${UT::TIME}" } ], "parse": "XML" }, { "name": "checkAssetGroupEA", "comment": "Check if group extattr empty or does not exist", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Assets_Group}{value}}", "op": "!=", "right": "" } ], "eval": "${XC:COPY:{L:Qualys_Assets_Group}:{E:values{extattrs}{Qualys_Assets_Group}{value}}}", "else_next": "GetScannerIDforNetworkbyCIDR" } }, { "name": "GetNetworkIDByAssetGroupNameForNetwork", "comment": "Get Asset Group ID for network deletion", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "output_format", "value": "xml" }, { "name": "title", "value": "${L:A:Qualys_Assets_Group}" } ], "parse": "XML" }, { "name": "VerifyThatAssetGroupExistsForNetwork", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "else_eval": "${XC:COPY:{L:ID}:{P:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}}", "else_next": "AddNetworkToExistingAddressGroup" } }, { "name": "GetScannerIDforNetwork", "operation": "GET", "transport": { "path": "/api/2.0/fo/appliance/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "name", "value": "${E:A:values{extattrs}{Qualys_Scanner}{value}}" } ], "parse": "XML" }, { "name": "Debug#57", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "AddNetworkByAssetGroupName", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "title", "value": "${L:A:Qualys_Assets_Group}" }, { "name": "appliance_ids", "value": "${P:A:APPLIANCE_LIST_OUTPUT{RESPONSE}{APPLIANCE_LIST}{APPLIANCE}{ID}}" }, { "name": "comments", "value": "WAPI%20reference%20${E::values{_ref}}" }, { "name": "ips", "value": "${E::values{network}}" } ], "parse": "XML" }, { "name": "errorcheck: AddByGroupName", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "=~", "right": "Asset Group successfully added." } ], "next": "Debug#58", "else_error": true } }, { "name": "AddNetworkToExistingAddressGroup", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "edit" }, { "name": "id", "value": "${P::ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}" }, { "name": "add_ips", "value": "${E::values{network}}" } ], "parse": "XML" }, { "name": "SkipNetByCIDRSteps", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "", "op": "==", "right": "" } ], "next": "Debug#58" } }, { "name": "GetScannerIDforNetworkbyCIDR", "operation": "GET", "transport": { "path": "/api/2.0/fo/appliance/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "name", "value": "${E:A:values{extattrs}{Qualys_Scanner}{value}}" } ], "parse": "XML" }, { "name": "AddNetworkByCIDR", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "add" }, { "name": "title", "value": "Asset-Group-for-Network-${E:A:values{network}}" }, { "name": "appliance_ids", "value": "${P:A:APPLIANCE_LIST_OUTPUT{RESPONSE}{APPLIANCE_LIST}{APPLIANCE}{ID}}" }, { "name": "comments", "value": "WAPI%20reference%20${E::values{_ref}}" }, { "name": "ips", "value": "${E::values{network}}" } ], "parse": "XML" }, { "name": "errorcheck: AddByCIDR", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "=~", "right": "Asset Group successfully added." } ], "else_error": true } }, { "name": "Create CIDR Group EA", "operation": "PUT", "transport": { "path": "${E:A:values{_ref}}" }, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"Qualys_Assets_Group\": { \"value\": \"Asset-Group-for-Network-${E:A:values{network}}\"}", "}", "}" ] }, { "name": "Debug#58", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkSNMPAuthForNetwork", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_SNMP}{value}}", "op": "==", "right": "" } ], "next": "checkUnixAuthForNetwork" } }, { "name": "Debug#58.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "CheckSNMPAuthForNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_SNMP}" } ], "parse": "XML" }, { "name": "Debug#59.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "AddAssetToSNMPForNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/snmp/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_SNMP_LIST_OUTPUT{RESPONSE}{AUTH_SNMP_LIST}{AUTH_SNMP}{ID}}" }, { "name": "add_ips", "value": "${E::values{network}}" } ], "parse": "XML" }, { "name": "checkUnixAuthForNetwork", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_User_Unix}{value}}", "op": "==", "right": "" } ], "next": "Update_syncTimeEAForNetwork" } }, { "name": "Debug#21.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "FindUnixAuthIDForNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "title", "value": "${L::Qualys_User_Unix}" } ], "parse": "XML" }, { "name": "Debug#60.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "AddAssetToUnixforNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/auth/unix/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "update" }, { "name": "ids", "value": "${P::AUTH_UNIX_LIST_OUTPUT{RESPONSE}{AUTH_UNIX_LIST}{AUTH_UNIX}{ID}}" }, { "name": "add_ips", "value": "${E::values{network}}" } ], "parse": "XML" }, { "name": "Update_syncTimeEAForNetwork", "operation": "PUT", "transport": { "path": "${E:A:values{_ref}}" }, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"Qualys_SyncTime\": { \"value\": \"${L:U:SyncTime}\"}", "}", "}" ] }, { "name": "Debug#61", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkScanVMForNetwork", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${L::Qualys_Scan}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan}", "op": "==", "right": "false" }, { "left": "${L::Qualys_Scanner}", "op": "==", "right": "" }, { "left": "${L::Qualys_Scan_Option}", "op": "==", "right": "" } ], "stop": true } }, { "name": "Debug#62", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "VMScanSleep1ForNetwork", "operation": "SLEEP", "timeout": "30" }, { "name": "Debug#63", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "launchVMscanForNetwork", "operation": "POST", "transport": { "path": "/api/2.0/fo/scan/" }, "headers": { "X-Requested-With": "InfobloxDDIIntegration" }, "parameters": [ { "name": "action", "value": "launch" }, { "name": "scan_title", "value": "${E::values{network}}+scan+initiated+by+Infoblox+at+${UT::TIME}" }, { "name": "ip", "value": "${E::values{network}}" }, { "name": "iscanner_name", "value": "${L::Qualys_Scanner}" }, { "name": "option_title", "value": "${L:U:Qualys_Scan_Option}" } ], "parse": "XML" }, { "name": "Debug#64.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "checkScanStartNetwork", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${P::SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "New vm scan launched" } ], "stop": true } }, { "name": "Debug#32.5", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "UpdateScanForNetwork", "operation": "PUT", "transport": { "path": "${E:A:values{_ref}}" }, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{\"extattrs+\":{\"Qualys_LastScanTime\": { \"value\": \"${L:A:ScanTime}\"}}}" ] }, { "name": "EndForNetworkAdd", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "", "op": "==", "right": "" } ], "stop": true } }, { "name": "checkAssetGroupEAForDelete", "comment": "If the Group ExtAttr exists, halt the template that way groups with other existing IPs are not deleted", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${E:A:values{extattrs}{Qualys_Assets_Group}{value}}", "op": "=~", "right": "Asset-Group-for-Network-${E:A:values{network}}" } ], "else_stop": true } }, { "name": "GetNetworkIDByCIDR", "comment": "Get Asset Group ID for network deletion", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "list" }, { "name": "output_format", "value": "xml" }, { "name": "title", "value": "Asset-Group-for-Network-${E:A:values{network}}" } ], "parse": "XML" }, { "name": "Debug#64", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "stop if it is not found or if it's not unique", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}", "op": "==", "right": "" } ], "error": true, "else_eval": "${XC:COPY:{L:ID}:{P:ASSET_GROUP_LIST_OUTPUT{RESPONSE}{ASSET_GROUP_LIST}{ASSET_GROUP}{ID}}}" } }, { "name": "Debug#65", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "delete the asset group", "operation": "POST", "transport": { "path": "/api/2.0/fo/asset/group/" }, "headers": { "X-Requested-With": "BloxTestIntegration" }, "parameters": [ { "name": "action", "value": "delete" }, { "name": "id", "value": "${L::ID}" } ], "parse": "XML" }, { "name": "Debug#66", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "errorcheck: delete asset group", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${P:A:SIMPLE_RETURN{RESPONSE}{TEXT}}", "op": "!=", "right": "Asset Group Deleted Successfully" } ], "error": true } }, { "name": "Debug#67", "operation": "NOP", "body": "${XC:DEBUG:{H:}}${XC:DEBUG:{E:}}${XC:DEBUG:{I:}}${XC:DEBUG:{L:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}${XC:DEBUG:{UT:}}${XC:DEBUG:{R:}}" }, { "name": "EndForNetworkDelete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "", "op": "==", "right": "" } ], "stop": true } } ] }