import json import requests import os import pandas as pd import utils.pretty as ct def getDestAllowlistFromClientID(url, clientid="0dcddaf3-d017-4ced-9227-ceeca3117286"): #This is dependant on their being an allowlist in the policy with the same name as the policy endpoint = url + '/v1/agent/find' payload = { "agentid" : f"{clientid}" } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["agents"]) policyname = getPolicyName(url,data.loc[0, "groupid"]) allowlists = getPolicyAllowlists(url,data.loc[0, "groupid"]) app_id = allowlists.loc[allowlists['name'] == f'{policyname}', 'applicationid'].values[0] return app_id def getPolicyAllowlists(url, groupid): endpoint = url + '/v1/group/policies' payload = { "groupid" : f"{groupid}" } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["applications"]) return data def getPolicyName(url, groupid): endpoint = url + '/v1/group/' payload = { } headers = {"X-APIKey": os.getenv('APIKEY')} payload = json.dumps(payload) response = requests.post(endpoint, headers=headers, data=payload, verify=False) result = json.loads(response.text) data = pd.DataFrame(result["response"]["groups"]) name = data.loc[data['groupid'] == f"{groupid}", 'name'].values[0] return name