naftiko: 1.0.0-alpha2 info: label: Juniper Networks Junos REST API — Configuration description: 'Juniper Networks Junos REST API — Configuration. 4 operations. Lead operation: Juniper Networks Edit device configuration. Self-contained Naftiko capability covering one Juniper business surface.' tags: - Juniper - Configuration created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: JUNIPER_API_KEY: JUNIPER_API_KEY capability: consumes: - type: http namespace: junos-rest-configuration baseUri: https://{device_ip}:3443 description: Juniper Networks Junos REST API — Configuration business capability. Self-contained, no shared references. resources: - name: api-edit-config path: /api/edit-config operations: - name: editconfiguration method: POST description: Juniper Networks Edit device configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-get-config path: /api/get-config operations: - name: getconfiguration method: POST description: Juniper Networks Get device configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rpc-commit-configuration path: /rpc/commit-configuration operations: - name: commitconfiguration method: POST description: Juniper Networks Commit configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rpc-rollback-configuration path: /rpc/rollback-configuration operations: - name: rollbackconfiguration method: POST description: Juniper Networks Rollback configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false authentication: type: basic username: '{{env.JUNIPER_USER}}' password: '{{env.JUNIPER_PASS}}' exposes: - type: rest namespace: junos-rest-configuration-rest port: 8080 description: REST adapter for Juniper Networks Junos REST API — Configuration. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/edit-config name: api-edit-config description: REST surface for api-edit-config. operations: - method: POST name: editconfiguration description: Juniper Networks Edit device configuration call: junos-rest-configuration.editconfiguration with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/get-config name: api-get-config description: REST surface for api-get-config. operations: - method: POST name: getconfiguration description: Juniper Networks Get device configuration call: junos-rest-configuration.getconfiguration with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/rpc/commit-configuration name: rpc-commit-configuration description: REST surface for rpc-commit-configuration. operations: - method: POST name: commitconfiguration description: Juniper Networks Commit configuration call: junos-rest-configuration.commitconfiguration with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/rpc/rollback-configuration name: rpc-rollback-configuration description: REST surface for rpc-rollback-configuration. operations: - method: POST name: rollbackconfiguration description: Juniper Networks Rollback configuration call: junos-rest-configuration.rollbackconfiguration with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: junos-rest-configuration-mcp port: 9090 transport: http description: MCP adapter for Juniper Networks Junos REST API — Configuration. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: juniper-networks-edit-device-configuration description: Juniper Networks Edit device configuration hints: readOnly: false destructive: false idempotent: false call: junos-rest-configuration.editconfiguration with: body: tools.body outputParameters: - type: object mapping: $. - name: juniper-networks-get-device-configuration description: Juniper Networks Get device configuration hints: readOnly: true destructive: false idempotent: false call: junos-rest-configuration.getconfiguration with: body: tools.body outputParameters: - type: object mapping: $. - name: juniper-networks-commit-configuration description: Juniper Networks Commit configuration hints: readOnly: false destructive: false idempotent: false call: junos-rest-configuration.commitconfiguration with: body: tools.body outputParameters: - type: object mapping: $. - name: juniper-networks-rollback-configuration description: Juniper Networks Rollback configuration hints: readOnly: false destructive: false idempotent: false call: junos-rest-configuration.rollbackconfiguration with: body: tools.body outputParameters: - type: object mapping: $.