naftiko: 1.0.0-alpha2 info: label: RingCentral API — Message Store description: 'RingCentral API — Message Store. 10 operations. Lead operation: List Messages. Self-contained Naftiko capability covering one Ringcentral business surface.' tags: - Ringcentral - Message Store created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY capability: consumes: - type: http namespace: platform-message-store baseUri: https://platform.ringcentral.com description: RingCentral API — Message Store business capability. Self-contained, no shared references. resources: - name: restapi-v1.0-account-accountId-extension-extensionId-message-store path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store operations: - name: listmessages method: GET description: List Messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: availability in: query type: array description: Specifies the availability status for resulting messages. - name: conversationId in: query type: string description: Specifies a conversation identifier for the resulting messages - name: dateFrom in: query type: string description: Start date/time for resulting messages in ISO 8601 format - name: dateTo in: query type: string description: End date/time for resulting messages in ISO 8601 format including - name: direction in: query type: array description: Direction for resulting messages. If not specified, both - name: distinctConversations in: query type: boolean description: If `true`, then the latest messages per every conversation ID - name: messageType in: query type: array description: Type of resulting messages. If not specified, all messages - name: readStatus in: query type: array description: Read status for resulting messages. Multiple values are - name: page in: query type: integer description: Indicates a page number to retrieve. Only positive number values - name: perPage in: query type: integer description: Indicates a page size (number of items) - name: phoneNumber in: query type: string description: Phone number. If specified, messages are returned for this - name: deletemessagebyfilter method: DELETE description: Delete Conversation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: conversationId in: query type: array - name: dateTo in: query type: string description: Messages received earlier then the date specified will be deleted. - name: type in: query type: string description: Type of messages to be deleted - name: restapi-v1.0-account-accountId-extension-extensionId-message-store-messageId path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId} operations: - name: readmessage method: GET description: Get Message(s) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatemessage method: PUT description: Update Message(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: patchmessage method: PATCH description: Patch Message(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletemessage method: DELETE description: Delete Message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: purge in: query type: boolean description: If the value is `true`, then the message is purged immediately - name: body in: body type: object description: Request body (JSON). required: false - name: restapi-v1.0-account-accountId-extension-extensionId-message-store-messageId-con path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}/content/{attachmentId} operations: - name: readmessagecontent method: GET description: Get Message Attachment Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: messageId in: path type: string required: true - name: attachmentId in: path type: string required: true - name: restapi-v1.0-account-accountId-extension-extensionId-message-sync path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/message-sync operations: - name: syncmessages method: GET description: Sync Messages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: conversationId in: query type: integer description: Conversation identifier for the resulting messages. Meaningful - name: dateFrom in: query type: string description: The start date/time for resulting messages in ISO 8601 format - name: dateTo in: query type: string description: The end date/time for resulting messages in ISO 8601 format including - name: direction in: query type: array description: Direction for the resulting messages. If not specified, both - name: distinctConversations in: query type: boolean description: If `true`, then the latest messages per every conversation ID - name: messageType in: query type: array description: Type for the resulting messages. If not specified, all types - name: recordCount in: query type: integer description: Limits the number of records to be returned (works in combination - name: syncToken in: query type: string description: A `syncToken` value from the previous sync response (for `ISync` mode only, mandatory) - name: syncType in: query type: string description: Type of message synchronization - name: voicemailOwner in: query type: array description: This query parameter will filter voicemail messages based on its owner. - name: restapi-v1.0-account-accountId-message-store-configuration path: /restapi/v1.0/account/{accountId}/message-store-configuration operations: - name: readmessagestoreconfiguration method: GET description: Get Message Store Configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatemessagestoreconfiguration method: PUT description: Update Message Store Configuration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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-message-store-rest port: 8080 description: REST adapter for RingCentral API — Message Store. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/message-store name: restapi-v1-0-account-accountid-extension-extensionid-message-store description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-message-store. operations: - method: GET name: listmessages description: List Messages call: platform-message-store.listmessages with: availability: rest.availability conversationId: rest.conversationId dateFrom: rest.dateFrom dateTo: rest.dateTo direction: rest.direction distinctConversations: rest.distinctConversations messageType: rest.messageType readStatus: rest.readStatus page: rest.page perPage: rest.perPage phoneNumber: rest.phoneNumber outputParameters: - type: object mapping: $. - method: DELETE name: deletemessagebyfilter description: Delete Conversation call: platform-message-store.deletemessagebyfilter with: conversationId: rest.conversationId dateTo: rest.dateTo type: rest.type outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/message-store/{messageid} name: restapi-v1-0-account-accountid-extension-extensionid-message-store-messageid description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-message-store-messageId. operations: - method: GET name: readmessage description: Get Message(s) call: platform-message-store.readmessage outputParameters: - type: object mapping: $. - method: PUT name: updatemessage description: Update Message(s) call: platform-message-store.updatemessage with: body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: patchmessage description: Patch Message(s) call: platform-message-store.patchmessage with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletemessage description: Delete Message call: platform-message-store.deletemessage with: purge: rest.purge body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/message-store/{messageid}/content/{attachmentid} name: restapi-v1-0-account-accountid-extension-extensionid-message-store-messageid-con description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-message-store-messageId-con. operations: - method: GET name: readmessagecontent description: Get Message Attachment Content call: platform-message-store.readmessagecontent with: messageId: rest.messageId attachmentId: rest.attachmentId outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/message-sync name: restapi-v1-0-account-accountid-extension-extensionid-message-sync description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-message-sync. operations: - method: GET name: syncmessages description: Sync Messages call: platform-message-store.syncmessages with: conversationId: rest.conversationId dateFrom: rest.dateFrom dateTo: rest.dateTo direction: rest.direction distinctConversations: rest.distinctConversations messageType: rest.messageType recordCount: rest.recordCount syncToken: rest.syncToken syncType: rest.syncType voicemailOwner: rest.voicemailOwner outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/message-store-configuration name: restapi-v1-0-account-accountid-message-store-configuration description: REST surface for restapi-v1.0-account-accountId-message-store-configuration. operations: - method: GET name: readmessagestoreconfiguration description: Get Message Store Configuration call: platform-message-store.readmessagestoreconfiguration outputParameters: - type: object mapping: $. - method: PUT name: updatemessagestoreconfiguration description: Update Message Store Configuration call: platform-message-store.updatemessagestoreconfiguration with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: platform-message-store-mcp port: 9090 transport: http description: MCP adapter for RingCentral API — Message Store. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-messages description: List Messages hints: readOnly: true destructive: false idempotent: true call: platform-message-store.listmessages with: availability: tools.availability conversationId: tools.conversationId dateFrom: tools.dateFrom dateTo: tools.dateTo direction: tools.direction distinctConversations: tools.distinctConversations messageType: tools.messageType readStatus: tools.readStatus page: tools.page perPage: tools.perPage phoneNumber: tools.phoneNumber outputParameters: - type: object mapping: $. - name: delete-conversation description: Delete Conversation hints: readOnly: false destructive: true idempotent: true call: platform-message-store.deletemessagebyfilter with: conversationId: tools.conversationId dateTo: tools.dateTo type: tools.type outputParameters: - type: object mapping: $. - name: get-message-s description: Get Message(s) hints: readOnly: true destructive: false idempotent: true call: platform-message-store.readmessage outputParameters: - type: object mapping: $. - name: update-message-s description: Update Message(s) hints: readOnly: false destructive: false idempotent: true call: platform-message-store.updatemessage with: body: tools.body outputParameters: - type: object mapping: $. - name: patch-message-s description: Patch Message(s) hints: readOnly: false destructive: false idempotent: true call: platform-message-store.patchmessage with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-message description: Delete Message hints: readOnly: false destructive: true idempotent: true call: platform-message-store.deletemessage with: purge: tools.purge body: tools.body outputParameters: - type: object mapping: $. - name: get-message-attachment-content description: Get Message Attachment Content hints: readOnly: true destructive: false idempotent: true call: platform-message-store.readmessagecontent with: messageId: tools.messageId attachmentId: tools.attachmentId outputParameters: - type: object mapping: $. - name: sync-messages description: Sync Messages hints: readOnly: true destructive: false idempotent: true call: platform-message-store.syncmessages with: conversationId: tools.conversationId dateFrom: tools.dateFrom dateTo: tools.dateTo direction: tools.direction distinctConversations: tools.distinctConversations messageType: tools.messageType recordCount: tools.recordCount syncToken: tools.syncToken syncType: tools.syncType voicemailOwner: tools.voicemailOwner outputParameters: - type: object mapping: $. - name: get-message-store-configuration description: Get Message Store Configuration hints: readOnly: true destructive: false idempotent: true call: platform-message-store.readmessagestoreconfiguration outputParameters: - type: object mapping: $. - name: update-message-store-configuration description: Update Message Store Configuration hints: readOnly: false destructive: false idempotent: true call: platform-message-store.updatemessagestoreconfiguration with: body: tools.body outputParameters: - type: object mapping: $.