naftiko: 1.0.0-alpha2 info: label: Fastly Observability — Alerts description: Create, list, get, update, and delete alert definitions in Fastly Observability, plus retrieve alert history. tags: - Fastly - Observability - Alerts created: '2026-05-22' modified: '2026-05-22' binds: - namespace: env keys: FASTLY_API_KEY: FASTLY_API_KEY capability: consumes: - type: http namespace: observability-alerts baseUri: https://api.fastly.com description: Fastly Observability alert definitions and history. resources: - name: alerts-definitions path: /alerts/definitions operations: - { name: listalertdefinitions, method: GET, description: List alert definitions, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } - { name: createalertdefinition, method: POST, description: Create alert definition, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } - name: alerts-definitions-definition_id path: /alerts/definitions/{definition_id} operations: - { name: getalertdefinition, method: GET, description: Get alert definition, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } - { name: updatealertdefinition, method: PATCH, description: Update alert definition, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } - { name: deletealertdefinition, method: DELETE, description: Delete alert definition, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } - name: alerts-history path: /alerts/history operations: - { name: listalerthistory, method: GET, description: List alert history, outputRawFormat: json, outputParameters: [ { name: result, type: object, value: $. } ] } authentication: type: apikey key: Fastly-Key value: '{{env.FASTLY_API_KEY}}' placement: header exposes: - type: rest namespace: observability-alerts-rest port: 8080 description: REST adapter for Fastly Observability alerts. resources: - path: /v1/alerts/definitions name: alerts-definitions description: REST surface for alert definitions collection. operations: - { method: GET, name: listalertdefinitions, description: List alert definitions, call: observability-alerts.listalertdefinitions, outputParameters: [ { type: object, mapping: $. } ] } - { method: POST, name: createalertdefinition, description: Create alert definition, call: observability-alerts.createalertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - path: /v1/alerts/definitions/{definition-id} name: alerts-definition description: REST surface for a single alert definition. operations: - { method: GET, name: getalertdefinition, description: Get alert definition, call: observability-alerts.getalertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { method: PATCH, name: updatealertdefinition, description: Update alert definition, call: observability-alerts.updatealertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { method: DELETE, name: deletealertdefinition, description: Delete alert definition, call: observability-alerts.deletealertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - path: /v1/alerts/history name: alerts-history description: REST surface for alert history. operations: - { method: GET, name: listalerthistory, description: List alert history, call: observability-alerts.listalerthistory, outputParameters: [ { type: object, mapping: $. } ] } - type: mcp namespace: observability-alerts-mcp port: 9090 transport: http description: MCP adapter for Fastly Observability alerts. tools: - { name: list-alert-definitions, description: List Fastly alert definitions, hints: { readOnly: true, destructive: false, idempotent: true }, call: observability-alerts.listalertdefinitions, outputParameters: [ { type: object, mapping: $. } ] } - { name: create-alert-definition, description: Create a Fastly alert definition, hints: { readOnly: false, destructive: false, idempotent: false }, call: observability-alerts.createalertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { name: get-alert-definition, description: Get a Fastly alert definition, hints: { readOnly: true, destructive: false, idempotent: true }, call: observability-alerts.getalertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { name: update-alert-definition, description: Update a Fastly alert definition, hints: { readOnly: false, destructive: false, idempotent: true }, call: observability-alerts.updatealertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { name: delete-alert-definition, description: Delete a Fastly alert definition, hints: { readOnly: false, destructive: true, idempotent: true }, call: observability-alerts.deletealertdefinition, outputParameters: [ { type: object, mapping: $. } ] } - { name: list-alert-history, description: List Fastly alert history entries, hints: { readOnly: true, destructive: false, idempotent: true }, call: observability-alerts.listalerthistory, outputParameters: [ { type: object, mapping: $. } ] }