API-Dokumentation Webhosting für alle LWS besuchen

Regelsatz erstellen

POST /api/v1/firewall/sets

operationIdpostFirewallSet

Erforderliche Stufe
Betrieb
Kontingent
Mutation, 300 Aufrufe pro Stunde

Definiert eine Regelvorlage. Bei der Erstellung wird sie auf keinen VPS angewendet (applied_to leer): Es gibt nichts zu verfolgen.

Jede Regel enthält einen port (Einzelwert oder Bereich Anfang-Ende, Grenzen 1 bis 65535), ein protocol (TCP oder UDP) und ein optionales subnet: eine oder mehrere IPv4-/IPv6-Adressen, mit oder ohne CIDR, durch Kommas getrennt. Fehlt subnet, ist es leer oder NULL, bedeutet das „von überall“, sowohl über IPv4 als auch über IPv6. Das Präfix /0 wird bei IPv6 nicht akzeptiert (::/0): Um für alle zu öffnen, lassen Sie subnet leer.

Anfrage-Body

  • name string

    max. 100 Zeichen

    erforderlich
  • description string
    optional
  • rules object[]
    erforderlich
  • port string

    Port (443) oder Bereich (8000-8100), Grenzen 1 bis 65535

    Beispiel: 443

    erforderlich
  • protocol string

    eines von: TCP, UDP

    erforderlich
  • subnet string

    IPv4-/IPv6-Adressen (CIDR zulässig, außer /0 bei IPv6), durch Kommas getrennt; fehlend, leer oder NULL: von überall, sowohl über IPv4 als auch über IPv6

    Beispiel: 45.54.45.54

    optional
Beispielanfrage
{
  "name": "Web public",
  "description": "HTTPS depuis le bureau",
  "rules": [
    {
      "port": "443",
      "protocol": "TCP",
      "subnet": "45.54.45.54"
    }
  ]
}

Antworten

201

Regelsatz erstellt

{
  "data": {
    "id": "34",
    "name": "Web public",
    "description": "HTTPS depuis le bureau",
    "rules": [
      {
        "port": "443",
        "protocol": "TCP",
        "sources": [
          "45.54.45.54"
        ],
        "open_to_any": false
      }
    ],
    "applied_to": []
  }
}
Felder der Antwort 10
  • data object erforderlich
  • id string

    Beispiel: 34

  • name string
  • description string
  • rules object[]
  • port string

    Port oder Bereich Anfang-Ende

    Beispiel: 443

  • protocol string

    Protokoll, immer in Großbuchstaben

    eines von: TCP, UDP

  • sources string[]

    Zugelassene Adressen oder CIDR-Bereiche; leer, wenn die Regel für alle offen ist

  • open_to_any boolean

    true, wenn keine Adresse die Regel einschränkt

  • applied_to string[]

    VPS (vom Schlüssel abgedeckt), auf die der Regelsatz angewendet wird

400

Ungültige Parameter: validation_failed — Name fehlt oder ist zu lang, oder ungültige Regel (die Position wird angegeben).

{
  "type": "https://docs.lws.fr/kvm/errors/validation-failed",
  "title": "Paramètres invalides",
  "status": 400,
  "code": "validation_failed",
  "detail": "Règle #2 : port hors limites (99999)",
  "request_id": "3f9a1c07b2e45d18",
  "errors": {
    "rules": "Règle #2 : port hors limites (99999)"
  }
}
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)
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)
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 — Speichern nicht möglich.

{
  "type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
  "title": "Service momentanément indisponible",
  "status": 502,
  "code": "upstream_unavailable",
  "detail": "Le jeu de règles n'a pas pu être enregistré.",
  "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)
Codebeispiele und Testkonsole anzeigen
POST /firewall/sets
LWS_API_KEY='…'curl -X POST \  "https://panelkvm.lwspanel.com/api/v1/firewall/sets" \  -H "Authorization: Bearer $LWS_API_KEY" \  -H "Content-Type: application/json" \  -d '{"name":"Web public","description":"HTTPS depuis le bureau","rules":[{"port":"443","protocol":"TCP","subnet":"45.54.45.54"}]}'
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/firewall/sets");curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [    "Authorization: Bearer " . $lwsApiKey,    "Content-Type: application/json",]);curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"Web public","description":"HTTPS depuis le bureau","rules":[{"port":"443","protocol":"TCP","subnet":"45.54.45.54"}]}');$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.post(    "https://panelkvm.lwspanel.com/api/v1/firewall/sets",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },    json={"name": "Web public", "description": "HTTPS depuis le bureau", "rules": [{"port": "443", "protocol": "TCP", "subnet": "45.54.45.54"}]},)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/firewall/sets", {  method: "POST",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,    "Content-Type": "application/json",  },  body: JSON.stringify({"name":"Web public","description":"HTTPS depuis le bureau","rules":[{"port":"443","protocol":"TCP","subnet":"45.54.45.54"}]}),});const data = await res.json();
lwsApiKey := "…"body := strings.NewReader(`{"name":"Web public","description":"HTTPS depuis le bureau","rules":[{"port":"443","protocol":"TCP","subnet":"45.54.45.54"}]}`)req, _ := http.NewRequest("POST",    "https://panelkvm.lwspanel.com/api/v1/firewall/sets", body)req.Header.Set("Authorization", "Bearer "+lwsApiKey)req.Header.Set("Content-Type", "application/json")resp, err := http.DefaultClient.Do(req)