cloudflare-delete-all-dns-r.../apicalls.py

57 lines
1.7 KiB
Python

import requests
def getHeaders(credentials):
headers = {'Authorization': f'Bearer {credentials["api_key"]}', 'X-Auth-Email': f'{credentials["email"]}',
'Content-Type': 'application/json'}
return headers
def errorChecker(r):
if r.status_code == 200:
return False
elif r.status_code == 429:
print(f'\n\n\n{"="*80}It looks like you have reached your rate limit to access CloudFlare APIs\nPlease try after 5 minutes.{"="*80}')
else:
print(f'Error {r.status_code}.\nDetails:\n{r.json()}')
assert False
def verifyCredentials(credentials):
headers = getHeaders(credentials)
r = requests.get('https://api.cloudflare.com/client/v4/user/tokens/verify', headers=headers)
errorChecker(r)
return r
def listAllZones(credentials):
zones = requests.get(
'https://api.cloudflare.com/client/v4/zones',
headers= getHeaders(credentials)
)
errorChecker(zones)
return zones
def getAllDNS(credentials, id):
dns_records = requests.get(
f'https://api.cloudflare.com/client/v4/zones/{id}/dns_records',
headers=getHeaders(credentials)
)
errorChecker(dns_records)
return dns_records
def exportBindDNS(credentials, id):
export_response = requests.get(
f'https://api.cloudflare.com/client/v4/zones/{id}/dns_records/export',
headers=getHeaders(credentials)
)
errorChecker(export_response)
return export_response
def deleteARecord(credentials, zone_id, dns_id):
delete_response = requests.delete(
f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{dns_id}',
headers=getHeaders(credentials)
)
errorChecker(delete_response)
return delete_response