naftiko: 1.0.0-alpha2 info: label: Pod API — Users description: 'Pod API — Users. 6 operations. Lead operation: Search for users by name or email address. Self-contained Naftiko capability covering one Finos business surface.' tags: - Finos - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FINOS_API_KEY: FINOS_API_KEY capability: consumes: - type: http namespace: symphony-pod-users baseUri: https://yourpodURL.symphony.com/pod description: Pod API — Users business capability. Self-contained, no shared references. resources: - name: v1-user-search path: /v1/user/search operations: - name: post method: POST description: Search for users by name or email address outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: skip in: query type: integer description: number of records to skip - name: limit in: query type: integer description: Max number of records to return. If no value is provided, 50 is the default. - name: local in: query type: boolean description: If true then a local DB search will be performed and only local pod users will be - name: sessionToken in: header type: string description: Session authentication token. required: true - name: searchRequest in: body type: string description: search criteria required: true - name: v1-users-uid-sessions path: /v1/users/{uid}/sessions operations: - name: get method: GET description: Lists all sessions for the user identified by {uid}. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: The identifier of the user whose sessions are to be listed. required: true - name: sessionToken in: header type: string description: Session authentication token. required: true - name: v1-users-uid-sessions-logout path: /v1/users/{uid}/sessions/logout operations: - name: post method: POST description: Ends all sessions for the user identified by {uid}. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: The identifier of the user whose sessions are to be terminated. required: true - name: sessionToken in: header type: string description: Session authentication token. required: true - name: v1-users-uid-sessions-sid-logout path: /v1/users/{uid}/sessions/{sid}/logout operations: - name: post method: POST description: Ends the session identified by {sid} for the user with the identifier {uid}. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: string description: The identifier of the user who owns the session to be terminated. required: true - name: sid in: path type: string description: The identifier of the session to be terminated. required: true - name: sessionToken in: header type: string description: Session authentication token. required: true - name: v2-user path: /v2/user operations: - name: get method: GET description: Get user information outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: query type: integer description: User ID as a decimal integer - name: email in: query type: string description: Email address - name: username in: query type: string description: login user name - name: local in: query type: boolean description: If true then a local DB search will be performed and only local pod users will be - name: sessionToken in: header type: string description: Session authentication token. required: true - name: v3-users path: /v3/users operations: - name: get method: GET description: Search users by emails or ids. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: query type: string description: User IDs as a list of decimal integers separated by comma - name: email in: query type: string description: List of email addresses separated by comma - name: username in: query type: string description: List of username separated by comma - name: local in: query type: boolean description: If true then a local DB search will be performed and only local pod users will be - name: active in: query type: boolean description: If not set all user status will be returned, - name: sessionToken in: header type: string description: Session authentication token. required: true exposes: - type: rest namespace: symphony-pod-users-rest port: 8080 description: REST adapter for Pod API — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/user/search name: v1-user-search description: REST surface for v1-user-search. operations: - method: POST name: post description: Search for users by name or email address call: symphony-pod-users.post with: skip: rest.skip limit: rest.limit local: rest.local sessionToken: rest.sessionToken searchRequest: rest.searchRequest outputParameters: - type: object mapping: $. - path: /v1/v1/users/{uid}/sessions name: v1-users-uid-sessions description: REST surface for v1-users-uid-sessions. operations: - method: GET name: get description: Lists all sessions for the user identified by {uid}. call: symphony-pod-users.get with: uid: rest.uid sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - path: /v1/v1/users/{uid}/sessions/logout name: v1-users-uid-sessions-logout description: REST surface for v1-users-uid-sessions-logout. operations: - method: POST name: post description: Ends all sessions for the user identified by {uid}. call: symphony-pod-users.post with: uid: rest.uid sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - path: /v1/v1/users/{uid}/sessions/{sid}/logout name: v1-users-uid-sessions-sid-logout description: REST surface for v1-users-uid-sessions-sid-logout. operations: - method: POST name: post description: Ends the session identified by {sid} for the user with the identifier {uid}. call: symphony-pod-users.post with: uid: rest.uid sid: rest.sid sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - path: /v1/v2/user name: v2-user description: REST surface for v2-user. operations: - method: GET name: get description: Get user information call: symphony-pod-users.get with: uid: rest.uid email: rest.email username: rest.username local: rest.local sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - path: /v1/v3/users name: v3-users description: REST surface for v3-users. operations: - method: GET name: get description: Search users by emails or ids. call: symphony-pod-users.get with: uid: rest.uid email: rest.email username: rest.username local: rest.local active: rest.active sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - type: mcp namespace: symphony-pod-users-mcp port: 9090 transport: http description: MCP adapter for Pod API — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: search-users-name-email-address description: Search for users by name or email address hints: readOnly: true destructive: false idempotent: false call: symphony-pod-users.post with: skip: tools.skip limit: tools.limit local: tools.local sessionToken: tools.sessionToken searchRequest: tools.searchRequest outputParameters: - type: object mapping: $. - name: lists-all-sessions-user-identified description: Lists all sessions for the user identified by {uid}. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-users.get with: uid: tools.uid sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: ends-all-sessions-user-identified description: Ends all sessions for the user identified by {uid}. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-users.post with: uid: tools.uid sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: ends-session-identified-sid-user description: Ends the session identified by {sid} for the user with the identifier {uid}. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-users.post with: uid: tools.uid sid: tools.sid sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: get-user-information description: Get user information hints: readOnly: true destructive: false idempotent: true call: symphony-pod-users.get with: uid: tools.uid email: tools.email username: tools.username local: tools.local sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: search-users-emails-ids description: Search users by emails or ids. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-users.get with: uid: tools.uid email: tools.email username: tools.username local: tools.local active: tools.active sessionToken: tools.sessionToken outputParameters: - type: object mapping: $.