naftiko: 1.0.0-alpha2 info: label: PagerDuty API — Rulesets description: 'PagerDuty API — Rulesets. 10 operations. Lead operation: PagerDuty List Rulesets. Self-contained Naftiko capability covering one Pagerduty business surface.' tags: - Pagerduty - Rulesets created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PAGERDUTY_API_KEY: PAGERDUTY_API_KEY capability: consumes: - type: http namespace: pagerduty-rulesets baseUri: https://api.pagerduty.com description: PagerDuty API — Rulesets business capability. Self-contained, no shared references. resources: - name: rulesets path: /rulesets operations: - name: listrulesets method: GET description: PagerDuty List Rulesets outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createruleset method: POST description: PagerDuty Create a Ruleset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rulesets-id path: /rulesets/{id} operations: - name: getruleset method: GET description: PagerDuty Get a Ruleset outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateruleset method: PUT description: PagerDuty Update a Ruleset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: deleteruleset method: DELETE description: PagerDuty Delete a Ruleset outputRawFormat: json outputParameters: - name: result type: object value: $. - name: rulesets-id-rules path: /rulesets/{id}/rules operations: - name: listruleseteventrules method: GET description: PagerDuty List Event Rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createruleseteventrule method: POST description: PagerDuty Create an Event Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rulesets-id-rules-rule_id path: /rulesets/{id}/rules/{rule_id} operations: - name: getruleseteventrule method: GET description: PagerDuty Get an Event Rule outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateruleseteventrule method: PUT description: PagerDuty Update an Event Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: deleteruleseteventrule method: DELETE description: PagerDuty Delete an Event Rule outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: Authorization value: '{{env.PAGERDUTY_API_KEY}}' placement: header exposes: - type: rest namespace: pagerduty-rulesets-rest port: 8080 description: REST adapter for PagerDuty API — Rulesets. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/rulesets name: rulesets description: REST surface for rulesets. operations: - method: GET name: listrulesets description: PagerDuty List Rulesets call: pagerduty-rulesets.listrulesets outputParameters: - type: object mapping: $. - method: POST name: createruleset description: PagerDuty Create a Ruleset call: pagerduty-rulesets.createruleset with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/rulesets/{id} name: rulesets-id description: REST surface for rulesets-id. operations: - method: GET name: getruleset description: PagerDuty Get a Ruleset call: pagerduty-rulesets.getruleset outputParameters: - type: object mapping: $. - method: PUT name: updateruleset description: PagerDuty Update a Ruleset call: pagerduty-rulesets.updateruleset with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteruleset description: PagerDuty Delete a Ruleset call: pagerduty-rulesets.deleteruleset outputParameters: - type: object mapping: $. - path: /v1/rulesets/{id}/rules name: rulesets-id-rules description: REST surface for rulesets-id-rules. operations: - method: GET name: listruleseteventrules description: PagerDuty List Event Rules call: pagerduty-rulesets.listruleseteventrules outputParameters: - type: object mapping: $. - method: POST name: createruleseteventrule description: PagerDuty Create an Event Rule call: pagerduty-rulesets.createruleseteventrule with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/rulesets/{id}/rules/{rule-id} name: rulesets-id-rules-rule-id description: REST surface for rulesets-id-rules-rule_id. operations: - method: GET name: getruleseteventrule description: PagerDuty Get an Event Rule call: pagerduty-rulesets.getruleseteventrule outputParameters: - type: object mapping: $. - method: PUT name: updateruleseteventrule description: PagerDuty Update an Event Rule call: pagerduty-rulesets.updateruleseteventrule with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteruleseteventrule description: PagerDuty Delete an Event Rule call: pagerduty-rulesets.deleteruleseteventrule outputParameters: - type: object mapping: $. - type: mcp namespace: pagerduty-rulesets-mcp port: 9090 transport: http description: MCP adapter for PagerDuty API — Rulesets. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: pagerduty-list-rulesets description: PagerDuty List Rulesets hints: readOnly: true destructive: false idempotent: true call: pagerduty-rulesets.listrulesets outputParameters: - type: object mapping: $. - name: pagerduty-create-ruleset description: PagerDuty Create a Ruleset hints: readOnly: false destructive: false idempotent: false call: pagerduty-rulesets.createruleset with: body: tools.body outputParameters: - type: object mapping: $. - name: pagerduty-get-ruleset description: PagerDuty Get a Ruleset hints: readOnly: true destructive: false idempotent: true call: pagerduty-rulesets.getruleset outputParameters: - type: object mapping: $. - name: pagerduty-update-ruleset description: PagerDuty Update a Ruleset hints: readOnly: false destructive: false idempotent: true call: pagerduty-rulesets.updateruleset with: body: tools.body outputParameters: - type: object mapping: $. - name: pagerduty-delete-ruleset description: PagerDuty Delete a Ruleset hints: readOnly: false destructive: true idempotent: true call: pagerduty-rulesets.deleteruleset outputParameters: - type: object mapping: $. - name: pagerduty-list-event-rules description: PagerDuty List Event Rules hints: readOnly: true destructive: false idempotent: true call: pagerduty-rulesets.listruleseteventrules outputParameters: - type: object mapping: $. - name: pagerduty-create-event-rule description: PagerDuty Create an Event Rule hints: readOnly: false destructive: false idempotent: false call: pagerduty-rulesets.createruleseteventrule with: body: tools.body outputParameters: - type: object mapping: $. - name: pagerduty-get-event-rule description: PagerDuty Get an Event Rule hints: readOnly: true destructive: false idempotent: true call: pagerduty-rulesets.getruleseteventrule outputParameters: - type: object mapping: $. - name: pagerduty-update-event-rule description: PagerDuty Update an Event Rule hints: readOnly: false destructive: false idempotent: true call: pagerduty-rulesets.updateruleseteventrule with: body: tools.body outputParameters: - type: object mapping: $. - name: pagerduty-delete-event-rule description: PagerDuty Delete an Event Rule hints: readOnly: false destructive: true idempotent: true call: pagerduty-rulesets.deleteruleseteventrule outputParameters: - type: object mapping: $.