import yaml import requests from requests.auth import HTTPBasicAuth class FivetranService: def __init__(self): self.config = yaml.safe_load(open('config.yml')) self.auth = HTTPBasicAuth(self.config['fivetran_connection']['api_key'], self.config['fivetran_connection']['api_secret']) def get_connector(self, connector_id): url = "https://api.fivetran.com/v1/connectors/{}".format(connector_id) response = requests.get(url=url, auth=self.auth, params={"limit": 1000}, headers={"Accept": "application/json"} ).json() return response def post_connector(self, body): url = "https://api.fivetran.com/v1/connectors" response = requests.post(url=url, auth=self.auth, json=body).json() return response def post_connect_card(self, connector_id): url = f"https://api.fivetran.com/v1/connectors/{connector_id}/connect-card-token" response = requests.post(url=url, auth=self.auth, json={}).json() return response def patch_connector(self, connector_id, body): url = f"https://api.fivetran.com/v1/connectors/{connector_id}" response = requests.patch(url=url, auth=self.auth, json=body).json() return response def get_config_schema(self, connector_id): url = "https://api.fivetran.com/v1/connectors/{}/schemas".format(connector_id) response = requests.get(url=url, auth=self.auth, headers={"Accept": "application/json"} ).json() return response def modify_connector(self, connector_id, body): url = "https://api.fivetran.com/v1/connectors/{}".format(connector_id) response = requests.patch(url=url, auth=self.auth, json=body, headers={"Accept": "application/json"}).json() return response