The public API for Business Mapping: create and maintain the viewpoints and mapping rules that allocate cloud cost to business units, and control the order in which mappings claim cost.
| Term | What it is |
|---|
| Viewpoint | One way of slicing cost, such as "By Team" or "By Product". Holds an ordered list of mappings |
| Mapping | A named bucket such as "Platform Team", defined by rules. Cost matching the rules is allocated to it |
| Rule | A set of filters that are ANDed together. A mapping's rules are ORed: cost matching any one rule belongs to the mapping |
| Rank | A mapping's position in its viewpoint. Mappings claim cost in rank order; cost already claimed by a lower-numbered rank is not claimed again |
| Global mapping | A mapping defined once and attached to several viewpoints. Editing it changes it everywhere it is attached |
| Mapping group | A visual folder for organizing mappings inside a viewpoint. Affects display only, not allocation |
| Method | Path | What it does | Success |
|---|
GET | /viewpoints | List the viewpoints | 200 |
GET | /viewpoints/:viewpointId | One viewpoint | 200 |
POST | /viewpoints | Create one. Body { "name": "By Team" } | 201 |
PUT | /viewpoints/:viewpointId | Update one (e.g. rename) | 201 |
POST | /viewpoints/:viewpointId/clone | Copy a viewpoint with all its mappings | 201 |
DELETE | /viewpoints/:viewpointId | Delete a viewpoint | 200 |
| Method | Path | What it does | Success |
|---|
GET | /viewpoints/:viewpointId/mappings | The viewpoint's mappings, ordered by rank | 200 |
POST | /viewpoints/:viewpointId/mappings | Create a mapping in the viewpoint | 201 |
PUT | /viewpoints/:viewpointId/mappings/:mappingId | Replace a mapping's definition | 201 |
DELETE | /viewpoints/:viewpointId/mappings/:mappingId | Remove a mapping from the viewpoint (see §6) | 200 |
PUT | /viewpoints/:viewpointId/mappings/rank | Reorder all mappings of the viewpoint | 200 |
| Method | Path | What it does | Success |
|---|
GET | /global-mappings | List global mappings, each with the viewpoints it is attached to | 200 |
POST | /global-mappings | Create a global mapping | 201 |
PUT | /global-mappings/:mappingId | Replace a global mapping's definition (every viewpoint sees the change) | 201 |
DELETE | /global-mappings/:mappingId | Delete it, and detach it from every viewpoint | 200 |
PUT | /viewpoints/:viewpointId/global-mappings/:mappingId | Attach an existing global mapping to a viewpoint | 200 |
| Method | Path | What it does | Success |
|---|
POST | /viewpoints/:viewpointId/mapping-groups | Create a group. Body { "name": "Engineering", "color": "#4C9AFF" } (color optional) | 201 |
PUT | /viewpoints/:viewpointId/mapping-groups/:groupId | Update a group's name and/or color | 200 |
DELETE | /viewpoints/:viewpointId/mapping-groups/:groupId | Delete a group | 200 |
PUT | /viewpoints/:viewpointId/mappings/:mappingId/group | Put a mapping in a group: { "mappingGroupId": "<groupId>" }. null or "" takes it out | 200 |