naftiko: 1.0.0-alpha2 info: label: Bandwidth Voice API — Conferences description: 'Bandwidth Voice API — Conferences. 5 operations. Lead operation: List conferences. Self-contained Naftiko capability covering one Bandwidth business surface.' tags: - Bandwidth - Conferences created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: BANDWIDTH_API_KEY: BANDWIDTH_API_KEY capability: consumes: - type: http namespace: voice-conferences baseUri: https://voice.bandwidth.com/api/v2 description: Bandwidth Voice API — Conferences business capability. Self-contained, no shared references. resources: - name: accounts-accountId-conferences path: /accounts/{accountId}/conferences operations: - name: listconferences method: GET description: List conferences outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Filter conferences by name - name: minCreatedTime in: query type: string description: Minimum creation time for filtering - name: maxCreatedTime in: query type: string description: Maximum creation time for filtering - name: accounts-accountId-conferences-conferenceId path: /accounts/{accountId}/conferences/{conferenceId} operations: - name: getconference method: GET description: Get conference information outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateconference method: POST description: Update a conference outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: accounts-accountId-conferences-conferenceId-members-memberId path: /accounts/{accountId}/conferences/{conferenceId}/members/{memberId} operations: - name: updateconferencemember method: PUT description: Update a conference member outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: memberId in: path type: string description: The unique identifier of the conference member required: true - name: body in: body type: object description: Request body (JSON). required: true - name: accounts-accountId-conferences-conferenceId-recordings path: /accounts/{accountId}/conferences/{conferenceId}/recordings operations: - name: getconferencerecordings method: GET description: List conference recordings outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: basic username: '{{env.BANDWIDTH_USER}}' password: '{{env.BANDWIDTH_PASS}}' exposes: - type: rest namespace: voice-conferences-rest port: 8080 description: REST adapter for Bandwidth Voice API — Conferences. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/accounts/{accountid}/conferences name: accounts-accountid-conferences description: REST surface for accounts-accountId-conferences. operations: - method: GET name: listconferences description: List conferences call: voice-conferences.listconferences with: name: rest.name minCreatedTime: rest.minCreatedTime maxCreatedTime: rest.maxCreatedTime outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/conferences/{conferenceid} name: accounts-accountid-conferences-conferenceid description: REST surface for accounts-accountId-conferences-conferenceId. operations: - method: GET name: getconference description: Get conference information call: voice-conferences.getconference outputParameters: - type: object mapping: $. - method: POST name: updateconference description: Update a conference call: voice-conferences.updateconference with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/conferences/{conferenceid}/members/{memberid} name: accounts-accountid-conferences-conferenceid-members-memberid description: REST surface for accounts-accountId-conferences-conferenceId-members-memberId. operations: - method: PUT name: updateconferencemember description: Update a conference member call: voice-conferences.updateconferencemember with: memberId: rest.memberId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/conferences/{conferenceid}/recordings name: accounts-accountid-conferences-conferenceid-recordings description: REST surface for accounts-accountId-conferences-conferenceId-recordings. operations: - method: GET name: getconferencerecordings description: List conference recordings call: voice-conferences.getconferencerecordings outputParameters: - type: object mapping: $. - type: mcp namespace: voice-conferences-mcp port: 9090 transport: http description: MCP adapter for Bandwidth Voice API — Conferences. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-conferences description: List conferences hints: readOnly: true destructive: false idempotent: true call: voice-conferences.listconferences with: name: tools.name minCreatedTime: tools.minCreatedTime maxCreatedTime: tools.maxCreatedTime outputParameters: - type: object mapping: $. - name: get-conference-information description: Get conference information hints: readOnly: true destructive: false idempotent: true call: voice-conferences.getconference outputParameters: - type: object mapping: $. - name: update-conference description: Update a conference hints: readOnly: false destructive: false idempotent: false call: voice-conferences.updateconference with: body: tools.body outputParameters: - type: object mapping: $. - name: update-conference-member description: Update a conference member hints: readOnly: false destructive: false idempotent: true call: voice-conferences.updateconferencemember with: memberId: tools.memberId body: tools.body outputParameters: - type: object mapping: $. - name: list-conference-recordings description: List conference recordings hints: readOnly: true destructive: false idempotent: true call: voice-conferences.getconferencerecordings outputParameters: - type: object mapping: $.