naftiko: 1.0.0-alpha2 info: label: Webex Cloud Calling — Converged Recordings description: 'Webex Cloud Calling — Converged Recordings. 9 operations. Lead operation: List Recordings for Admin or Compliance officer. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - Converged Recordings created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBEX_API_KEY: WEBEX_API_KEY capability: consumes: - type: http namespace: cloud-calling-converged-recordings baseUri: '' description: Webex Cloud Calling — Converged Recordings business capability. Self-contained, no shared references. resources: - name: admin-convergedRecordings path: /admin/convergedRecordings operations: - name: listrecordingsforadminorcomplianceofficer method: GET description: List Recordings for Admin or Compliance officer outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: max in: query type: number description: Maximum number of recordings to return in a single page. `max` must be equal to or greater than `1` and equal to or less than `100`. - name: from in: query type: string description: 'Starting date and time (inclusive) for recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `from` cannot be after ' - name: to in: query type: string description: Ending date and time (exclusive) for List recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `to` cannot be befor - name: status in: query type: string description: Recording's status. If not specified or `available`, retrieves recordings that are available. if specified as `purged`, retrieves recordings those are deleted b - name: serviceType in: query type: string description: Recording's service-type. If specified, the API filters recordings by service-type. Valid values are `calling` and `customerAssist`. - name: format in: query type: string description: Recording's file format. If specified, the API filters recordings by format. Valid values are `MP3`. - name: ownerId in: query type: string description: Webex user Id to fetch recordings for a particular user. - name: ownerEmail in: query type: string description: Webex email address to fetch recordings for a particular user. - name: ownerType in: query type: string description: Recording based on type of user. - name: storageRegion in: query type: string description: Recording stored in certain Webex locations. - name: locationId in: query type: string description: Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub). - name: topic in: query type: string description: Recording's topic. If specified, the API filters recordings by topic in a case-insensitive manner. - name: timezone in: header type: string description: e.g. UTC - name: convergedRecordings path: /convergedRecordings operations: - name: listrecordings method: GET description: List Recordings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: max in: query type: number description: Maximum number of recordings to return in a single page. `max` must be equal to or greater than `1` and equal to or less than `100`. - name: from in: query type: string description: 'Starting date and time (inclusive) for recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `from` cannot be after ' - name: to in: query type: string description: Ending date and time (exclusive) for List recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `to` cannot be befor - name: status in: query type: string description: Recording's status. If not specified or `available`, retrieves recordings that are available. Otherwise, if specified as `deleted`, retrieves recordings that ha - name: serviceType in: query type: string description: Recording's service-type. If specified, the API filters recordings by service-type. Valid values are `calling` and `customerAssist`. - name: format in: query type: string description: Recording's file format. If specified, the API filters recordings by format. Valid values are `MP3`. - name: ownerType in: query type: string description: Recording based on type of user. - name: storageRegion in: query type: string description: Recording stored in certain Webex locations. - name: locationId in: query type: string description: Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub). - name: topic in: query type: string description: Recording's topic. If specified, the API filters recordings by topic in a case-insensitive manner. - name: timezone in: header type: string description: e.g. UTC - name: convergedRecordings-purge path: /convergedRecordings/purge operations: - name: purgerecordingsfromrecyclebin method: POST description: Purge Recordings from Recycle Bin outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: convergedRecordings-reassign path: /convergedRecordings/reassign operations: - name: reassignrecordings method: POST description: Reassign Recordings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: convergedRecordings-restore path: /convergedRecordings/restore operations: - name: restorerecordingsfromrecyclebin method: POST description: Restore Recordings from Recycle Bin outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: convergedRecordings-softDelete path: /convergedRecordings/softDelete operations: - name: moverecordingsintotherecyclebin method: POST description: Move Recordings into the Recycle Bin outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: convergedRecordings-recordingId path: /convergedRecordings/{recordingId} operations: - name: getrecordingdetails method: GET description: Get Recording Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: recordingId in: path type: string description: A unique identifier for the recording. required: true - name: timezone in: header type: string description: e.g. UTC - name: deletearecording method: DELETE description: Delete a Recording outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: recordingId in: path type: string description: A unique identifier for the recording. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: convergedRecordings-recordingId-metadata path: /convergedRecordings/{recordingId}/metadata operations: - name: getrecordingmetadata method: GET description: Get Recording metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: recordingId in: path type: string description: A unique identifier for the recording. required: true - name: showAllTypes in: query type: boolean description: If `showAllTypes` is `true`, all attributes will be shown. If it's `false` or not specified, the following attributes of the metadata will be hidden. authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: cloud-calling-converged-recordings-rest port: 8080 description: REST adapter for Webex Cloud Calling — Converged Recordings. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin/convergedrecordings name: admin-convergedrecordings description: REST surface for admin-convergedRecordings. operations: - method: GET name: listrecordingsforadminorcomplianceofficer description: List Recordings for Admin or Compliance officer call: cloud-calling-converged-recordings.listrecordingsforadminorcomplianceofficer with: max: rest.max from: rest.from to: rest.to status: rest.status serviceType: rest.serviceType format: rest.format ownerId: rest.ownerId ownerEmail: rest.ownerEmail ownerType: rest.ownerType storageRegion: rest.storageRegion locationId: rest.locationId topic: rest.topic timezone: rest.timezone outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings name: convergedrecordings description: REST surface for convergedRecordings. operations: - method: GET name: listrecordings description: List Recordings call: cloud-calling-converged-recordings.listrecordings with: max: rest.max from: rest.from to: rest.to status: rest.status serviceType: rest.serviceType format: rest.format ownerType: rest.ownerType storageRegion: rest.storageRegion locationId: rest.locationId topic: rest.topic timezone: rest.timezone outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/purge name: convergedrecordings-purge description: REST surface for convergedRecordings-purge. operations: - method: POST name: purgerecordingsfromrecyclebin description: Purge Recordings from Recycle Bin call: cloud-calling-converged-recordings.purgerecordingsfromrecyclebin with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/reassign name: convergedrecordings-reassign description: REST surface for convergedRecordings-reassign. operations: - method: POST name: reassignrecordings description: Reassign Recordings call: cloud-calling-converged-recordings.reassignrecordings with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/restore name: convergedrecordings-restore description: REST surface for convergedRecordings-restore. operations: - method: POST name: restorerecordingsfromrecyclebin description: Restore Recordings from Recycle Bin call: cloud-calling-converged-recordings.restorerecordingsfromrecyclebin with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/softdelete name: convergedrecordings-softdelete description: REST surface for convergedRecordings-softDelete. operations: - method: POST name: moverecordingsintotherecyclebin description: Move Recordings into the Recycle Bin call: cloud-calling-converged-recordings.moverecordingsintotherecyclebin with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/{recordingid} name: convergedrecordings-recordingid description: REST surface for convergedRecordings-recordingId. operations: - method: GET name: getrecordingdetails description: Get Recording Details call: cloud-calling-converged-recordings.getrecordingdetails with: recordingId: rest.recordingId timezone: rest.timezone outputParameters: - type: object mapping: $. - method: DELETE name: deletearecording description: Delete a Recording call: cloud-calling-converged-recordings.deletearecording with: recordingId: rest.recordingId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/convergedrecordings/{recordingid}/metadata name: convergedrecordings-recordingid-metadata description: REST surface for convergedRecordings-recordingId-metadata. operations: - method: GET name: getrecordingmetadata description: Get Recording metadata call: cloud-calling-converged-recordings.getrecordingmetadata with: recordingId: rest.recordingId showAllTypes: rest.showAllTypes outputParameters: - type: object mapping: $. - type: mcp namespace: cloud-calling-converged-recordings-mcp port: 9090 transport: http description: MCP adapter for Webex Cloud Calling — Converged Recordings. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-recordings-admin-compliance-officer description: List Recordings for Admin or Compliance officer hints: readOnly: true destructive: false idempotent: true call: cloud-calling-converged-recordings.listrecordingsforadminorcomplianceofficer with: max: tools.max from: tools.from to: tools.to status: tools.status serviceType: tools.serviceType format: tools.format ownerId: tools.ownerId ownerEmail: tools.ownerEmail ownerType: tools.ownerType storageRegion: tools.storageRegion locationId: tools.locationId topic: tools.topic timezone: tools.timezone outputParameters: - type: object mapping: $. - name: list-recordings description: List Recordings hints: readOnly: true destructive: false idempotent: true call: cloud-calling-converged-recordings.listrecordings with: max: tools.max from: tools.from to: tools.to status: tools.status serviceType: tools.serviceType format: tools.format ownerType: tools.ownerType storageRegion: tools.storageRegion locationId: tools.locationId topic: tools.topic timezone: tools.timezone outputParameters: - type: object mapping: $. - name: purge-recordings-recycle-bin description: Purge Recordings from Recycle Bin hints: readOnly: false destructive: false idempotent: false call: cloud-calling-converged-recordings.purgerecordingsfromrecyclebin with: body: tools.body outputParameters: - type: object mapping: $. - name: reassign-recordings description: Reassign Recordings hints: readOnly: false destructive: false idempotent: false call: cloud-calling-converged-recordings.reassignrecordings with: body: tools.body outputParameters: - type: object mapping: $. - name: restore-recordings-recycle-bin description: Restore Recordings from Recycle Bin hints: readOnly: false destructive: false idempotent: false call: cloud-calling-converged-recordings.restorerecordingsfromrecyclebin with: body: tools.body outputParameters: - type: object mapping: $. - name: move-recordings-recycle-bin description: Move Recordings into the Recycle Bin hints: readOnly: false destructive: false idempotent: false call: cloud-calling-converged-recordings.moverecordingsintotherecyclebin with: body: tools.body outputParameters: - type: object mapping: $. - name: get-recording-details description: Get Recording Details hints: readOnly: true destructive: false idempotent: true call: cloud-calling-converged-recordings.getrecordingdetails with: recordingId: tools.recordingId timezone: tools.timezone outputParameters: - type: object mapping: $. - name: delete-recording description: Delete a Recording hints: readOnly: false destructive: true idempotent: true call: cloud-calling-converged-recordings.deletearecording with: recordingId: tools.recordingId body: tools.body outputParameters: - type: object mapping: $. - name: get-recording-metadata description: Get Recording metadata hints: readOnly: true destructive: false idempotent: true call: cloud-calling-converged-recordings.getrecordingmetadata with: recordingId: tools.recordingId showAllTypes: tools.showAllTypes outputParameters: - type: object mapping: $.