naftiko: 1.0.0-alpha2 info: label: RingCentral API — Devices description: 'RingCentral API — Devices. 10 operations. Lead operation: Get Device. Self-contained Naftiko capability covering one Ringcentral business surface.' tags: - Ringcentral - Devices created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY capability: consumes: - type: http namespace: platform-devices baseUri: https://platform.ringcentral.com description: RingCentral API — Devices business capability. Self-contained, no shared references. resources: - name: restapi-v1.0-account-accountId-device-deviceId path: /restapi/v1.0/account/{accountId}/device/{deviceId} operations: - name: readdevice method: GET description: Get Device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: syncEmergencyAddress in: query type: boolean description: Specifies if an emergency address should be synchronized or not - name: updatedevice method: PUT description: Update Device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: prestatement in: query type: boolean - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v1.0-account-accountId-device-deviceId-emergency path: /restapi/v1.0/account/{accountId}/device/{deviceId}/emergency operations: - name: updatedeviceemergency method: PUT description: Update Device Emergency Info outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v1.0-account-accountId-device-deviceId-sip-info path: /restapi/v1.0/account/{accountId}/device/{deviceId}/sip-info operations: - name: readdevicesipinfo method: GET description: Get Device SIP Info outputRawFormat: json outputParameters: - name: result type: object value: $. - name: restapi-v1.0-account-accountId-extension-extensionId-device path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/device operations: - name: listextensiondevices method: GET description: List Extension Devices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: linePooling in: query type: string description: Pooling type of device - Host - a device with standalone paid phone line which can be linked to a soft client instance - Guest - a device with a linked phone li - name: feature in: query type: string description: Device feature or multiple features supported - name: type in: query type: string description: Device type - name: lineType in: query type: string description: Phone line type - name: restapi-v2-accounts-accountId-device-inventory path: /restapi/v2/accounts/{accountId}/device-inventory operations: - name: adddevicetoinventory method: POST description: Add Phone to Inventory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletedevicefrominventory method: DELETE description: Delete Device from Inventory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-devices-bulk-add path: /restapi/v2/accounts/{accountId}/devices/bulk-add operations: - name: bulkadddevicesv2 method: POST description: Add BYOD Devices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-devices-deviceId path: /restapi/v2/accounts/{accountId}/devices/{deviceId} operations: - name: removelinejwspublic method: DELETE description: Remove phone line outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deviceId in: path type: string description: Internal identifier of a source device required: true - name: body in: body type: object description: Request body (JSON). required: false - name: restapi-v2-accounts-accountId-extensions-extensionId-devices-deviceId-replace path: /restapi/v2/accounts/{accountId}/extensions/{extensionId}/devices/{deviceId}/replace operations: - name: replacedevicesjwspublic method: POST description: Swap Devices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deviceId in: path type: string description: Internal identifier of a source device that is currently assigned to the given extension required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.RINGCENTRAL_API_KEY}}' exposes: - type: rest namespace: platform-devices-rest port: 8080 description: REST adapter for RingCentral API — Devices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid} name: restapi-v1-0-account-accountid-device-deviceid description: REST surface for restapi-v1.0-account-accountId-device-deviceId. operations: - method: GET name: readdevice description: Get Device call: platform-devices.readdevice with: syncEmergencyAddress: rest.syncEmergencyAddress outputParameters: - type: object mapping: $. - method: PUT name: updatedevice description: Update Device call: platform-devices.updatedevice with: prestatement: rest.prestatement body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid}/emergency name: restapi-v1-0-account-accountid-device-deviceid-emergency description: REST surface for restapi-v1.0-account-accountId-device-deviceId-emergency. operations: - method: PUT name: updatedeviceemergency description: Update Device Emergency Info call: platform-devices.updatedeviceemergency with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/device/{deviceid}/sip-info name: restapi-v1-0-account-accountid-device-deviceid-sip-info description: REST surface for restapi-v1.0-account-accountId-device-deviceId-sip-info. operations: - method: GET name: readdevicesipinfo description: Get Device SIP Info call: platform-devices.readdevicesipinfo outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/device name: restapi-v1-0-account-accountid-extension-extensionid-device description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-device. operations: - method: GET name: listextensiondevices description: List Extension Devices call: platform-devices.listextensiondevices with: linePooling: rest.linePooling feature: rest.feature type: rest.type lineType: rest.lineType outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/device-inventory name: restapi-v2-accounts-accountid-device-inventory description: REST surface for restapi-v2-accounts-accountId-device-inventory. operations: - method: POST name: adddevicetoinventory description: Add Phone to Inventory call: platform-devices.adddevicetoinventory with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletedevicefrominventory description: Delete Device from Inventory call: platform-devices.deletedevicefrominventory with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/devices/bulk-add name: restapi-v2-accounts-accountid-devices-bulk-add description: REST surface for restapi-v2-accounts-accountId-devices-bulk-add. operations: - method: POST name: bulkadddevicesv2 description: Add BYOD Devices call: platform-devices.bulkadddevicesv2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/devices/{deviceid} name: restapi-v2-accounts-accountid-devices-deviceid description: REST surface for restapi-v2-accounts-accountId-devices-deviceId. operations: - method: DELETE name: removelinejwspublic description: Remove phone line call: platform-devices.removelinejwspublic with: deviceId: rest.deviceId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/extensions/{extensionid}/devices/{deviceid}/replace name: restapi-v2-accounts-accountid-extensions-extensionid-devices-deviceid-replace description: REST surface for restapi-v2-accounts-accountId-extensions-extensionId-devices-deviceId-replace. operations: - method: POST name: replacedevicesjwspublic description: Swap Devices call: platform-devices.replacedevicesjwspublic with: deviceId: rest.deviceId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: platform-devices-mcp port: 9090 transport: http description: MCP adapter for RingCentral API — Devices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-device description: Get Device hints: readOnly: true destructive: false idempotent: true call: platform-devices.readdevice with: syncEmergencyAddress: tools.syncEmergencyAddress outputParameters: - type: object mapping: $. - name: update-device description: Update Device hints: readOnly: false destructive: false idempotent: true call: platform-devices.updatedevice with: prestatement: tools.prestatement body: tools.body outputParameters: - type: object mapping: $. - name: update-device-emergency-info description: Update Device Emergency Info hints: readOnly: false destructive: false idempotent: true call: platform-devices.updatedeviceemergency with: body: tools.body outputParameters: - type: object mapping: $. - name: get-device-sip-info description: Get Device SIP Info hints: readOnly: true destructive: false idempotent: true call: platform-devices.readdevicesipinfo outputParameters: - type: object mapping: $. - name: list-extension-devices description: List Extension Devices hints: readOnly: true destructive: false idempotent: true call: platform-devices.listextensiondevices with: linePooling: tools.linePooling feature: tools.feature type: tools.type lineType: tools.lineType outputParameters: - type: object mapping: $. - name: add-phone-inventory description: Add Phone to Inventory hints: readOnly: false destructive: false idempotent: false call: platform-devices.adddevicetoinventory with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-device-inventory description: Delete Device from Inventory hints: readOnly: false destructive: true idempotent: true call: platform-devices.deletedevicefrominventory with: body: tools.body outputParameters: - type: object mapping: $. - name: add-byod-devices description: Add BYOD Devices hints: readOnly: false destructive: false idempotent: false call: platform-devices.bulkadddevicesv2 with: body: tools.body outputParameters: - type: object mapping: $. - name: remove-phone-line description: Remove phone line hints: readOnly: false destructive: true idempotent: true call: platform-devices.removelinejwspublic with: deviceId: tools.deviceId body: tools.body outputParameters: - type: object mapping: $. - name: swap-devices description: Swap Devices hints: readOnly: false destructive: false idempotent: false call: platform-devices.replacedevicesjwspublic with: deviceId: tools.deviceId body: tools.body outputParameters: - type: object mapping: $.