naftiko: 1.0.0-alpha2 info: label: Grafana — Versions description: 'Grafana — Versions. 5 operations. Lead operation: Grafana Get Dashboard Versions By ID. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Versions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-versions baseUri: http://{defaultHost} description: Grafana — Versions business capability. Self-contained, no shared references. resources: - name: dashboards-id-DashboardID-versions path: /dashboards/id/{DashboardID}/versions operations: - name: getdashboardversionsbyid method: GET description: Grafana Get Dashboard Versions By ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: DashboardID in: path type: integer required: true - name: dashboards-id-DashboardID-versions-DashboardVersionID path: /dashboards/id/{DashboardID}/versions/{DashboardVersionID} operations: - name: getdashboardversionbyid method: GET description: Grafana Get Dashboard Version By ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: DashboardID in: path type: integer required: true - name: DashboardVersionID in: path type: integer required: true - name: dashboards-uid-uid-restore path: /dashboards/uid/{uid}/restore operations: - name: restoredashboardversionbyuid method: POST description: Grafana Restore Dashboard Version By UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: dashboards-uid-uid-versions path: /dashboards/uid/{uid}/versions operations: - name: getdashboardversionsbyuid method: GET description: Grafana Get Dashboard Versions By UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string required: true - name: limit in: query type: integer description: Maximum number of results to return - name: start in: query type: integer description: Version to start from when returning queries - name: dashboards-uid-uid-versions-DashboardVersionID path: /dashboards/uid/{uid}/versions/{DashboardVersionID} operations: - name: getdashboardversionbyuid method: GET description: Grafana Get Dashboard Version By UID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: DashboardVersionID in: path type: integer required: true - name: uid in: path type: string required: true authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-versions-rest port: 8080 description: REST adapter for Grafana — Versions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/dashboards/id/{dashboardid}/versions name: dashboards-id-dashboardid-versions description: REST surface for dashboards-id-DashboardID-versions. operations: - method: GET name: getdashboardversionsbyid description: Grafana Get Dashboard Versions By ID call: grafana-versions.getdashboardversionsbyid with: DashboardID: rest.DashboardID outputParameters: - type: object mapping: $. - path: /v1/dashboards/id/{dashboardid}/versions/{dashboardversionid} name: dashboards-id-dashboardid-versions-dashboardversionid description: REST surface for dashboards-id-DashboardID-versions-DashboardVersionID. operations: - method: GET name: getdashboardversionbyid description: Grafana Get Dashboard Version By ID call: grafana-versions.getdashboardversionbyid with: DashboardID: rest.DashboardID DashboardVersionID: rest.DashboardVersionID outputParameters: - type: object mapping: $. - path: /v1/dashboards/uid/{uid}/restore name: dashboards-uid-uid-restore description: REST surface for dashboards-uid-uid-restore. operations: - method: POST name: restoredashboardversionbyuid description: Grafana Restore Dashboard Version By UID call: grafana-versions.restoredashboardversionbyuid with: uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/dashboards/uid/{uid}/versions name: dashboards-uid-uid-versions description: REST surface for dashboards-uid-uid-versions. operations: - method: GET name: getdashboardversionsbyuid description: Grafana Get Dashboard Versions By UID call: grafana-versions.getdashboardversionsbyuid with: uid: rest.uid limit: rest.limit start: rest.start outputParameters: - type: object mapping: $. - path: /v1/dashboards/uid/{uid}/versions/{dashboardversionid} name: dashboards-uid-uid-versions-dashboardversionid description: REST surface for dashboards-uid-uid-versions-DashboardVersionID. operations: - method: GET name: getdashboardversionbyuid description: Grafana Get Dashboard Version By UID call: grafana-versions.getdashboardversionbyuid with: DashboardVersionID: rest.DashboardVersionID uid: rest.uid outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-versions-mcp port: 9090 transport: http description: MCP adapter for Grafana — Versions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-get-dashboard-versions-id description: Grafana Get Dashboard Versions By ID hints: readOnly: true destructive: false idempotent: true call: grafana-versions.getdashboardversionsbyid with: DashboardID: tools.DashboardID outputParameters: - type: object mapping: $. - name: grafana-get-dashboard-version-id description: Grafana Get Dashboard Version By ID hints: readOnly: true destructive: false idempotent: true call: grafana-versions.getdashboardversionbyid with: DashboardID: tools.DashboardID DashboardVersionID: tools.DashboardVersionID outputParameters: - type: object mapping: $. - name: grafana-restore-dashboard-version-uid description: Grafana Restore Dashboard Version By UID hints: readOnly: false destructive: false idempotent: false call: grafana-versions.restoredashboardversionbyuid with: uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-get-dashboard-versions-uid description: Grafana Get Dashboard Versions By UID hints: readOnly: true destructive: false idempotent: true call: grafana-versions.getdashboardversionsbyuid with: uid: tools.uid limit: tools.limit start: tools.start outputParameters: - type: object mapping: $. - name: grafana-get-dashboard-version-uid description: Grafana Get Dashboard Version By UID hints: readOnly: true destructive: false idempotent: true call: grafana-versions.getdashboardversionbyuid with: DashboardVersionID: tools.DashboardVersionID uid: tools.uid outputParameters: - type: object mapping: $.