naftiko: 1.0.0-alpha2 info: label: Webex Admin — Groups description: 'Webex Admin — Groups. 6 operations. Lead operation: Create a Group. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBEX_API_KEY: WEBEX_API_KEY capability: consumes: - type: http namespace: admin-groups baseUri: '' description: Webex Admin — Groups business capability. Self-contained, no shared references. resources: - name: groups path: /groups operations: - name: createagroup method: POST description: Create a Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: listandsearchgroups method: GET description: List and Search Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: query type: string description: List groups in this organization. Only admin users of another organization (such as partners) may use this parameter. - name: filter in: query type: string description: Searches the group by `displayName` with an operator and a value. The available operators are `eq` (equal) and `sw` (starts with). Only `displayName` can be u - name: attributes in: query type: string description: The attributes to return. - name: sortBy in: query type: string description: Sort the results based by group `displayName`. - name: sortOrder in: query type: string description: Sort results alphabetically by group display name, in ascending or descending order. - name: includeMembers in: query type: boolean description: Optionally return group members in the response. The maximum number of members returned is 500. - name: startIndex in: query type: number description: The index to start for group pagination. - name: count in: query type: number description: Specifies the desired number of search results per page. - name: groups-groupId path: /groups/{groupId} operations: - name: updateagroup method: PATCH description: Update a Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: getgroupdetails method: GET description: Get Group Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: includeMembers in: query type: boolean description: Include the members as part of the response. - name: deleteagroup method: DELETE description: Delete a Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: groups-groupId-members path: /groups/{groupId}/members operations: - name: getgroupmembers method: GET description: Get Group Members outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: startIndex in: query type: number description: The index to start for group pagination. - name: count in: query type: number description: Non-negative integer that specifies the desired number of search results per page. Maximum value for the count is 500. authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: admin-groups-rest port: 8080 description: REST adapter for Webex Admin — Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/groups name: groups description: REST surface for groups. operations: - method: POST name: createagroup description: Create a Group call: admin-groups.createagroup with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listandsearchgroups description: List and Search Groups call: admin-groups.listandsearchgroups with: orgId: rest.orgId filter: rest.filter attributes: rest.attributes sortBy: rest.sortBy sortOrder: rest.sortOrder includeMembers: rest.includeMembers startIndex: rest.startIndex count: rest.count outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid} name: groups-groupid description: REST surface for groups-groupId. operations: - method: PATCH name: updateagroup description: Update a Group call: admin-groups.updateagroup with: groupId: rest.groupId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getgroupdetails description: Get Group Details call: admin-groups.getgroupdetails with: groupId: rest.groupId includeMembers: rest.includeMembers outputParameters: - type: object mapping: $. - method: DELETE name: deleteagroup description: Delete a Group call: admin-groups.deleteagroup with: groupId: rest.groupId outputParameters: - type: object mapping: $. - path: /v1/groups/{groupid}/members name: groups-groupid-members description: REST surface for groups-groupId-members. operations: - method: GET name: getgroupmembers description: Get Group Members call: admin-groups.getgroupmembers with: groupId: rest.groupId startIndex: rest.startIndex count: rest.count outputParameters: - type: object mapping: $. - type: mcp namespace: admin-groups-mcp port: 9090 transport: http description: MCP adapter for Webex Admin — Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-group description: Create a Group hints: readOnly: false destructive: false idempotent: false call: admin-groups.createagroup with: body: tools.body outputParameters: - type: object mapping: $. - name: list-and-search-groups description: List and Search Groups hints: readOnly: true destructive: false idempotent: true call: admin-groups.listandsearchgroups with: orgId: tools.orgId filter: tools.filter attributes: tools.attributes sortBy: tools.sortBy sortOrder: tools.sortOrder includeMembers: tools.includeMembers startIndex: tools.startIndex count: tools.count outputParameters: - type: object mapping: $. - name: update-group description: Update a Group hints: readOnly: false destructive: false idempotent: true call: admin-groups.updateagroup with: groupId: tools.groupId body: tools.body outputParameters: - type: object mapping: $. - name: get-group-details description: Get Group Details hints: readOnly: true destructive: false idempotent: true call: admin-groups.getgroupdetails with: groupId: tools.groupId includeMembers: tools.includeMembers outputParameters: - type: object mapping: $. - name: delete-group description: Delete a Group hints: readOnly: false destructive: true idempotent: true call: admin-groups.deleteagroup with: groupId: tools.groupId outputParameters: - type: object mapping: $. - name: get-group-members description: Get Group Members hints: readOnly: true destructive: false idempotent: true call: admin-groups.getgroupmembers with: groupId: tools.groupId startIndex: tools.startIndex count: tools.count outputParameters: - type: object mapping: $.