naftiko: 1.0.0-alpha2 info: label: QuantCDN API — AI Sessions description: 'QuantCDN API — AI Sessions. 6 operations. Lead operation: List chat sessions with multi-tenant filtering. Self-contained Naftiko capability covering one Quantcdn business surface.' tags: - Quantcdn - AI Sessions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: QUANTCDN_API_KEY: QUANTCDN_API_KEY capability: consumes: - type: http namespace: quantcdn-ai-sessions baseUri: https://dashboard.quantcdn.io description: QuantCDN API — AI Sessions business capability. Self-contained, no shared references. resources: - name: api-v3-organizations-organisation-ai-sessions path: /api/v3/organizations/{organisation}/ai/sessions operations: - name: listaisessions method: GET description: List chat sessions with multi-tenant filtering outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: userId in: query type: string description: Filter sessions by user ID - name: sessionGroup in: query type: string description: Filter by session group. Returns only sessions matching the specified group. - name: limit in: query type: integer description: Maximum number of sessions to return (default 50, max 100) - name: offset in: query type: integer description: Offset for pagination - name: model in: query type: string description: Filter by model ID - name: createaisession method: POST description: Create a new chat session with multi-tenant isolation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v3-organizations-organisation-ai-sessions-sessionId path: /api/v3/organizations/{organisation}/ai/sessions/{sessionId} operations: - name: deleteaisession method: DELETE description: Delete a chat session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: sessionId in: path type: string description: The session ID required: true - name: getaisession method: GET description: Get a specific chat session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: sessionId in: path type: string description: The session ID required: true - name: updateaisession method: PUT description: Update Session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: sessionId in: path type: string description: The session ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v3-organizations-organisation-ai-sessions-sessionId-extend path: /api/v3/organizations/{organisation}/ai/sessions/{sessionId}/extend operations: - name: extendaisession method: PUT description: Extend Session Expiration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organisation in: path type: string description: The organisation ID required: true - name: sessionId in: path type: string description: The session ID required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.QUANTCDN_API_KEY}}' exposes: - type: rest namespace: quantcdn-ai-sessions-rest port: 8080 description: REST adapter for QuantCDN API — AI Sessions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v3/organizations/{organisation}/ai/sessions name: api-v3-organizations-organisation-ai-sessions description: REST surface for api-v3-organizations-organisation-ai-sessions. operations: - method: GET name: listaisessions description: List chat sessions with multi-tenant filtering call: quantcdn-ai-sessions.listaisessions with: organisation: rest.organisation userId: rest.userId sessionGroup: rest.sessionGroup limit: rest.limit offset: rest.offset model: rest.model outputParameters: - type: object mapping: $. - method: POST name: createaisession description: Create a new chat session with multi-tenant isolation call: quantcdn-ai-sessions.createaisession with: organisation: rest.organisation body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v3/organizations/{organisation}/ai/sessions/{sessionid} name: api-v3-organizations-organisation-ai-sessions-sessionid description: REST surface for api-v3-organizations-organisation-ai-sessions-sessionId. operations: - method: DELETE name: deleteaisession description: Delete a chat session call: quantcdn-ai-sessions.deleteaisession with: organisation: rest.organisation sessionId: rest.sessionId outputParameters: - type: object mapping: $. - method: GET name: getaisession description: Get a specific chat session call: quantcdn-ai-sessions.getaisession with: organisation: rest.organisation sessionId: rest.sessionId outputParameters: - type: object mapping: $. - method: PUT name: updateaisession description: Update Session call: quantcdn-ai-sessions.updateaisession with: organisation: rest.organisation sessionId: rest.sessionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v3/organizations/{organisation}/ai/sessions/{sessionid}/extend name: api-v3-organizations-organisation-ai-sessions-sessionid-extend description: REST surface for api-v3-organizations-organisation-ai-sessions-sessionId-extend. operations: - method: PUT name: extendaisession description: Extend Session Expiration call: quantcdn-ai-sessions.extendaisession with: organisation: rest.organisation sessionId: rest.sessionId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: quantcdn-ai-sessions-mcp port: 9090 transport: http description: MCP adapter for QuantCDN API — AI Sessions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-chat-sessions-multi-tenant description: List chat sessions with multi-tenant filtering hints: readOnly: true destructive: false idempotent: true call: quantcdn-ai-sessions.listaisessions with: organisation: tools.organisation userId: tools.userId sessionGroup: tools.sessionGroup limit: tools.limit offset: tools.offset model: tools.model outputParameters: - type: object mapping: $. - name: create-new-chat-session-multi description: Create a new chat session with multi-tenant isolation hints: readOnly: false destructive: false idempotent: false call: quantcdn-ai-sessions.createaisession with: organisation: tools.organisation body: tools.body outputParameters: - type: object mapping: $. - name: delete-chat-session description: Delete a chat session hints: readOnly: false destructive: true idempotent: true call: quantcdn-ai-sessions.deleteaisession with: organisation: tools.organisation sessionId: tools.sessionId outputParameters: - type: object mapping: $. - name: get-specific-chat-session description: Get a specific chat session hints: readOnly: true destructive: false idempotent: true call: quantcdn-ai-sessions.getaisession with: organisation: tools.organisation sessionId: tools.sessionId outputParameters: - type: object mapping: $. - name: update-session description: Update Session hints: readOnly: false destructive: false idempotent: true call: quantcdn-ai-sessions.updateaisession with: organisation: tools.organisation sessionId: tools.sessionId body: tools.body outputParameters: - type: object mapping: $. - name: extend-session-expiration description: Extend Session Expiration hints: readOnly: false destructive: false idempotent: true call: quantcdn-ai-sessions.extendaisession with: organisation: tools.organisation sessionId: tools.sessionId body: tools.body outputParameters: - type: object mapping: $.