naftiko: 1.0.0-alpha2 info: label: Gremlin API — users description: 'Gremlin API — users. 13 operations. Lead operation: Get all users.. Self-contained Naftiko capability covering one Gremlin business surface.' tags: - Gremlin - users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GREMLIN_API_KEY: GREMLIN_API_KEY capability: consumes: - type: http namespace: gremlin-users baseUri: https://api.gremlin.com/v1 description: Gremlin API — users business capability. Self-contained, no shared references. resources: - name: users path: /users operations: - name: all4 method: GET description: Get all users. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: query type: string description: Required when using company session token. required: true - name: addusertoteam method: POST description: Add an existing user to the target team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: query type: string description: Required when using company session token. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: users-active path: /users/active operations: - name: active4 method: GET description: Get all active users. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: teamId in: query type: string description: Required when using company session token. required: true - name: users-active-paged path: /users/active/paged operations: - name: activepaginated method: GET description: Get all active users paginated. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pageSize in: query type: integer description: This value determines how many results will be returned per call. - name: pageToken in: query type: string description: Token corresponding to the last page of active company users for team retrieved. Pass the pageToken to get the next page of active company users for team - name: teamId in: query type: string description: Required when using company session token. required: true - name: users-invite path: /users/invite operations: - name: invite1 method: POST description: Invite a user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: users-invite-email path: /users/invite/{email} operations: - name: revokeinvite method: DELETE description: Revoke a pending user invite. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: email in: path type: string required: true - name: users-paged path: /users/paged operations: - name: allpaginated method: GET description: Get all users paginated. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pageSize in: query type: integer description: This value determines how many results will be returned per call. - name: pageToken in: query type: string description: Token corresponding to the last page of company users for team retrieved. Pass the pageToken to get the next page of company users for team - name: teamId in: query type: string description: Required when using company session token. required: true - name: users-renew-rbac path: /users/renew/rbac operations: - name: rbacauthrenew method: POST description: Renew authorization. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: users-self path: /users/self operations: - name: getself method: GET description: Get information about the authenticated user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: rbacupdateself method: PATCH description: Update an existing users info. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users-sessions path: /users/sessions operations: - name: refreshsessions method: GET description: Returns the updated user sessions list for the currently authenticated user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: getCompanySession in: query type: boolean - name: users-email path: /users/{email} operations: - name: update2 method: PUT description: Update an existing user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: email in: path type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: revokeorremovefromteam method: DELETE description: Deactivate a user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: email in: path type: string required: true - name: teamId in: query type: string description: Required when using company session token. required: true exposes: - type: rest namespace: gremlin-users-rest port: 8080 description: REST adapter for Gremlin API — users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users name: users description: REST surface for users. operations: - method: GET name: all4 description: Get all users. call: gremlin-users.all4 with: teamId: rest.teamId outputParameters: - type: object mapping: $. - method: POST name: addusertoteam description: Add an existing user to the target team call: gremlin-users.addusertoteam with: teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/active name: users-active description: REST surface for users-active. operations: - method: GET name: active4 description: Get all active users. call: gremlin-users.active4 with: teamId: rest.teamId outputParameters: - type: object mapping: $. - path: /v1/users/active/paged name: users-active-paged description: REST surface for users-active-paged. operations: - method: GET name: activepaginated description: Get all active users paginated. call: gremlin-users.activepaginated with: pageSize: rest.pageSize pageToken: rest.pageToken teamId: rest.teamId outputParameters: - type: object mapping: $. - path: /v1/users/invite name: users-invite description: REST surface for users-invite. operations: - method: POST name: invite1 description: Invite a user. call: gremlin-users.invite1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/invite/{email} name: users-invite-email description: REST surface for users-invite-email. operations: - method: DELETE name: revokeinvite description: Revoke a pending user invite. call: gremlin-users.revokeinvite with: email: rest.email outputParameters: - type: object mapping: $. - path: /v1/users/paged name: users-paged description: REST surface for users-paged. operations: - method: GET name: allpaginated description: Get all users paginated. call: gremlin-users.allpaginated with: pageSize: rest.pageSize pageToken: rest.pageToken teamId: rest.teamId outputParameters: - type: object mapping: $. - path: /v1/users/renew/rbac name: users-renew-rbac description: REST surface for users-renew-rbac. operations: - method: POST name: rbacauthrenew description: Renew authorization. call: gremlin-users.rbacauthrenew with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/self name: users-self description: REST surface for users-self. operations: - method: GET name: getself description: Get information about the authenticated user call: gremlin-users.getself outputParameters: - type: object mapping: $. - method: PATCH name: rbacupdateself description: Update an existing users info. call: gremlin-users.rbacupdateself with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/sessions name: users-sessions description: REST surface for users-sessions. operations: - method: GET name: refreshsessions description: Returns the updated user sessions list for the currently authenticated user. call: gremlin-users.refreshsessions with: getCompanySession: rest.getCompanySession outputParameters: - type: object mapping: $. - path: /v1/users/{email} name: users-email description: REST surface for users-email. operations: - method: PUT name: update2 description: Update an existing user. call: gremlin-users.update2 with: email: rest.email teamId: rest.teamId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: revokeorremovefromteam description: Deactivate a user. call: gremlin-users.revokeorremovefromteam with: email: rest.email teamId: rest.teamId outputParameters: - type: object mapping: $. - type: mcp namespace: gremlin-users-mcp port: 9090 transport: http description: MCP adapter for Gremlin API — users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-users description: Get all users. hints: readOnly: true destructive: false idempotent: true call: gremlin-users.all4 with: teamId: tools.teamId outputParameters: - type: object mapping: $. - name: add-existing-user-target-team description: Add an existing user to the target team hints: readOnly: true destructive: false idempotent: false call: gremlin-users.addusertoteam with: teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: get-all-active-users description: Get all active users. hints: readOnly: true destructive: false idempotent: true call: gremlin-users.active4 with: teamId: tools.teamId outputParameters: - type: object mapping: $. - name: get-all-active-users-paginated description: Get all active users paginated. hints: readOnly: true destructive: false idempotent: true call: gremlin-users.activepaginated with: pageSize: tools.pageSize pageToken: tools.pageToken teamId: tools.teamId outputParameters: - type: object mapping: $. - name: invite-user description: Invite a user. hints: readOnly: false destructive: false idempotent: false call: gremlin-users.invite1 with: body: tools.body outputParameters: - type: object mapping: $. - name: revoke-pending-user-invite description: Revoke a pending user invite. hints: readOnly: false destructive: true idempotent: true call: gremlin-users.revokeinvite with: email: tools.email outputParameters: - type: object mapping: $. - name: get-all-users-paginated description: Get all users paginated. hints: readOnly: true destructive: false idempotent: true call: gremlin-users.allpaginated with: pageSize: tools.pageSize pageToken: tools.pageToken teamId: tools.teamId outputParameters: - type: object mapping: $. - name: renew-authorization description: Renew authorization. hints: readOnly: false destructive: false idempotent: false call: gremlin-users.rbacauthrenew with: body: tools.body outputParameters: - type: object mapping: $. - name: get-information-about-authenticated-user description: Get information about the authenticated user hints: readOnly: true destructive: false idempotent: true call: gremlin-users.getself outputParameters: - type: object mapping: $. - name: update-existing-users-info description: Update an existing users info. hints: readOnly: false destructive: false idempotent: true call: gremlin-users.rbacupdateself with: body: tools.body outputParameters: - type: object mapping: $. - name: returns-updated-user-sessions-list description: Returns the updated user sessions list for the currently authenticated user. hints: readOnly: true destructive: false idempotent: true call: gremlin-users.refreshsessions with: getCompanySession: tools.getCompanySession outputParameters: - type: object mapping: $. - name: update-existing-user description: Update an existing user. hints: readOnly: false destructive: false idempotent: true call: gremlin-users.update2 with: email: tools.email teamId: tools.teamId body: tools.body outputParameters: - type: object mapping: $. - name: deactivate-user description: Deactivate a user. hints: readOnly: false destructive: true idempotent: true call: gremlin-users.revokeorremovefromteam with: email: tools.email teamId: tools.teamId outputParameters: - type: object mapping: $.