naftiko: 1.0.0-alpha2 info: label: Pod API — Presence description: 'Pod API — Presence. 9 operations. Lead operation: Create Presence status feed.. Self-contained Naftiko capability covering one Finos business surface.' tags: - Finos - Presence 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-presence baseUri: https://yourpodURL.symphony.com/pod description: Pod API — Presence business capability. Self-contained, no shared references. resources: - name: v1-presence-feed-create path: /v1/presence/feed/create operations: - name: post method: POST description: Create Presence status feed. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: v1-presence-feed-feedId-delete path: /v1/presence/feed/{feedId}/delete operations: - name: post method: POST description: Delete a presence status feed. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: feedId in: path type: string description: Presence feed ID. required: true - name: v1-presence-feed-feedId-read path: /v1/presence/feed/{feedId}/read operations: - name: get method: GET description: Read a presence status feed. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: feedId in: path type: string description: Presence feed ID. required: true - name: v1-user-presence-register path: /v1/user/presence/register operations: - name: post method: POST description: Register interest in a user's presence status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: uidList in: body type: string description: List of (integer) User IDs of users whose presence to query required: true - name: v2-user-presence path: /v2/user/presence operations: - name: get method: GET description: Get presence information about the requesting user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: post method: POST description: Set the presence of the requesting user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: soft in: query type: boolean description: If true, the user's current status is taken into consideration. If the user is currently OFFLINE, - name: presence in: body type: string required: true - name: v2-users-presence path: /v2/users/presence operations: - name: get method: GET description: Get presence information about all company (pod) users. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: lastUserId in: query type: integer description: Last user ID retrieved. Used for paging; if provided, results will skip users with IDs less than this parameter. - name: limit in: query type: integer description: Max number of records to return. If no value is provided, 1000 is the default. The maximum supported value is 5000. - name: v3-user-presence path: /v3/user/presence operations: - name: post method: POST description: Set presence information for a particular user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sessionToken in: header type: string description: Session authentication token. required: true - name: soft in: query type: boolean description: If true, the user's current status is taken into consideration. If the user is currently OFFLINE, - name: presence in: body type: string required: true - name: v3-user-uid-presence path: /v3/user/{uid}/presence operations: - name: get method: GET description: Get presence information about a particular user. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uid in: path type: integer description: User ID as a decimal integer required: true - name: local in: query type: boolean description: If true, a local query will be performed and the presence will be - name: sessionToken in: header type: string description: Session authentication token. required: true exposes: - type: rest namespace: symphony-pod-presence-rest port: 8080 description: REST adapter for Pod API — Presence. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/presence/feed/create name: v1-presence-feed-create description: REST surface for v1-presence-feed-create. operations: - method: POST name: post description: Create Presence status feed. call: symphony-pod-presence.post with: sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - path: /v1/v1/presence/feed/{feedid}/delete name: v1-presence-feed-feedid-delete description: REST surface for v1-presence-feed-feedId-delete. operations: - method: POST name: post description: Delete a presence status feed. call: symphony-pod-presence.post with: sessionToken: rest.sessionToken feedId: rest.feedId outputParameters: - type: object mapping: $. - path: /v1/v1/presence/feed/{feedid}/read name: v1-presence-feed-feedid-read description: REST surface for v1-presence-feed-feedId-read. operations: - method: GET name: get description: Read a presence status feed. call: symphony-pod-presence.get with: sessionToken: rest.sessionToken feedId: rest.feedId outputParameters: - type: object mapping: $. - path: /v1/v1/user/presence/register name: v1-user-presence-register description: REST surface for v1-user-presence-register. operations: - method: POST name: post description: Register interest in a user's presence status call: symphony-pod-presence.post with: sessionToken: rest.sessionToken uidList: rest.uidList outputParameters: - type: object mapping: $. - path: /v1/v2/user/presence name: v2-user-presence description: REST surface for v2-user-presence. operations: - method: GET name: get description: Get presence information about the requesting user. call: symphony-pod-presence.get with: sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - method: POST name: post description: Set the presence of the requesting user. call: symphony-pod-presence.post with: sessionToken: rest.sessionToken soft: rest.soft presence: rest.presence outputParameters: - type: object mapping: $. - path: /v1/v2/users/presence name: v2-users-presence description: REST surface for v2-users-presence. operations: - method: GET name: get description: Get presence information about all company (pod) users. call: symphony-pod-presence.get with: sessionToken: rest.sessionToken lastUserId: rest.lastUserId limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/v3/user/presence name: v3-user-presence description: REST surface for v3-user-presence. operations: - method: POST name: post description: Set presence information for a particular user. call: symphony-pod-presence.post with: sessionToken: rest.sessionToken soft: rest.soft presence: rest.presence outputParameters: - type: object mapping: $. - path: /v1/v3/user/{uid}/presence name: v3-user-uid-presence description: REST surface for v3-user-uid-presence. operations: - method: GET name: get description: Get presence information about a particular user. call: symphony-pod-presence.get with: uid: rest.uid local: rest.local sessionToken: rest.sessionToken outputParameters: - type: object mapping: $. - type: mcp namespace: symphony-pod-presence-mcp port: 9090 transport: http description: MCP adapter for Pod API — Presence. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-presence-status-feed description: Create Presence status feed. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-presence.post with: sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: delete-presence-status-feed description: Delete a presence status feed. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-presence.post with: sessionToken: tools.sessionToken feedId: tools.feedId outputParameters: - type: object mapping: $. - name: read-presence-status-feed description: Read a presence status feed. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-presence.get with: sessionToken: tools.sessionToken feedId: tools.feedId outputParameters: - type: object mapping: $. - name: register-interest-user-s-presence-status description: Register interest in a user's presence status hints: readOnly: false destructive: false idempotent: false call: symphony-pod-presence.post with: sessionToken: tools.sessionToken uidList: tools.uidList outputParameters: - type: object mapping: $. - name: get-presence-information-about-requesting description: Get presence information about the requesting user. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-presence.get with: sessionToken: tools.sessionToken outputParameters: - type: object mapping: $. - name: set-presence-requesting-user description: Set the presence of the requesting user. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-presence.post with: sessionToken: tools.sessionToken soft: tools.soft presence: tools.presence outputParameters: - type: object mapping: $. - name: get-presence-information-about-all description: Get presence information about all company (pod) users. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-presence.get with: sessionToken: tools.sessionToken lastUserId: tools.lastUserId limit: tools.limit outputParameters: - type: object mapping: $. - name: set-presence-information-particular-user description: Set presence information for a particular user. hints: readOnly: false destructive: false idempotent: false call: symphony-pod-presence.post with: sessionToken: tools.sessionToken soft: tools.soft presence: tools.presence outputParameters: - type: object mapping: $. - name: get-presence-information-about-particular description: Get presence information about a particular user. hints: readOnly: true destructive: false idempotent: true call: symphony-pod-presence.get with: uid: tools.uid local: tools.local sessionToken: tools.sessionToken outputParameters: - type: object mapping: $.