naftiko: 1.0.0-alpha2 info: label: Grafana — Post description: 'Grafana — Post. 17 operations. Lead operation: Grafana Post Sync User With LDAP. Self-contained Naftiko capability covering one Grafana business surface.' tags: - Grafana - Post created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GRAFANA_API_KEY: GRAFANA_API_KEY capability: consumes: - type: http namespace: grafana-post baseUri: http://{defaultHost} description: Grafana — Post business capability. Self-contained, no shared references. resources: - name: admin-ldap-sync-user_id path: /admin/ldap/sync/{user_id} operations: - name: postsyncuserwithldap method: POST description: Grafana Post Sync User With LDAP outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: integer required: true - name: annotations path: /annotations operations: - name: postannotation method: POST description: Grafana Post Annotation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: annotations-graphite path: /annotations/graphite operations: - name: postgraphiteannotation method: POST description: Grafana Post Graphite Annotation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: convert-api-prom-rules path: /convert/api/prom/rules operations: - name: routeconvertprometheuscortexpostrulegroups method: POST description: Grafana Route Convert Prometheus Cortex Post Rule Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Content-Type in: header type: string required: true - name: convert-api-prom-rules-NamespaceTitle path: /convert/api/prom/rules/{NamespaceTitle} operations: - name: routeconvertprometheuscortexpostrulegroup method: POST description: Grafana Route Convert Prometheus Cortex Post Rule Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: NamespaceTitle in: path type: string required: true - name: x-grafana-alerting-datasource-uid in: header type: string - name: x-grafana-alerting-recording-rules-paused in: header type: boolean - name: x-grafana-alerting-alert-rules-paused in: header type: boolean - name: x-grafana-alerting-target-datasource-uid in: header type: string - name: x-grafana-alerting-folder-uid in: header type: string - name: x-grafana-alerting-notification-settings in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: convert-prometheus-config-v1-rules path: /convert/prometheus/config/v1/rules operations: - name: routeconvertprometheuspostrulegroups method: POST description: Grafana Route Convert Prometheus Post Rule Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Content-Type in: header type: string required: true - name: convert-prometheus-config-v1-rules-NamespaceTitle path: /convert/prometheus/config/v1/rules/{NamespaceTitle} operations: - name: routeconvertprometheuspostrulegroup method: POST description: Grafana Route Convert Prometheus Post Rule Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: NamespaceTitle in: path type: string required: true - name: x-grafana-alerting-datasource-uid in: header type: string - name: x-grafana-alerting-recording-rules-paused in: header type: boolean - name: x-grafana-alerting-alert-rules-paused in: header type: boolean - name: x-grafana-alerting-target-datasource-uid in: header type: string - name: x-grafana-alerting-folder-uid in: header type: string - name: x-grafana-alerting-notification-settings in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: dashboards-db path: /dashboards/db operations: - name: postdashboard method: POST description: Grafana Post Dashboard outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: datasources-proxy-uid-uid-datasource_proxy_route path: /datasources/proxy/uid/{uid}/{datasource_proxy_route} operations: - name: datasourceproxypostbyuidcalls method: POST description: Grafana Datasource Proxy POST By UID Calls 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: body in: body type: object description: Request body (JSON). required: true - name: datasources-proxy-id-datasource_proxy_route path: /datasources/proxy/{id}/{datasource_proxy_route} operations: - name: datasourceproxypostcalls method: POST description: Grafana Datasource Proxy POST Calls 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 - name: body in: body type: object description: Request body (JSON). required: true - name: licensing-token path: /licensing/token operations: - name: postlicensetoken method: POST description: Grafana Post License Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: licensing-token-renew path: /licensing/token/renew operations: - name: postrenewlicensetoken method: POST description: Grafana Post Renew License Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: saml-acs path: /saml/acs operations: - name: postacs method: POST description: Grafana Post ACS outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: RelayState in: query type: string - name: saml-slo path: /saml/slo operations: - name: postslo method: POST description: Grafana Post SLO outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: SAMLRequest in: query type: string - name: SAMLResponse in: query type: string - name: v1-provisioning-alert-rules path: /v1/provisioning/alert-rules operations: - name: routepostalertrule method: POST description: Grafana Route Post Alert Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Disable-Provenance in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: v1-provisioning-contact-points path: /v1/provisioning/contact-points operations: - name: routepostcontactpoints method: POST description: Grafana Route Post Contactpoints outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Disable-Provenance in: header type: string - name: body in: body type: object description: Request body (JSON). required: false - name: v1-provisioning-mute-timings path: /v1/provisioning/mute-timings operations: - name: routepostmutetiming method: POST description: Grafana Route Post Mute Timing outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Disable-Provenance in: header type: string - name: body in: body type: object description: Request body (JSON). required: false authentication: type: apikey key: Authorization value: '{{env.GRAFANA_API_KEY}}' placement: header exposes: - type: rest namespace: grafana-post-rest port: 8080 description: REST adapter for Grafana — Post. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin/ldap/sync/{user-id} name: admin-ldap-sync-user-id description: REST surface for admin-ldap-sync-user_id. operations: - method: POST name: postsyncuserwithldap description: Grafana Post Sync User With LDAP call: grafana-post.postsyncuserwithldap with: user_id: rest.user_id outputParameters: - type: object mapping: $. - path: /v1/annotations name: annotations description: REST surface for annotations. operations: - method: POST name: postannotation description: Grafana Post Annotation call: grafana-post.postannotation with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/annotations/graphite name: annotations-graphite description: REST surface for annotations-graphite. operations: - method: POST name: postgraphiteannotation description: Grafana Post Graphite Annotation call: grafana-post.postgraphiteannotation with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convert/api/prom/rules name: convert-api-prom-rules description: REST surface for convert-api-prom-rules. operations: - method: POST name: routeconvertprometheuscortexpostrulegroups description: Grafana Route Convert Prometheus Cortex Post Rule Groups call: grafana-post.routeconvertprometheuscortexpostrulegroups with: Content-Type: rest.Content-Type outputParameters: - type: object mapping: $. - path: /v1/convert/api/prom/rules/{namespacetitle} name: convert-api-prom-rules-namespacetitle description: REST surface for convert-api-prom-rules-NamespaceTitle. operations: - method: POST name: routeconvertprometheuscortexpostrulegroup description: Grafana Route Convert Prometheus Cortex Post Rule Group call: grafana-post.routeconvertprometheuscortexpostrulegroup with: NamespaceTitle: rest.NamespaceTitle x-grafana-alerting-datasource-uid: rest.x-grafana-alerting-datasource-uid x-grafana-alerting-recording-rules-paused: rest.x-grafana-alerting-recording-rules-paused x-grafana-alerting-alert-rules-paused: rest.x-grafana-alerting-alert-rules-paused x-grafana-alerting-target-datasource-uid: rest.x-grafana-alerting-target-datasource-uid x-grafana-alerting-folder-uid: rest.x-grafana-alerting-folder-uid x-grafana-alerting-notification-settings: rest.x-grafana-alerting-notification-settings body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convert/prometheus/config/v1/rules name: convert-prometheus-config-v1-rules description: REST surface for convert-prometheus-config-v1-rules. operations: - method: POST name: routeconvertprometheuspostrulegroups description: Grafana Route Convert Prometheus Post Rule Groups call: grafana-post.routeconvertprometheuspostrulegroups with: Content-Type: rest.Content-Type outputParameters: - type: object mapping: $. - path: /v1/convert/prometheus/config/v1/rules/{namespacetitle} name: convert-prometheus-config-v1-rules-namespacetitle description: REST surface for convert-prometheus-config-v1-rules-NamespaceTitle. operations: - method: POST name: routeconvertprometheuspostrulegroup description: Grafana Route Convert Prometheus Post Rule Group call: grafana-post.routeconvertprometheuspostrulegroup with: NamespaceTitle: rest.NamespaceTitle x-grafana-alerting-datasource-uid: rest.x-grafana-alerting-datasource-uid x-grafana-alerting-recording-rules-paused: rest.x-grafana-alerting-recording-rules-paused x-grafana-alerting-alert-rules-paused: rest.x-grafana-alerting-alert-rules-paused x-grafana-alerting-target-datasource-uid: rest.x-grafana-alerting-target-datasource-uid x-grafana-alerting-folder-uid: rest.x-grafana-alerting-folder-uid x-grafana-alerting-notification-settings: rest.x-grafana-alerting-notification-settings body: rest.body outputParameters: - type: object mapping: $. - path: /v1/dashboards/db name: dashboards-db description: REST surface for dashboards-db. operations: - method: POST name: postdashboard description: Grafana Post Dashboard call: grafana-post.postdashboard with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/datasources/proxy/uid/{uid}/{datasource-proxy-route} name: datasources-proxy-uid-uid-datasource-proxy-route description: REST surface for datasources-proxy-uid-uid-datasource_proxy_route. operations: - method: POST name: datasourceproxypostbyuidcalls description: Grafana Datasource Proxy POST By UID Calls call: grafana-post.datasourceproxypostbyuidcalls with: datasource_proxy_route: rest.datasource_proxy_route uid: rest.uid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/datasources/proxy/{id}/{datasource-proxy-route} name: datasources-proxy-id-datasource-proxy-route description: REST surface for datasources-proxy-id-datasource_proxy_route. operations: - method: POST name: datasourceproxypostcalls description: Grafana Datasource Proxy POST Calls call: grafana-post.datasourceproxypostcalls with: datasource_proxy_route: rest.datasource_proxy_route id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/licensing/token name: licensing-token description: REST surface for licensing-token. operations: - method: POST name: postlicensetoken description: Grafana Post License Token call: grafana-post.postlicensetoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/licensing/token/renew name: licensing-token-renew description: REST surface for licensing-token-renew. operations: - method: POST name: postrenewlicensetoken description: Grafana Post Renew License Token call: grafana-post.postrenewlicensetoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/saml/acs name: saml-acs description: REST surface for saml-acs. operations: - method: POST name: postacs description: Grafana Post ACS call: grafana-post.postacs with: RelayState: rest.RelayState outputParameters: - type: object mapping: $. - path: /v1/saml/slo name: saml-slo description: REST surface for saml-slo. operations: - method: POST name: postslo description: Grafana Post SLO call: grafana-post.postslo with: SAMLRequest: rest.SAMLRequest SAMLResponse: rest.SAMLResponse outputParameters: - type: object mapping: $. - path: /v1/v1/provisioning/alert-rules name: v1-provisioning-alert-rules description: REST surface for v1-provisioning-alert-rules. operations: - method: POST name: routepostalertrule description: Grafana Route Post Alert Rule call: grafana-post.routepostalertrule with: X-Disable-Provenance: rest.X-Disable-Provenance body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/provisioning/contact-points name: v1-provisioning-contact-points description: REST surface for v1-provisioning-contact-points. operations: - method: POST name: routepostcontactpoints description: Grafana Route Post Contactpoints call: grafana-post.routepostcontactpoints with: X-Disable-Provenance: rest.X-Disable-Provenance body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/provisioning/mute-timings name: v1-provisioning-mute-timings description: REST surface for v1-provisioning-mute-timings. operations: - method: POST name: routepostmutetiming description: Grafana Route Post Mute Timing call: grafana-post.routepostmutetiming with: X-Disable-Provenance: rest.X-Disable-Provenance body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: grafana-post-mcp port: 9090 transport: http description: MCP adapter for Grafana — Post. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: grafana-post-sync-user-ldap description: Grafana Post Sync User With LDAP hints: readOnly: false destructive: false idempotent: false call: grafana-post.postsyncuserwithldap with: user_id: tools.user_id outputParameters: - type: object mapping: $. - name: grafana-post-annotation description: Grafana Post Annotation hints: readOnly: false destructive: false idempotent: false call: grafana-post.postannotation with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-post-graphite-annotation description: Grafana Post Graphite Annotation hints: readOnly: false destructive: false idempotent: false call: grafana-post.postgraphiteannotation with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-route-convert-prometheus-cortex description: Grafana Route Convert Prometheus Cortex Post Rule Groups hints: readOnly: false destructive: false idempotent: false call: grafana-post.routeconvertprometheuscortexpostrulegroups with: Content-Type: tools.Content-Type outputParameters: - type: object mapping: $. - name: grafana-route-convert-prometheus-cortex-2 description: Grafana Route Convert Prometheus Cortex Post Rule Group hints: readOnly: false destructive: false idempotent: false call: grafana-post.routeconvertprometheuscortexpostrulegroup with: NamespaceTitle: tools.NamespaceTitle x-grafana-alerting-datasource-uid: tools.x-grafana-alerting-datasource-uid x-grafana-alerting-recording-rules-paused: tools.x-grafana-alerting-recording-rules-paused x-grafana-alerting-alert-rules-paused: tools.x-grafana-alerting-alert-rules-paused x-grafana-alerting-target-datasource-uid: tools.x-grafana-alerting-target-datasource-uid x-grafana-alerting-folder-uid: tools.x-grafana-alerting-folder-uid x-grafana-alerting-notification-settings: tools.x-grafana-alerting-notification-settings body: tools.body outputParameters: - type: object mapping: $. - name: grafana-route-convert-prometheus-post description: Grafana Route Convert Prometheus Post Rule Groups hints: readOnly: false destructive: false idempotent: false call: grafana-post.routeconvertprometheuspostrulegroups with: Content-Type: tools.Content-Type outputParameters: - type: object mapping: $. - name: grafana-route-convert-prometheus-post-2 description: Grafana Route Convert Prometheus Post Rule Group hints: readOnly: false destructive: false idempotent: false call: grafana-post.routeconvertprometheuspostrulegroup with: NamespaceTitle: tools.NamespaceTitle x-grafana-alerting-datasource-uid: tools.x-grafana-alerting-datasource-uid x-grafana-alerting-recording-rules-paused: tools.x-grafana-alerting-recording-rules-paused x-grafana-alerting-alert-rules-paused: tools.x-grafana-alerting-alert-rules-paused x-grafana-alerting-target-datasource-uid: tools.x-grafana-alerting-target-datasource-uid x-grafana-alerting-folder-uid: tools.x-grafana-alerting-folder-uid x-grafana-alerting-notification-settings: tools.x-grafana-alerting-notification-settings body: tools.body outputParameters: - type: object mapping: $. - name: grafana-post-dashboard description: Grafana Post Dashboard hints: readOnly: false destructive: false idempotent: false call: grafana-post.postdashboard with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-datasource-proxy-post-uid description: Grafana Datasource Proxy POST By UID Calls hints: readOnly: false destructive: false idempotent: false call: grafana-post.datasourceproxypostbyuidcalls with: datasource_proxy_route: tools.datasource_proxy_route uid: tools.uid body: tools.body outputParameters: - type: object mapping: $. - name: grafana-datasource-proxy-post-calls description: Grafana Datasource Proxy POST Calls hints: readOnly: false destructive: false idempotent: false call: grafana-post.datasourceproxypostcalls with: datasource_proxy_route: tools.datasource_proxy_route id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: grafana-post-license-token description: Grafana Post License Token hints: readOnly: false destructive: false idempotent: false call: grafana-post.postlicensetoken with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-post-renew-license-token description: Grafana Post Renew License Token hints: readOnly: false destructive: false idempotent: false call: grafana-post.postrenewlicensetoken with: body: tools.body outputParameters: - type: object mapping: $. - name: grafana-post-acs description: Grafana Post ACS hints: readOnly: false destructive: false idempotent: false call: grafana-post.postacs with: RelayState: tools.RelayState outputParameters: - type: object mapping: $. - name: grafana-post-slo description: Grafana Post SLO hints: readOnly: false destructive: false idempotent: false call: grafana-post.postslo with: SAMLRequest: tools.SAMLRequest SAMLResponse: tools.SAMLResponse outputParameters: - type: object mapping: $. - name: grafana-route-post-alert-rule description: Grafana Route Post Alert Rule hints: readOnly: false destructive: false idempotent: false call: grafana-post.routepostalertrule with: X-Disable-Provenance: tools.X-Disable-Provenance body: tools.body outputParameters: - type: object mapping: $. - name: grafana-route-post-contactpoints description: Grafana Route Post Contactpoints hints: readOnly: false destructive: false idempotent: false call: grafana-post.routepostcontactpoints with: X-Disable-Provenance: tools.X-Disable-Provenance body: tools.body outputParameters: - type: object mapping: $. - name: grafana-route-post-mute-timing description: Grafana Route Post Mute Timing hints: readOnly: false destructive: false idempotent: false call: grafana-post.routepostmutetiming with: X-Disable-Provenance: tools.X-Disable-Provenance body: tools.body outputParameters: - type: object mapping: $.