aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py')
-rw-r--r--.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py b/.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py
new file mode 100644
index 00000000..816050d3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/sendgrid/helpers/endpoints/ip/unassigned.py
@@ -0,0 +1,59 @@
+import json
+
+
+def format_ret(return_set, as_json=False):
+ """ decouple, allow for modifications to return type
+ returns a list of ip addresses in object or json form """
+ ret_list = list()
+ for item in return_set:
+ d = {"ip": item}
+ ret_list.append(d)
+
+ if as_json:
+ return json.dumps(ret_list)
+
+ return ret_list
+
+
+def unassigned(data, as_json=False):
+ """ https://sendgrid.com/docs/API_Reference/api_v3.html#ip-addresses
+ The /ips rest endpoint returns information about the IP addresses
+ and the usernames assigned to an IP
+
+ unassigned returns a listing of the IP addresses that are allocated
+ but have 0 users assigned
+
+
+ data (response.body from sg.client.ips.get())
+ as_json False -> get list of dicts
+ True -> get json object
+
+ example:
+ sg = sendgrid.SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
+
+ params = {
+ 'subuser': 'test_string',
+ 'ip': 'test_string',
+ 'limit': 1,
+ 'exclude_whitelabels':
+ 'true', 'offset': 1
+ }
+ response = sg.client.ips.get(query_params=params)
+ if response.status_code == 201:
+ data = response.body
+ unused = unassigned(data)
+ """
+
+ no_subusers = set()
+
+ if not isinstance(data, list):
+ return format_ret(no_subusers, as_json=as_json)
+
+ for current in data:
+ num_subusers = len(current["subusers"])
+ if num_subusers == 0:
+ current_ip = current["ip"]
+ no_subusers.add(current_ip)
+
+ ret_val = format_ret(no_subusers, as_json=as_json)
+ return ret_val