35 lines
992 B
Python
35 lines
992 B
Python
import requests
|
|
import json
|
|
|
|
|
|
class GandiClient:
|
|
base_url = "https://api.gandi.net/v5/livedns/domains"
|
|
|
|
def __init__(self, domain, api_key, record_name, record_type):
|
|
self.domain = domain
|
|
self.api_key = api_key
|
|
self.record_name = record_name
|
|
self.record_type = record_type
|
|
|
|
def _get_headers(self):
|
|
return {
|
|
'Authorization': f'Bearer {self.api_key}',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
|
|
def _get_url(self):
|
|
return f"{self.base_url}/{self.domain}/records/{self.record_name}/{self.record_type}"
|
|
|
|
def get_host(self):
|
|
response = requests.request("PUT", self._get_url(), headers=self._get_headers())
|
|
|
|
return response.json()['rrset_values'][0]
|
|
|
|
def set_host(self, host, tls=3600):
|
|
payload = json.dumps({
|
|
"rrset_ttl": tls,
|
|
"rrset_values": [host]
|
|
})
|
|
|
|
requests.request("PUT", self._get_url(), headers=self._get_headers(), data=payload)
|