API-Dokumentation Webhosting für alle LWS besuchen

Regelsatz anwenden

Verzögert Asynchron · 202

POST /api/v1/servers/{vmid}/firewall/sets/{id}

operationIdpostServerFirewallSet

Erforderliche Stufe
Betrieb
Kontingent
Mutation, 300 Aufrufe pro Stunde

Fügt die Regeln des Regelsatzes zu denen des VPS hinzu und aktualisiert seine Firewall. Höchstens zehn Regelsätze pro VPS.

Bei einer inaktiven Firewall (enabled: false in GET /servers/{vmid}/firewall), was beim ersten angewendeten Regelsatz der Fall ist, werden die Regeln gespeichert, filtern aber nichts, solange die Firewall nicht über PUT /servers/{vmid}/firewall mit enabled: true aktiviert wird. Warten Sie vor der Aktivierung das Ende der zurückgegebenen Aufgabe ab: Eine laufende Synchronisierung führt zur Antwort 409 task_already_running.

Diese Anfrage wird im Hintergrund verarbeitet: Sie antwortet sofort, während die Arbeit weiterläuft. Verfolgen Sie sie über die Task- oder Request-Endpunkte.

Pfadparameter

vmid string erforderlich

Bezeichner des VPS. Er muss zum Konto und zum Umfang des Schlüssels gehören.

Muster ^\d+$ Beispiel: 116807

id string erforderlich

Bezeichner des Regelsatzes.

Muster ^\d+$ Beispiel: 34

Antworten

202

Anfrage angenommen und in die Warteschlange gestellt. Verfolgen Sie die zurückgegebene Aufgabe mit GET /tasks/{id}.

Die Anfrage wurde angenommen, nicht ausgeführt. Die Antwort enthält eine zu verfolgende Aufgabe.

{
  "data": {
    "tasks": [
      {
        "id": "tsk_000002e1",
        "status": "pending",
        "action": "firewall.sync",
        "vmid": "116807",
        "description": "Mise à jour des règles Firewall pour la VM : 116807",
        "created_at": "2026-08-20T14:31:02+02:00",
        "finished_at": null
      }
    ]
  }
}
Felder der Antwort 9
  • data object
  • tasks object[]

    Erstellte Aufgaben; immer ein Array

  • id string

    Opaker Bezeichner

    Beispiel: tsk_000002e1

  • status string

    unknown würde einen Zustand anzeigen, den die API nicht benennen kann

    eines von: pending, succeeded, failed, unknown

  • action string

    Art der Aufgabe

    eines von: server.start, server.stop, server.shutdown, server.reboot, server.reset, server.rebuild, server.enable_rescue, server.disable_rescue, server.reboot_rescue, snapshot.create, snapshot.delete, snapshot.rollback, backup.create, backup.restore, iso.mount, iso.unmount, firewall.sync, firewall.unblock_port_25 TaskAction

  • vmid string
  • description string
  • created_at string (date-time)
  • finished_at string (date-time)

    null, solange die Aufgabe läuft

401

Authentifizierung abgelehnt: invalid_token — Header Authorization fehlt oder ist fehlerhaft, oder Schlüssel unbekannt; access_disabled — API-Zugang für dieses Konto gesperrt, oder API-Dienst vorübergehend von LWS abgeschaltet.

Header Authorization fehlt oder ist fehlerhaft, oder Schlüssel unbekannt

{
  "type": "https://docs.lws.fr/kvm/errors/invalid-token",
  "title": "Authentification invalide",
  "status": 401,
  "code": "invalid_token",
  "detail": "Clé inconnue ou révoquée.",
  "request_id": "3f9a1c07b2e45d18"
}

API-Zugang für dieses Konto gesperrt, oder API-Dienst vorübergehend von LWS abgeschaltet

{
  "type": "https://docs.lws.fr/kvm/errors/access-disabled",
  "title": "Accès API désactivé",
  "status": 401,
  "code": "access_disabled",
  "detail": "L'accès API est désactivé pour ce compte. Réactivez-le depuis la page « API / MCP » du panel.",
  "request_id": "3f9a1c07b2e45d18"
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
403

Zugriff verweigert: insufficient_scope — Stufe des Schlüssels unzureichend; ip_not_allowed — aufrufende Adresse nicht zugelassen.

Stufe des Schlüssels unzureichend

{
  "type": "https://docs.lws.fr/kvm/errors/insufficient-scope",
  "title": "Droits insuffisants",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "Niveau de permission « exploitation » requis.",
  "request_id": "3f9a1c07b2e45d18",
  "required_level": "exploitation"
}

aufrufende Adresse nicht zugelassen

{
  "type": "https://docs.lws.fr/kvm/errors/ip-not-allowed",
  "title": "Adresse non autorisée",
  "status": 403,
  "code": "ip_not_allowed",
  "detail": "L'adresse 203.0.113.10 ne figure pas parmi les adresses autorisées de ce compte.",
  "request_id": "3f9a1c07b2e45d18"
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
404

Ressource nicht gefunden: set_not_found — Regelsatz unbekannt oder gehört zu einem anderen Konto; vm_not_found — VPS existiert nicht oder liegt außerhalb des Umfangs des Schlüssels.

Regelsatz unbekannt oder gehört zu einem anderen Konto

{
  "type": "https://docs.lws.fr/kvm/errors/set-not-found",
  "title": "Jeu de règles introuvable",
  "status": 404,
  "code": "set_not_found",
  "detail": "Jeu de règles introuvable.",
  "request_id": "3f9a1c07b2e45d18"
}

VPS existiert nicht oder liegt außerhalb des Umfangs des Schlüssels

{
  "type": "https://docs.lws.fr/kvm/errors/vm-not-found",
  "title": "VPS introuvable",
  "status": 404,
  "code": "vm_not_found",
  "detail": "Aucun VPS 999999 sur ce compte.",
  "request_id": "3f9a1c07b2e45d18"
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
409

Konflikt mit dem aktuellen Zustand: invalid_state — Regelsatz bereits auf diesen VPS angewendet; quota_exceeded — Limit von 10 angewendeten Regelsätzen erreicht; task_already_running — eine Firewall-Synchronisierung oder eine Neuinstallation läuft bereits; service_suspended — VPS deaktiviert oder abgelaufen: Nur Lesevorgänge bleiben möglich.

Regelsatz bereits auf diesen VPS angewendet

{
  "type": "https://docs.lws.fr/kvm/errors/invalid-state",
  "title": "Opération impossible en l'état",
  "status": 409,
  "code": "invalid_state",
  "detail": "Ce jeu de règles est déjà appliqué à ce VPS.",
  "request_id": "3f9a1c07b2e45d18"
}

Limit von 10 angewendeten Regelsätzen erreicht

{
  "type": "https://docs.lws.fr/kvm/errors/quota-exceeded",
  "title": "Limite atteinte",
  "status": 409,
  "code": "quota_exceeded",
  "detail": "Ce VPS a atteint la limite de 10 jeux de règles appliqués.",
  "request_id": "3f9a1c07b2e45d18"
}

eine Firewall-Synchronisierung oder eine Neuinstallation läuft bereits

{
  "type": "https://docs.lws.fr/kvm/errors/task-already-running",
  "title": "Opération déjà en cours",
  "status": 409,
  "code": "task_already_running",
  "detail": "Une synchronisation du pare-feu est déjà en cours sur ce VPS. Attendez qu'elle aboutisse.",
  "request_id": "3f9a1c07b2e45d18",
  "task_id": "tsk_000002d5"
}

VPS deaktiviert oder abgelaufen: Nur Lesevorgänge bleiben möglich

{
  "type": "https://docs.lws.fr/kvm/errors/service-suspended",
  "title": "Service suspendu",
  "status": 409,
  "code": "service_suspended",
  "detail": "Le VPS 116807 est expiré.",
  "request_id": "3f9a1c07b2e45d18"
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
429

Kontingent überschritten: rate_limited — stündliches Kontingent der Gruppe ausgeschöpft.

{
  "type": "https://docs.lws.fr/kvm/errors/rate-limited",
  "title": "Quota dépassé",
  "status": 429,
  "code": "rate_limited",
  "detail": "Quota dépassé pour les opérations de type « mutation » : 300 appels par heure. Réessayez dans 95 seconde(s).",
  "request_id": "3f9a1c07b2e45d18",
  "family": "mutation",
  "limit": 300,
  "retry_after": 95
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
502

Abhängigkeit nicht erreichbar: upstream_unavailable — Anwenden des Regelsatzes fehlgeschlagen, oder VPS-Inventar vorübergehend nicht verfügbar.

{
  "type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
  "title": "Service momentanément indisponible",
  "status": 502,
  "code": "upstream_unavailable",
  "detail": "L'application du jeu de règles a échoué.",
  "request_id": "3f9a1c07b2e45d18"
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
503

Hostserver im Wartungseingriff: server_maintenance — Hostserver in einem von LWS angekündigten Eingriff und nicht erreichbar; beachten Sie Retry-After.

{
  "type": "https://docs.lws.fr/kvm/errors/server-maintenance",
  "title": "Intervention en cours sur le serveur hôte",
  "status": 503,
  "code": "server_maintenance",
  "detail": "Le serveur hébergeant ce VPS fait l'objet d'une intervention programmée par LWS : il est momentanément inaccessible. Fin prévue : 2026-10-21T18:00:00+02:00.",
  "request_id": "3f9a1c07b2e45d18",
  "maintenance": {
    "kind": "works",
    "started_at": "2026-10-21T14:00:00+02:00",
    "expected_end": "2026-10-21T18:00:00+02:00"
  }
}
Felder der Antwort 18
  • type string (uri)

    Beispiel: https://docs.lws.fr/kvm/errors/vm-not-found

    erforderlich
  • title string

    Kurztitel

    Beispiel: VPS introuvable

    erforderlich
  • status integer (int64)

    HTTP-Status

    Beispiel: 404

    erforderlich
  • code string

    Stabiler Maschinencode (siehe „Fehler“ in Erste Schritte)

    Beispiel: vm_not_found

    erforderlich
  • detail string

    Ausführliche Meldung

    Beispiel: Aucun VPS 999999 sur ce compte.

    erforderlich
  • request_id string

    Bezeichner der Anfrage, an den Support weiterzugeben

    Beispiel: 3f9a1c07b2e45d18

    erforderlich
  • errors object

    validation_failed: Meldung je fehlerhaftem Parameter

  • required_level string

    insufficient_scope: vom Vorgang geforderte Stufe

    eines von: read, exploitation, full

  • task_id string

    task_already_running: laufende Aufgabe auf diesem VPS

    Beispiel: tsk_000002d5

  • family string

    rate_limited: ausgeschöpfte Kontingentgruppe

    eines von: read, mutation, heavy

  • limit integer (int64)

    rate_limited: stündliche Obergrenze der Gruppe

  • retry_after integer (int64)

    rate_limited: Sekunden bis zum nächsten Versuch

  • lock string

    server_locked: vom Hypervisor gesetzte Sperre (backup, snapshot, suspended …)

    Beispiel: snapshot

  • reason string

    server_locked: operation_in_progress – ein Vorgang läuft, versuchen Sie es nach Retry-After erneut; suspended – der VPS befindet sich im Ruhezustand, starten Sie ihn zuerst; support_notified – ungewöhnliche Sperre, das LWS-Team ist informiert und kümmert sich darum

    eines von: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: Art des Eingriffs, Beginn und voraussichtliches Ende (null bei einem Vorfall)

  • kind string

    eines von: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
Codebeispiele und Testkonsole anzeigen
POST /servers/{vmid}/firewall/sets/{id}
LWS_API_KEY='…'curl -X POST \  "https://panelkvm.lwspanel.com/api/v1/servers/116807/firewall/sets/34" \  -H "Authorization: Bearer $LWS_API_KEY"
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/servers/116807/firewall/sets/34");curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [    "Authorization: Bearer " . $lwsApiKey,]);$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.post(    "https://panelkvm.lwspanel.com/api/v1/servers/116807/firewall/sets/34",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/servers/116807/firewall/sets/34", {  method: "POST",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,  },});const data = await res.json();
lwsApiKey := "…"req, _ := http.NewRequest("POST",    "https://panelkvm.lwspanel.com/api/v1/servers/116807/firewall/sets/34", nil)req.Header.Set("Authorization", "Bearer "+lwsApiKey)resp, err := http.DefaultClient.Do(req)