naftiko: 1.0.0-alpha2 info: label: Webex Admin — SCIM 2 Groups description: 'Webex Admin — SCIM 2 Groups. 7 operations. Lead operation: Create a group. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - SCIM 2 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-scim-2-groups baseUri: '' description: Webex Admin — SCIM 2 Groups business capability. Self-contained, no shared references. resources: - name: identity-scim-orgId-v2-Groups path: /identity/scim/{orgId}/v2/Groups operations: - name: createagroup method: POST description: Create a group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: searchgroups method: GET description: Search groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - name: filter in: query type: string description: The url encoded filter. The example content is 'displayName Eq "group1@example.com" or displayName Eq "group2@example.com"'. - name: attributes in: query type: string description: The attributes to return. - name: excludedAttributes in: query type: string description: Attributes to be excluded from the return. - name: sortBy in: query type: string description: A string indicating the attribute whose value be used to order the returned responses. Now we only allow `displayName, id, meta.lastModified` to sort. - name: sortOrder in: query type: string description: A string indicating the order in which the `sortBy` parameter is applied. Allowed values are `ascending` and `descending`. - name: startIndex in: query type: number description: An integer indicating the 1-based index of the first query result. The default is 1. - name: count in: query type: number description: An integer indicating the desired maximum number of query results per page. The default is 100. - name: includeMembers in: query type: boolean description: Default "false". If false, no members returned. - name: memberType in: query type: string description: 'Filter the members by member type. Sample data: `user`, `machine`, `group`.' - name: identity-scim-orgId-v2-Groups-groupId path: /identity/scim/{orgId}/v2/Groups/{groupId} operations: - name: getagroup method: GET description: Get a group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: excludedAttributes in: query type: string description: Attributes to be excluded from the return. - name: updateagroupwithput method: PUT description: Update a group with PUT outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - 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: updateagroupwithpatch method: PATCH description: Update a group with PATCH outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - 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: deleteagroup method: DELETE description: Delete a group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - name: groupId in: path type: string description: A unique identifier for the group. required: true - name: identity-scim-orgId-v2-Groups-groupId-Members path: /identity/scim/{orgId}/v2/Groups/{groupId}/Members operations: - name: getgroupmembers method: GET description: Get Group Members outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: The ID of the organization to which this group belongs. If not specified, the organization ID from the OAuth token is used. required: true - 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. The maximum value for the count is 500. - name: memberType in: query type: string description: 'Filter the members by member type. Sample data: `user`, `machine`, `group`.' authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: admin-scim-2-groups-rest port: 8080 description: REST adapter for Webex Admin — SCIM 2 Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/identity/scim/{orgid}/v2/groups name: identity-scim-orgid-v2-groups description: REST surface for identity-scim-orgId-v2-Groups. operations: - method: POST name: createagroup description: Create a group call: admin-scim-2-groups.createagroup with: orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: searchgroups description: Search groups call: admin-scim-2-groups.searchgroups with: orgId: rest.orgId filter: rest.filter attributes: rest.attributes excludedAttributes: rest.excludedAttributes sortBy: rest.sortBy sortOrder: rest.sortOrder startIndex: rest.startIndex count: rest.count includeMembers: rest.includeMembers memberType: rest.memberType outputParameters: - type: object mapping: $. - path: /v1/identity/scim/{orgid}/v2/groups/{groupid} name: identity-scim-orgid-v2-groups-groupid description: REST surface for identity-scim-orgId-v2-Groups-groupId. operations: - method: GET name: getagroup description: Get a group call: admin-scim-2-groups.getagroup with: orgId: rest.orgId groupId: rest.groupId excludedAttributes: rest.excludedAttributes outputParameters: - type: object mapping: $. - method: PUT name: updateagroupwithput description: Update a group with PUT call: admin-scim-2-groups.updateagroupwithput with: orgId: rest.orgId groupId: rest.groupId body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateagroupwithpatch description: Update a group with PATCH call: admin-scim-2-groups.updateagroupwithpatch with: orgId: rest.orgId groupId: rest.groupId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteagroup description: Delete a group call: admin-scim-2-groups.deleteagroup with: orgId: rest.orgId groupId: rest.groupId outputParameters: - type: object mapping: $. - path: /v1/identity/scim/{orgid}/v2/groups/{groupid}/members name: identity-scim-orgid-v2-groups-groupid-members description: REST surface for identity-scim-orgId-v2-Groups-groupId-Members. operations: - method: GET name: getgroupmembers description: Get Group Members call: admin-scim-2-groups.getgroupmembers with: orgId: rest.orgId groupId: rest.groupId startIndex: rest.startIndex count: rest.count memberType: rest.memberType outputParameters: - type: object mapping: $. - type: mcp namespace: admin-scim-2-groups-mcp port: 9090 transport: http description: MCP adapter for Webex Admin — SCIM 2 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-scim-2-groups.createagroup with: orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: search-groups description: Search groups hints: readOnly: true destructive: false idempotent: true call: admin-scim-2-groups.searchgroups with: orgId: tools.orgId filter: tools.filter attributes: tools.attributes excludedAttributes: tools.excludedAttributes sortBy: tools.sortBy sortOrder: tools.sortOrder startIndex: tools.startIndex count: tools.count includeMembers: tools.includeMembers memberType: tools.memberType outputParameters: - type: object mapping: $. - name: get-group description: Get a group hints: readOnly: true destructive: false idempotent: true call: admin-scim-2-groups.getagroup with: orgId: tools.orgId groupId: tools.groupId excludedAttributes: tools.excludedAttributes outputParameters: - type: object mapping: $. - name: update-group-put description: Update a group with PUT hints: readOnly: false destructive: false idempotent: true call: admin-scim-2-groups.updateagroupwithput with: orgId: tools.orgId groupId: tools.groupId body: tools.body outputParameters: - type: object mapping: $. - name: update-group-patch description: Update a group with PATCH hints: readOnly: false destructive: false idempotent: true call: admin-scim-2-groups.updateagroupwithpatch with: orgId: tools.orgId groupId: tools.groupId body: tools.body outputParameters: - type: object mapping: $. - name: delete-group description: Delete a group hints: readOnly: false destructive: true idempotent: true call: admin-scim-2-groups.deleteagroup with: orgId: tools.orgId groupId: tools.groupId outputParameters: - type: object mapping: $. - name: get-group-members description: Get Group Members hints: readOnly: true destructive: false idempotent: true call: admin-scim-2-groups.getgroupmembers with: orgId: tools.orgId groupId: tools.groupId startIndex: tools.startIndex count: tools.count memberType: tools.memberType outputParameters: - type: object mapping: $.