naftiko: 1.0.0-alpha2 info: label: Grafana — Resource description: 'Grafana — Resource. 9 operations. Lead operation: Grafana Get Resource Description. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Resource created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-resource baseUri: http://{defaultHost} description: Grafana — Resource business capability. Self-contained, no shared references. resources: - name: access-control-resource-description path: /access-control/{resource}/description operations: - name: getresourcedescription method: GET description: Grafana Get Resource Description outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: access-control-resource-resourceID path: /access-control/{resource}/{resourceID} operations: - name: getresourcepermissions method: GET description: Grafana Get Resource Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: resourceID in: path type: string required: true - name: setresourcepermissions method: POST description: Grafana Set Resource Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: resourceID in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: access-control-resource-resourceID-builtInRoles-builtInRole path: /access-control/{resource}/{resourceID}/builtInRoles/{builtInRole} operations: - name: setresourcepermissionsforbuiltinrole method: POST description: Grafana Set Resource Permissions For Built In Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: resourceID in: path type: string required: true - name: builtInRole in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: access-control-resource-resourceID-teams-teamID path: /access-control/{resource}/{resourceID}/teams/{teamID} operations: - name: setresourcepermissionsforteam method: POST description: Grafana Set Resource Permissions For Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: resourceID in: path type: string required: true - name: teamID in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: access-control-resource-resourceID-users-userID path: /access-control/{resource}/{resourceID}/users/{userID} operations: - name: setresourcepermissionsforuser method: POST description: Grafana Set Resource Permissions For User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource in: path type: string required: true - name: resourceID in: path type: string required: true - name: userID in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: cloudmigration-resources-dependencies path: /cloudmigration/resources/dependencies operations: - name: getresourcedependencies method: GET description: Grafana Get Resource Dependencies outputRawFormat: json outputParameters: - name: result type: object value: $. - name: datasources-uid-uid-resources-datasource_proxy_route path: /datasources/uid/{uid}/resources/{datasource_proxy_route} operations: - name: calldatasourceresourcewithuid method: GET description: Grafana Call Datasource Resource With UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: datasource_proxy_route in: path type: string required: true - name: uid in: path type: string required: true - name: datasources-id-resources-datasource_proxy_route path: /datasources/{id}/resources/{datasource_proxy_route} operations: - name: calldatasourceresourcebyid method: GET description: Grafana Call Datasource Resource By ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: datasource_proxy_route in: path type: string required: true - name: id in: path type: string required: true authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-resource-rest port: 8080 description: REST adapter for Grafana — Resource. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/access-control/{resource}/description name: access-control-resource-description description: REST surface for access-control-resource-description. operations: - method: GET name: getresourcedescription description: Grafana Get Resource Description call: grafana-resource.getresourcedescription with: resource: rest.resource outputParameters: - type: object mapping: $. - path: /v1/access-control/{resource}/{resourceid} name: access-control-resource-resourceid description: REST surface for access-control-resource-resourceID. operations: - method: GET name: getresourcepermissions description: Grafana Get Resource Permissions call: grafana-resource.getresourcepermissions with: resource: rest.resource resourceID: rest.resourceID outputParameters: - type: object mapping: $. - method: POST name: setresourcepermissions description: Grafana Set Resource Permissions call: grafana-resource.setresourcepermissions with: resource: rest.resource resourceID: rest.resourceID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/access-control/{resource}/{resourceid}/builtinroles/{builtinrole} name: access-control-resource-resourceid-builtinroles-builtinrole description: REST surface for access-control-resource-resourceID-builtInRoles-builtInRole. operations: - method: POST name: setresourcepermissionsforbuiltinrole description: Grafana Set Resource Permissions For Built In Role call: grafana-resource.setresourcepermissionsforbuiltinrole with: resource: rest.resource resourceID: rest.resourceID builtInRole: rest.builtInRole body: rest.body outputParameters: - type: object mapping: $. - path: /v1/access-control/{resource}/{resourceid}/teams/{teamid} name: access-control-resource-resourceid-teams-teamid description: REST surface for access-control-resource-resourceID-teams-teamID. operations: - method: POST name: setresourcepermissionsforteam description: Grafana Set Resource Permissions For Team call: grafana-resource.setresourcepermissionsforteam with: resource: rest.resource resourceID: rest.resourceID teamID: rest.teamID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/access-control/{resource}/{resourceid}/users/{userid} name: access-control-resource-resourceid-users-userid description: REST surface for access-control-resource-resourceID-users-userID. operations: - method: POST name: setresourcepermissionsforuser description: Grafana Set Resource Permissions For User call: grafana-resource.setresourcepermissionsforuser with: resource: rest.resource resourceID: rest.resourceID userID: rest.userID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cloudmigration/resources/dependencies name: cloudmigration-resources-dependencies description: REST surface for cloudmigration-resources-dependencies. operations: - method: GET name: getresourcedependencies description: Grafana Get Resource Dependencies call: grafana-resource.getresourcedependencies outputParameters: - type: object mapping: $. - path: /v1/datasources/uid/{uid}/resources/{datasource-proxy-route} name: datasources-uid-uid-resources-datasource-proxy-route description: REST surface for datasources-uid-uid-resources-datasource_proxy_route. operations: - method: GET name: calldatasourceresourcewithuid description: Grafana Call Datasource Resource With UID call: grafana-resource.calldatasourceresourcewithuid with: datasource_proxy_route: rest.datasource_proxy_route uid: rest.uid outputParameters: - type: object mapping: $. - path: /v1/datasources/{id}/resources/{datasource-proxy-route} name: datasources-id-resources-datasource-proxy-route description: REST surface for datasources-id-resources-datasource_proxy_route. operations: - method: GET name: calldatasourceresourcebyid description: Grafana Call Datasource Resource By ID call: grafana-resource.calldatasourceresourcebyid with: datasource_proxy_route: rest.datasource_proxy_route id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-resource-mcp port: 9090 transport: http description: MCP adapter for Grafana — Resource. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-get-resource-description description: Grafana Get Resource Description hints: readOnly: true destructive: false idempotent: true call: grafana-resource.getresourcedescription with: resource: tools.resource outputParameters: - type: object mapping: $. - name: grafana-get-resource-permissions description: Grafana Get Resource Permissions hints: readOnly: true destructive: false idempotent: true call: grafana-resource.getresourcepermissions with: resource: tools.resource resourceID: tools.resourceID outputParameters: - type: object mapping: $. - name: grafana-set-resource-permissions description: Grafana Set Resource Permissions hints: readOnly: false destructive: false idempotent: false call: grafana-resource.setresourcepermissions with: resource: tools.resource resourceID: tools.resourceID body: tools.body outputParameters: - type: object mapping: $. - name: grafana-set-resource-permissions-built description: Grafana Set Resource Permissions For Built In Role hints: readOnly: false destructive: false idempotent: false call: grafana-resource.setresourcepermissionsforbuiltinrole with: resource: tools.resource resourceID: tools.resourceID builtInRole: tools.builtInRole body: tools.body outputParameters: - type: object mapping: $. - name: grafana-set-resource-permissions-team description: Grafana Set Resource Permissions For Team hints: readOnly: false destructive: false idempotent: false call: grafana-resource.setresourcepermissionsforteam with: resource: tools.resource resourceID: tools.resourceID teamID: tools.teamID body: tools.body outputParameters: - type: object mapping: $. - name: grafana-set-resource-permissions-user description: Grafana Set Resource Permissions For User hints: readOnly: false destructive: false idempotent: false call: grafana-resource.setresourcepermissionsforuser with: resource: tools.resource resourceID: tools.resourceID userID: tools.userID body: tools.body outputParameters: - type: object mapping: $. - name: grafana-get-resource-dependencies description: Grafana Get Resource Dependencies hints: readOnly: true destructive: false idempotent: true call: grafana-resource.getresourcedependencies outputParameters: - type: object mapping: $. - name: grafana-call-datasource-resource-uid description: Grafana Call Datasource Resource With UID hints: readOnly: true destructive: false idempotent: true call: grafana-resource.calldatasourceresourcewithuid with: datasource_proxy_route: tools.datasource_proxy_route uid: tools.uid outputParameters: - type: object mapping: $. - name: grafana-call-datasource-resource-id description: Grafana Call Datasource Resource By ID hints: readOnly: true destructive: false idempotent: true call: grafana-resource.calldatasourceresourcebyid with: datasource_proxy_route: tools.datasource_proxy_route id: tools.id outputParameters: - type: object mapping: $.