Objekte mit der Public API ändern
Wie eine Änderung über die Costfluent Public API nur die genannten Felder ändert, ein Feld mit seinem Clear-Flag leert und eine Liste vollständig ersetzt.
Jede Änderung in der Public API, ein PUT oder ein PATCH, ändert das Objekt an Ort und Stelle: Es behält seine ID und alles, was daran hängt. Ein Feld, das du weglässt, behält seinen Wert, sodass ein Client nur sendet, was sich geändert hat.
Ein Feld ändern, behalten oder leeren
| Du sendest | Das Feld |
|---|---|
| Einen Wert | übernimmt den Wert |
Nichts oder null | behält seinen Wert |
Sein Clear-Flag, etwa "clearDescription": true | wird geleert |
| Einen Wert und sein Clear-Flag zusammen | bleibt unverändert: Die Anfrage wird mit 400 abgelehnt, und nichts ändert sich |
Ein Feld ohne Clear-Flag lässt sich durch eine Änderung nicht leeren.
Eine Liste, etwa appIds eines Budgets oder Kostenalarms, wird vollständig ersetzt: Sende jeden Eintrag, den sie enthalten soll. Eine leere Liste entfernt alle.
So kehrt ein Budget von einem gespeicherten Kostenbericht zum ganzen Workspace zurück:
Code
Clear-Flags
| Objekt | Clear-Flags |
|---|---|
Budget, PUT /v1/budgets/{budgetId} | clearSegment, clearCostReport |
Kostenalarm, PUT /v1/cost-alerts/{alertId} | clearComparisonPeriod, clearMinimumAmount, clearFilter |
Kostenbericht, PUT /v1/cost-reports/{costReportId} | clearFolder, clearFilter, clearStartDate, clearEndDate |
Ordner, PUT /v1/folders/{folderId} | clearParent |
Integration, PUT /v1/providers/{providerId} | clearDescription, clearSettings |
Virtueller Tag, PATCH /v1/virtual-tags/{virtualTagId} | clearDescription, clearDefaultValue |
Wie es sich verhält
- Eine Änderung antwortet mit
200und dem gespeicherten Objekt, wie es auch das Lesen zurückgäbe, und ein Löschen antwortet mit204ohne Inhalt. Ein Teammitglied oder den Workspace-Zugriff eines Teams festzulegen antwortet mit204, weil es zwei Objekte verbindet, statt selbst eines zu sein. - Benennst du eine Integration mit
nameum, behält sie ihre ID, ihre Zugangsdaten und die Kosten, die sie bereits erfasst hat. - Ein Budget misst ein Segment, einen gespeicherten Kostenbericht oder den ganzen Workspace. Mit
segmentIdodercostReportIdwechselt es dorthin, und sein Clear-Flag bringt es zum ganzen Workspace zurück. - Ein Segment hat immer einen Verantwortlichen. Nennst du
teamId, ersetzt das sein Team-Label, und nennst duteamLabel, ersetzt das sein Team. - Ein Kostenbericht mit benutzerdefiniertem Zeitraum braucht beide Daten. Das Leeren eines davon wird daher abgelehnt, bis der Bericht einen anderen Zeitraum nutzt.
- Die
settingseiner Integration werden vollständig ersetzt, sobald du mindestens eine sendest; eine leere Map behält sie. - Die
saved-filter-Operationen eines Dashboards und eines Ordners sind die eine Ausnahme: Dort löstsavedFilterId: nullden gespeicherten Filter. - Die Änderung einer Zuordnungsregel nennt jedes Mal ihren
name,filterund ihresegmentId, und ein Team, ein Teammitglied und der Workspace-Zugriff eines Teams werden vollständig geändert. - Die Tag-Richtlinie eines Workspace,
PUT /v1/workspaces/{workspaceId}/tag-policy, wird vollständig ersetzt:rulesist Pflicht, und eine leere Liste löscht die Richtlinie.
Antwortet das Lesen eines Objekts mit einem ETag, sende ihn als If-Match zurück: Dann wird die Änderung abgelehnt, wenn jemand das Objekt seit deinem Lesen geändert hat. Siehe Datenformate.