naftiko: 1.0.0-alpha2 info: label: Webex Meetings — Preferences description: 'Webex Meetings — Preferences. 14 operations. Lead operation: Batch Refresh Personal Meeting Room ID. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - Preferences created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBEX_API_KEY: WEBEX_API_KEY capability: consumes: - type: http namespace: meeting-preferences baseUri: '' description: Webex Meetings — Preferences business capability. Self-contained, no shared references. resources: - name: admin-meetingPreferences-personalMeetingRoom-refreshId path: /admin/meetingPreferences/personalMeetingRoom/refreshId operations: - name: batchrefreshpersonalmeetingroomid method: POST description: Batch Refresh Personal Meeting Room ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences path: /meetingPreferences operations: - name: getmeetingpreferencedetails method: GET description: Get Meeting Preference Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the required [admin-level scopes](/docs/meetings#adminorg - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: meetingPreferences-audio path: /meetingPreferences/audio operations: - name: getaudiooptions method: GET description: Get Audio Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: updateaudiooptions method: PUT description: Update Audio Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-personalMeetingRoom path: /meetingPreferences/personalMeetingRoom operations: - name: getpersonalmeetingroomoptions method: GET description: Get Personal Meeting Room Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: updatepersonalmeetingroomoptions method: PUT description: Update Personal Meeting Room Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-schedulingOptions path: /meetingPreferences/schedulingOptions operations: - name: getschedulingoptions method: GET description: Get Scheduling Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: updateschedulingoptions method: PUT description: Update Scheduling Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-schedulingOptions-delegateEmails-delete path: /meetingPreferences/schedulingOptions/delegateEmails/delete operations: - name: deletedelegateemails method: POST description: Delete Delegate Emails outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-schedulingOptions-delegateEmails-insert path: /meetingPreferences/schedulingOptions/delegateEmails/insert operations: - name: insertdelegateemails method: POST description: Insert Delegate Emails outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-sites path: /meetingPreferences/sites operations: - name: getsitelist method: GET description: Get Site List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: URL of the Webex site to query. If `siteUrl` is not specified, the query will use the default site for the admin's authorization token used to make the call. - name: updatedefaultsite method: PUT description: Update Default Site outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: defaultSite in: query type: boolean description: 'Whether or not to change user''s default site. ***Note***: `defaultSite` should be set to true for the user''s single default site' required: true - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: body in: body type: object description: Request body (JSON). required: false - name: meetingPreferences-video path: /meetingPreferences/video operations: - name: getvideooptions method: GET description: Get Video Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: updatevideooptions method: PUT description: Update Video Options outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: userEmail in: query type: string description: Email address for the user. This parameter is only used if the user or application calling the API has the [admin-level scopes](/docs/meetings#adminorganization - name: siteUrl in: query type: string description: 'URL of the Webex site to query. For individual use, if `siteUrl` is not specified, the query will use the default site of the user. For admin use, if `siteUrl` ' - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: meeting-preferences-rest port: 8080 description: REST adapter for Webex Meetings — Preferences. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/admin/meetingpreferences/personalmeetingroom/refreshid name: admin-meetingpreferences-personalmeetingroom-refreshid description: REST surface for admin-meetingPreferences-personalMeetingRoom-refreshId. operations: - method: POST name: batchrefreshpersonalmeetingroomid description: Batch Refresh Personal Meeting Room ID call: meeting-preferences.batchrefreshpersonalmeetingroomid with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences name: meetingpreferences description: REST surface for meetingPreferences. operations: - method: GET name: getmeetingpreferencedetails description: Get Meeting Preference Details call: meeting-preferences.getmeetingpreferencedetails with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/audio name: meetingpreferences-audio description: REST surface for meetingPreferences-audio. operations: - method: GET name: getaudiooptions description: Get Audio Options call: meeting-preferences.getaudiooptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - method: PUT name: updateaudiooptions description: Update Audio Options call: meeting-preferences.updateaudiooptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/personalmeetingroom name: meetingpreferences-personalmeetingroom description: REST surface for meetingPreferences-personalMeetingRoom. operations: - method: GET name: getpersonalmeetingroomoptions description: Get Personal Meeting Room Options call: meeting-preferences.getpersonalmeetingroomoptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - method: PUT name: updatepersonalmeetingroomoptions description: Update Personal Meeting Room Options call: meeting-preferences.updatepersonalmeetingroomoptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/schedulingoptions name: meetingpreferences-schedulingoptions description: REST surface for meetingPreferences-schedulingOptions. operations: - method: GET name: getschedulingoptions description: Get Scheduling Options call: meeting-preferences.getschedulingoptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - method: PUT name: updateschedulingoptions description: Update Scheduling Options call: meeting-preferences.updateschedulingoptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/schedulingoptions/delegateemails/delete name: meetingpreferences-schedulingoptions-delegateemails-delete description: REST surface for meetingPreferences-schedulingOptions-delegateEmails-delete. operations: - method: POST name: deletedelegateemails description: Delete Delegate Emails call: meeting-preferences.deletedelegateemails with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/schedulingoptions/delegateemails/insert name: meetingpreferences-schedulingoptions-delegateemails-insert description: REST surface for meetingPreferences-schedulingOptions-delegateEmails-insert. operations: - method: POST name: insertdelegateemails description: Insert Delegate Emails call: meeting-preferences.insertdelegateemails with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/sites name: meetingpreferences-sites description: REST surface for meetingPreferences-sites. operations: - method: GET name: getsitelist description: Get Site List call: meeting-preferences.getsitelist with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - method: PUT name: updatedefaultsite description: Update Default Site call: meeting-preferences.updatedefaultsite with: defaultSite: rest.defaultSite userEmail: rest.userEmail body: rest.body outputParameters: - type: object mapping: $. - path: /v1/meetingpreferences/video name: meetingpreferences-video description: REST surface for meetingPreferences-video. operations: - method: GET name: getvideooptions description: Get Video Options call: meeting-preferences.getvideooptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl outputParameters: - type: object mapping: $. - method: PUT name: updatevideooptions description: Update Video Options call: meeting-preferences.updatevideooptions with: userEmail: rest.userEmail siteUrl: rest.siteUrl body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: meeting-preferences-mcp port: 9090 transport: http description: MCP adapter for Webex Meetings — Preferences. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: batch-refresh-personal-meeting-room description: Batch Refresh Personal Meeting Room ID hints: readOnly: false destructive: false idempotent: false call: meeting-preferences.batchrefreshpersonalmeetingroomid with: body: tools.body outputParameters: - type: object mapping: $. - name: get-meeting-preference-details description: Get Meeting Preference Details hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getmeetingpreferencedetails with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: get-audio-options description: Get Audio Options hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getaudiooptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: update-audio-options description: Update Audio Options hints: readOnly: false destructive: false idempotent: true call: meeting-preferences.updateaudiooptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $. - name: get-personal-meeting-room-options description: Get Personal Meeting Room Options hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getpersonalmeetingroomoptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: update-personal-meeting-room-options description: Update Personal Meeting Room Options hints: readOnly: false destructive: false idempotent: true call: meeting-preferences.updatepersonalmeetingroomoptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $. - name: get-scheduling-options description: Get Scheduling Options hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getschedulingoptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: update-scheduling-options description: Update Scheduling Options hints: readOnly: false destructive: false idempotent: true call: meeting-preferences.updateschedulingoptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $. - name: delete-delegate-emails description: Delete Delegate Emails hints: readOnly: false destructive: false idempotent: false call: meeting-preferences.deletedelegateemails with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $. - name: insert-delegate-emails description: Insert Delegate Emails hints: readOnly: false destructive: false idempotent: false call: meeting-preferences.insertdelegateemails with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $. - name: get-site-list description: Get Site List hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getsitelist with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: update-default-site description: Update Default Site hints: readOnly: false destructive: false idempotent: true call: meeting-preferences.updatedefaultsite with: defaultSite: tools.defaultSite userEmail: tools.userEmail body: tools.body outputParameters: - type: object mapping: $. - name: get-video-options description: Get Video Options hints: readOnly: true destructive: false idempotent: true call: meeting-preferences.getvideooptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl outputParameters: - type: object mapping: $. - name: update-video-options description: Update Video Options hints: readOnly: false destructive: false idempotent: true call: meeting-preferences.updatevideooptions with: userEmail: tools.userEmail siteUrl: tools.siteUrl body: tools.body outputParameters: - type: object mapping: $.