import os import time import requests BASE_URL = os.getenv("YAMANVM_BASE_URL", "https://yamanvm.yamanhosting.com").rstrip("/") TOKEN = os.getenv("YAMANVM_API_TOKEN", "yvm_live_xxxxxxxxxxxxxxxxx") def yamanvm_request(method, path, payload=None, idempotency_key=None): headers = { "Authorization": f"Bearer {TOKEN}", "Accept": "application/json", "X-Request-Id": f"python-{int(time.time())}", } if idempotency_key: headers["Idempotency-Key"] = idempotency_key response = requests.request( method, f"{BASE_URL}{path}", json=payload, headers=headers, timeout=30, ) return { "status": response.status_code, "body": response.json(), } print(yamanvm_request("GET", "/api/v1/ping")) print(yamanvm_request("GET", "/api/v1/servers?per_page=5")) # Example mutating call: # print(yamanvm_request( # "POST", # "/api/v1/servers/3/snapshots", # { # "name": "release-before-upgrade", # "description": "Checkpoint before upgrade", # }, # "srv-3-snapshot-1001", # ))