FinOps Resource Groups
Group cloud resources for cost rollup and chargeback, including group lifecycle management and per-group resource membership.
All endpoints require authentication via X-API-Key header and the appropriate scope.
Resource Group Object
{
"_id": "rg_abc123",
"name": "Production Workloads",
"description": "All production-tier compute and storage",
"status": "active",
"ownerId": "user_456",
"organizationId": "org_xyz",
"resources": [
{ "type": "workflow", "resourceId": "wf_001", "name": "ingest-pipeline" }
],
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-02-01T14:22:00Z"
}
GET /api/v1/finops/resource-groups
List resource groups with pagination, search, and status filters.
Scope: finops:read
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | No | Search term for name or description |
status | string | No | Filter by group status |
limit | integer | No | Number of results to return |
offset | integer | No | Number of results to skip |
sort | string | No | Sort field and direction |
Response 200 OK
{
"count": 1,
"limit": 20,
"offset": 0,
"items": [
{
"_id": "rg_abc123",
"name": "Production Workloads",
"status": "active"
}
]
}
POST /api/v1/finops/resource-groups
Create a new resource group.
Scope: finops:write
Request Body
{
"name": "Production Workloads",
"description": "All production-tier compute and storage"
}
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Resource group name |
description | string | No | Resource group description |
Response 201 Created
{
"resourceGroupId": "rg_abc123"
}
GET /api/v1/finops/resource-groups/:id
Get a single resource group by ID.
Scope: finops:read
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Resource group ID |
Response 200 OK
Returns the full Resource Group object.
PUT /api/v1/finops/resource-groups/:id
Update an existing resource group by ID.
Scope: finops:write
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Resource group ID |
Request Body
{
"name": "Production Workloads (revised)",
"description": "Updated description"
}
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Resource group name |
description | string | No | Resource group description |
Response 200 OK
Returns the updated Resource Group object.
DELETE /api/v1/finops/resource-groups/:id
Delete a resource group by ID.
Scope: finops:write
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Resource group ID |
Response 204 No Content
POST /api/v1/finops/resource-groups/:id/resources
Add a resource to a resource group.
Scope: finops:write
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Resource group ID |
Request Body
{
"type": "workflow",
"resourceId": "wf_001",
"name": "ingest-pipeline"
}
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type |
resourceId | string | Yes | ID of the resource to add |
name | string | Yes | Resource name |
Response 200 OK
Returns the updated Resource Group object.
DELETE /api/v1/finops/resource-groups/:id/resources/:subId
Remove a resource from a resource group.
Scope: finops:write
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Resource group ID |
subId | string | Yes | Resource ID to remove |
Response 200 OK
Returns the updated Resource Group object.