naftiko: 1.0.0-alpha2 info: label: Reolink Camera HTTP API — PTZ description: 'Reolink Camera HTTP API — PTZ. 9 operations. Lead operation: Get auto-tracking settings. Self-contained Naftiko capability covering one Reolink business surface.' tags: - Reolink - PTZ created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: REOLINK_API_KEY: REOLINK_API_KEY capability: consumes: - type: http namespace: camera-ptz baseUri: https://{camera_ip} description: Reolink Camera HTTP API — PTZ business capability. Self-contained, no shared references. resources: - name: cgi-bin-api.cgi?cmd=GetAutoTrack&token={token} path: /cgi-bin/api.cgi?cmd=GetAutoTrack&token={token} operations: - name: getautotrack method: POST description: Get auto-tracking settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetPtzCheckState&token={token} path: /cgi-bin/api.cgi?cmd=GetPtzCheckState&token={token} operations: - name: getptzcheckstate method: POST description: Get PTZ calibration status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetPtzPatrol&token={token} path: /cgi-bin/api.cgi?cmd=GetPtzPatrol&token={token} operations: - name: getptzpatrol method: POST description: Get PTZ patrol settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetPtzPreset&token={token} path: /cgi-bin/api.cgi?cmd=GetPtzPreset&token={token} operations: - name: getptzpreset method: POST description: Get PTZ presets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=PtzCheck&token={token} path: /cgi-bin/api.cgi?cmd=PtzCheck&token={token} operations: - name: ptzcheck method: POST description: Calibrate PTZ outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=PtzCtrl&token={token} path: /cgi-bin/api.cgi?cmd=PtzCtrl&token={token} operations: - name: ptzctrl method: POST description: Control PTZ movement outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=SetAutoTrack&token={token} path: /cgi-bin/api.cgi?cmd=SetAutoTrack&token={token} operations: - name: setautotrack method: POST description: Set auto-tracking settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=SetPtzPatrol&token={token} path: /cgi-bin/api.cgi?cmd=SetPtzPatrol&token={token} operations: - name: setptzpatrol method: POST description: Set PTZ patrol configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=SetPtzPreset&token={token} path: /cgi-bin/api.cgi?cmd=SetPtzPreset&token={token} operations: - name: setptzpreset method: POST description: Set PTZ preset position outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: token value: '{{env.REOLINK_API_KEY}}' placement: query exposes: - type: rest namespace: camera-ptz-rest port: 8080 description: REST adapter for Reolink Camera HTTP API — PTZ. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/cgi-bin/api-cgi-cmd-getautotrack-token-token name: cgi-bin-api-cgi-cmd-getautotrack-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetAutoTrack&token={token}. operations: - method: POST name: getautotrack description: Get auto-tracking settings call: camera-ptz.getautotrack with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getptzcheckstate-token-token name: cgi-bin-api-cgi-cmd-getptzcheckstate-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetPtzCheckState&token={token}. operations: - method: POST name: getptzcheckstate description: Get PTZ calibration status call: camera-ptz.getptzcheckstate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getptzpatrol-token-token name: cgi-bin-api-cgi-cmd-getptzpatrol-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetPtzPatrol&token={token}. operations: - method: POST name: getptzpatrol description: Get PTZ patrol settings call: camera-ptz.getptzpatrol with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getptzpreset-token-token name: cgi-bin-api-cgi-cmd-getptzpreset-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetPtzPreset&token={token}. operations: - method: POST name: getptzpreset description: Get PTZ presets call: camera-ptz.getptzpreset with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-ptzcheck-token-token name: cgi-bin-api-cgi-cmd-ptzcheck-token-token description: REST surface for cgi-bin-api.cgi?cmd=PtzCheck&token={token}. operations: - method: POST name: ptzcheck description: Calibrate PTZ call: camera-ptz.ptzcheck with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-ptzctrl-token-token name: cgi-bin-api-cgi-cmd-ptzctrl-token-token description: REST surface for cgi-bin-api.cgi?cmd=PtzCtrl&token={token}. operations: - method: POST name: ptzctrl description: Control PTZ movement call: camera-ptz.ptzctrl with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-setautotrack-token-token name: cgi-bin-api-cgi-cmd-setautotrack-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetAutoTrack&token={token}. operations: - method: POST name: setautotrack description: Set auto-tracking settings call: camera-ptz.setautotrack with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-setptzpatrol-token-token name: cgi-bin-api-cgi-cmd-setptzpatrol-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetPtzPatrol&token={token}. operations: - method: POST name: setptzpatrol description: Set PTZ patrol configuration call: camera-ptz.setptzpatrol with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-setptzpreset-token-token name: cgi-bin-api-cgi-cmd-setptzpreset-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetPtzPreset&token={token}. operations: - method: POST name: setptzpreset description: Set PTZ preset position call: camera-ptz.setptzpreset with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: camera-ptz-mcp port: 9090 transport: http description: MCP adapter for Reolink Camera HTTP API — PTZ. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-auto-tracking-settings description: Get auto-tracking settings hints: readOnly: true destructive: false idempotent: false call: camera-ptz.getautotrack with: body: tools.body outputParameters: - type: object mapping: $. - name: get-ptz-calibration-status description: Get PTZ calibration status hints: readOnly: true destructive: false idempotent: false call: camera-ptz.getptzcheckstate with: body: tools.body outputParameters: - type: object mapping: $. - name: get-ptz-patrol-settings description: Get PTZ patrol settings hints: readOnly: true destructive: false idempotent: false call: camera-ptz.getptzpatrol with: body: tools.body outputParameters: - type: object mapping: $. - name: get-ptz-presets description: Get PTZ presets hints: readOnly: true destructive: false idempotent: false call: camera-ptz.getptzpreset with: body: tools.body outputParameters: - type: object mapping: $. - name: calibrate-ptz description: Calibrate PTZ hints: readOnly: false destructive: false idempotent: false call: camera-ptz.ptzcheck with: body: tools.body outputParameters: - type: object mapping: $. - name: control-ptz-movement description: Control PTZ movement hints: readOnly: false destructive: false idempotent: false call: camera-ptz.ptzctrl with: body: tools.body outputParameters: - type: object mapping: $. - name: set-auto-tracking-settings description: Set auto-tracking settings hints: readOnly: false destructive: false idempotent: false call: camera-ptz.setautotrack with: body: tools.body outputParameters: - type: object mapping: $. - name: set-ptz-patrol-configuration description: Set PTZ patrol configuration hints: readOnly: false destructive: false idempotent: false call: camera-ptz.setptzpatrol with: body: tools.body outputParameters: - type: object mapping: $. - name: set-ptz-preset-position description: Set PTZ preset position hints: readOnly: false destructive: false idempotent: false call: camera-ptz.setptzpreset with: body: tools.body outputParameters: - type: object mapping: $.