M3ter · Capability
m3ter API — ResourceGroup
m3ter API — ResourceGroup. 9 operations. Lead operation: List ResourceGroups. Self-contained Naftiko capability covering one M3ter business surface.
What You Can Do
GET
Listresourcegroups
— List ResourceGroups
/v1/organizations/{orgid}/resourcegroups/{type}
POST
Postresourcegroup
— Create ResourceGroup
/v1/organizations/{orgid}/resourcegroups/{type}
GET
Getresourcegroup
— Retrieve ResourceGroup
/v1/organizations/{orgid}/resourcegroups/{type}/{id}
PUT
Putresourcegroup
— Update ResourceGroup
/v1/organizations/{orgid}/resourcegroups/{type}/{id}
DELETE
Deleteresourcegroup
— Delete ResourceGroup
/v1/organizations/{orgid}/resourcegroups/{type}/{id}
POST
Addresourcetogroup
— Add item
/v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/addresource
POST
Listresourcegroupsforid
— List ResourceGroup items
/v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/contents
GET
Getresourcegrouppermissions
— List ResourceGroup permission policies
/v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/permissions
POST
Removeresourcefromgroup
— Remove item
/v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/removeresource
MCP Tools
list-resourcegroups
List ResourceGroups
read-only
idempotent
create-resourcegroup
Create ResourceGroup
retrieve-resourcegroup
Retrieve ResourceGroup
read-only
idempotent
update-resourcegroup
Update ResourceGroup
idempotent
delete-resourcegroup
Delete ResourceGroup
idempotent
add-item
Add item
list-resourcegroup-items
List ResourceGroup items
read-only
list-resourcegroup-permission-policies
List ResourceGroup permission policies
read-only
idempotent
remove-item
Remove item
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: m3ter API — ResourceGroup
description: 'm3ter API — ResourceGroup. 9 operations. Lead operation: List ResourceGroups. Self-contained Naftiko capability
covering one M3ter business surface.'
tags:
- M3ter
- ResourceGroup
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
M3TER_API_KEY: M3TER_API_KEY
capability:
consumes:
- type: http
namespace: m3ter-resourcegroup
baseUri: https://api.m3ter.com
description: m3ter API — ResourceGroup business capability. Self-contained, no shared references.
resources:
- name: organizations-orgId-resourcegroups-type
path: /organizations/{orgId}/resourcegroups/{type}
operations:
- name: listresourcegroups
method: GET
description: List ResourceGroups
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: pageSize
in: query
type: integer
description: Number of ResourceGroups to retrieve per page
- name: nextToken
in: query
type: string
description: nextToken for multi page retrievals
- name: postresourcegroup
method: POST
description: Create ResourceGroup
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: organizations-orgId-resourcegroups-type-id
path: /organizations/{orgId}/resourcegroups/{type}/{id}
operations:
- name: getresourcegroup
method: GET
description: Retrieve ResourceGroup
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: id
in: path
type: string
description: The UUID of the ResourceGroup to retrieve.
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: putresourcegroup
method: PUT
description: Update ResourceGroup
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: id
in: path
type: string
description: The UUID of the ResourceGroup to update.
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteresourcegroup
method: DELETE
description: Delete ResourceGroup
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The UUID of the ResourceGroup to delete.
required: true
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: organizations-orgId-resourcegroups-type-resourceGroupId-addresource
path: /organizations/{orgId}/resourcegroups/{type}/{resourceGroupId}/addresource
operations:
- name: addresourcetogroup
method: POST
description: Add item
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: resourceGroupId
in: path
type: string
description: The UUID of the ResourceGroup to add the item to.
required: true
- name: type
in: path
type: string
description: The type of resource the Resource Group is for, such as a Meter Resource Group.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: organizations-orgId-resourcegroups-type-resourceGroupId-contents
path: /organizations/{orgId}/resourcegroups/{type}/{resourceGroupId}/contents
operations:
- name: listresourcegroupsforid
method: POST
description: List ResourceGroup items
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: resourceGroupId
in: path
type: string
description: UUID of the ResourceGroup
required: true
- name: pageSize
in: query
type: integer
description: Number of ResourceGroupItems to retrieve per page
- name: nextToken
in: query
type: string
description: nextToken for multi page retrievals
- name: organizations-orgId-resourcegroups-type-resourceGroupId-permissions
path: /organizations/{orgId}/resourcegroups/{type}/{resourceGroupId}/permissions
operations:
- name: getresourcegrouppermissions
method: GET
description: List ResourceGroup permission policies
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: resourceGroupId
in: path
type: string
description: UUID of the ResourceGroup
required: true
- name: pageSize
in: query
type: integer
description: Number of PermissionPolicy entities to retrieve per page
- name: nextToken
in: query
type: string
description: nextToken for multi page retrievals
- name: organizations-orgId-resourcegroups-type-resourceGroupId-removeresource
path: /organizations/{orgId}/resourcegroups/{type}/{resourceGroupId}/removeresource
operations:
- name: removeresourcefromgroup
method: POST
description: Remove item
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: orgId
in: path
type: string
description: UUID of the organization
required: true
- name: resourceGroupId
in: path
type: string
description: The UUID of the ResourceGroup to remove the item from.
required: true
- name: type
in: path
type: string
description: The type of resource
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
authentication:
type: bearer
token: '{{env.M3TER_API_KEY}}'
exposes:
- type: rest
namespace: m3ter-resourcegroup-rest
port: 8080
description: REST adapter for m3ter API — ResourceGroup. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/organizations/{orgid}/resourcegroups/{type}
name: organizations-orgid-resourcegroups-type
description: REST surface for organizations-orgId-resourcegroups-type.
operations:
- method: GET
name: listresourcegroups
description: List ResourceGroups
call: m3ter-resourcegroup.listresourcegroups
with:
orgId: rest.orgId
type: rest.type
pageSize: rest.pageSize
nextToken: rest.nextToken
outputParameters:
- type: object
mapping: $.
- method: POST
name: postresourcegroup
description: Create ResourceGroup
call: m3ter-resourcegroup.postresourcegroup
with:
orgId: rest.orgId
type: rest.type
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/organizations/{orgid}/resourcegroups/{type}/{id}
name: organizations-orgid-resourcegroups-type-id
description: REST surface for organizations-orgId-resourcegroups-type-id.
operations:
- method: GET
name: getresourcegroup
description: Retrieve ResourceGroup
call: m3ter-resourcegroup.getresourcegroup
with:
orgId: rest.orgId
id: rest.id
type: rest.type
outputParameters:
- type: object
mapping: $.
- method: PUT
name: putresourcegroup
description: Update ResourceGroup
call: m3ter-resourcegroup.putresourcegroup
with:
orgId: rest.orgId
id: rest.id
type: rest.type
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteresourcegroup
description: Delete ResourceGroup
call: m3ter-resourcegroup.deleteresourcegroup
with:
id: rest.id
orgId: rest.orgId
type: rest.type
outputParameters:
- type: object
mapping: $.
- path: /v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/addresource
name: organizations-orgid-resourcegroups-type-resourcegroupid-addresource
description: REST surface for organizations-orgId-resourcegroups-type-resourceGroupId-addresource.
operations:
- method: POST
name: addresourcetogroup
description: Add item
call: m3ter-resourcegroup.addresourcetogroup
with:
orgId: rest.orgId
resourceGroupId: rest.resourceGroupId
type: rest.type
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/contents
name: organizations-orgid-resourcegroups-type-resourcegroupid-contents
description: REST surface for organizations-orgId-resourcegroups-type-resourceGroupId-contents.
operations:
- method: POST
name: listresourcegroupsforid
description: List ResourceGroup items
call: m3ter-resourcegroup.listresourcegroupsforid
with:
orgId: rest.orgId
type: rest.type
resourceGroupId: rest.resourceGroupId
pageSize: rest.pageSize
nextToken: rest.nextToken
outputParameters:
- type: object
mapping: $.
- path: /v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/permissions
name: organizations-orgid-resourcegroups-type-resourcegroupid-permissions
description: REST surface for organizations-orgId-resourcegroups-type-resourceGroupId-permissions.
operations:
- method: GET
name: getresourcegrouppermissions
description: List ResourceGroup permission policies
call: m3ter-resourcegroup.getresourcegrouppermissions
with:
orgId: rest.orgId
type: rest.type
resourceGroupId: rest.resourceGroupId
pageSize: rest.pageSize
nextToken: rest.nextToken
outputParameters:
- type: object
mapping: $.
- path: /v1/organizations/{orgid}/resourcegroups/{type}/{resourcegroupid}/removeresource
name: organizations-orgid-resourcegroups-type-resourcegroupid-removeresource
description: REST surface for organizations-orgId-resourcegroups-type-resourceGroupId-removeresource.
operations:
- method: POST
name: removeresourcefromgroup
description: Remove item
call: m3ter-resourcegroup.removeresourcefromgroup
with:
orgId: rest.orgId
resourceGroupId: rest.resourceGroupId
type: rest.type
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: m3ter-resourcegroup-mcp
port: 9090
transport: http
description: MCP adapter for m3ter API — ResourceGroup. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-resourcegroups
description: List ResourceGroups
hints:
readOnly: true
destructive: false
idempotent: true
call: m3ter-resourcegroup.listresourcegroups
with:
orgId: tools.orgId
type: tools.type
pageSize: tools.pageSize
nextToken: tools.nextToken
outputParameters:
- type: object
mapping: $.
- name: create-resourcegroup
description: Create ResourceGroup
hints:
readOnly: false
destructive: false
idempotent: false
call: m3ter-resourcegroup.postresourcegroup
with:
orgId: tools.orgId
type: tools.type
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-resourcegroup
description: Retrieve ResourceGroup
hints:
readOnly: true
destructive: false
idempotent: true
call: m3ter-resourcegroup.getresourcegroup
with:
orgId: tools.orgId
id: tools.id
type: tools.type
outputParameters:
- type: object
mapping: $.
- name: update-resourcegroup
description: Update ResourceGroup
hints:
readOnly: false
destructive: false
idempotent: true
call: m3ter-resourcegroup.putresourcegroup
with:
orgId: tools.orgId
id: tools.id
type: tools.type
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-resourcegroup
description: Delete ResourceGroup
hints:
readOnly: false
destructive: true
idempotent: true
call: m3ter-resourcegroup.deleteresourcegroup
with:
id: tools.id
orgId: tools.orgId
type: tools.type
outputParameters:
- type: object
mapping: $.
- name: add-item
description: Add item
hints:
readOnly: false
destructive: false
idempotent: false
call: m3ter-resourcegroup.addresourcetogroup
with:
orgId: tools.orgId
resourceGroupId: tools.resourceGroupId
type: tools.type
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-resourcegroup-items
description: List ResourceGroup items
hints:
readOnly: true
destructive: false
idempotent: false
call: m3ter-resourcegroup.listresourcegroupsforid
with:
orgId: tools.orgId
type: tools.type
resourceGroupId: tools.resourceGroupId
pageSize: tools.pageSize
nextToken: tools.nextToken
outputParameters:
- type: object
mapping: $.
- name: list-resourcegroup-permission-policies
description: List ResourceGroup permission policies
hints:
readOnly: true
destructive: false
idempotent: true
call: m3ter-resourcegroup.getresourcegrouppermissions
with:
orgId: tools.orgId
type: tools.type
resourceGroupId: tools.resourceGroupId
pageSize: tools.pageSize
nextToken: tools.nextToken
outputParameters:
- type: object
mapping: $.
- name: remove-item
description: Remove item
hints:
readOnly: false
destructive: false
idempotent: false
call: m3ter-resourcegroup.removeresourcefromgroup
with:
orgId: tools.orgId
resourceGroupId: tools.resourceGroupId
type: tools.type
body: tools.body
outputParameters:
- type: object
mapping: $.