Report-Default übertragen
Schreibt das monthlyReportsDefault eines Pakets einmalig auf jeden Kunden, der aktuell dieses Paket hat.
POST /api/organizations/:id/package-configs/:packageType/apply-report-default
Das monthlyReportsDefault aus Paket-Konfiguration erstellen/aktualisieren
ist eine Vorlage: Sie legt nur bei ab jetzt neu angelegten Kunden monthlyReportsEnabled
fest. Das Speichern der Paket-Konfiguration überschreibt bereits bestehende Kunden auf diesem
Paket bewusst nie, ein Konfigurations-Save darf keine Kundendaten stillschweigend verändern.
Dieser Endpunkt ist die explizite Einmal-Aktion für den anderen Fall: das aktuelle
monthlyReportsDefault des Pakets jetzt sofort auf jeden Kunden übertragen, der dieses Paket
bereits hat.
Es handelt sich um ein einzelnes UPDATE über alle betroffenen Kunden, nicht um eine Schleife
mit Fehler-Isolation pro Kunde wie bei Sammelaktionen: Es wird
eine einzige Boolean-Spalte geschrieben, ohne Kaskade und ohne Nebeneffekte, daher bringt eine
Isolation pro Zeile hier nichts. Entweder wird die gesamte Menge geschrieben, oder die Anfrage
schlägt fehl, bevor irgendetwas geschrieben wurde.
Pfad-Parameter: :id
:id ist die numerische id der Organisation, dasselbe ganzzahlige id-Feld, das
Organisations-Details abrufen zurückgibt. Das
ist enger gefasst als bei den benachbarten Paket-Konfigurations-Routen, die zusätzlich
:organizationPublicId (eine UUID) auflösen. Dieser Endpunkt tut das nicht: Er parst das
Pfad-Segment direkt mit Number(...) und lehnt alles ab, was keine positive Ganzzahl ist, mit
400 invalidRequestBody.
Beispiel (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"
curl -X POST "$BASE_URL/api/organizations/1/package-configs/pro/apply-report-default" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Kein Request Body.
Antwort (Response)
{ "updated": 42 }updated ist die Anzahl der geschriebenen Kunden-Zeilen. Ein Kunde „hat" das Paket, wenn seine
packageId mit der ID dieser Paket-Konfiguration übereinstimmt, oder, bei Kunden ohne
zugewiesene ID, wenn sein packageType-String übereinstimmt. Kunden, die zufällig nur denselben
packageType-String tragen, ohne diese konkrete Konfiguration zu halten, sind nicht enthalten.
Häufige Fehler
400 invalidRequestBody:idist keine positive Ganzzahl, oder:packageTypefehlt401 unauthorizeddu bist nicht angemeldet403 forbiddendu bist kein Admin dieser Organisation und kein Global Admin403 customerScopedTokenForbiddenbeim Aufruf mit einem kundengescopten API-Token; dies ist eine organisationsweite Aktion und erfordert ein organisationsgescoptes Token oder eine Session404 notFoundes existiert keine Paket-Konfiguration mit diesempackageTypefür diese Organisation
Hinweis zur Berechtigung:
- Schreibzugriff ist erforderlich (Org-Admin der Ziel-Organisation, oder Global-Admin).
- Ein kundengescoptes API-Token wird grundsätzlich abgelehnt. Dieser Endpoint schreibt über alle Kunden hinweg, die das Paket halten; es gibt also keine Kunden-Dimension, auf die er sich einschränken ließe. Ein auf einen einzelnen Kunden gebundenes Token darf den Rest der Organisation nicht erreichen.
Organisation & Abrechnung
Pfadbasierte Organisations-Endpunkte verwenden organizationPublicId-UUIDs.
Geplante Kontingent-Änderung abbrechen
Bricht eine Kontingent-Reduzierung ab, die zum Ende des laufenden Abrechnungszeitraums geplant war, die Organisation behält ihren aktuellen Tarif. Antwortet mit cancelled:false statt 404, wenn nichts geplant ist.