naftiko: 1.0.0-alpha2 info: label: Welcome to Imentiv AI — Text Emotion API description: 'Welcome to Imentiv AI — Text Emotion API. 7 operations. Lead operation: List Texts. Self-contained Naftiko capability covering one Imentiv Ai business surface.' tags: - Imentiv Ai - Text Emotion API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: IMENTIV_AI_API_KEY: IMENTIV_AI_API_KEY capability: consumes: - type: http namespace: imentiv-ai-text-emotion-api baseUri: '' description: Welcome to Imentiv AI — Text Emotion API business capability. Self-contained, no shared references. resources: - name: v1-texts path: /v1/texts operations: - name: listtextsv1textsget method: GET description: List Texts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start_after in: query type: string description: The ID of the reference text from which to paginate forward/backward - name: page_size in: query type: integer description: 'Number of results to return (default: 10)' - name: direction in: query type: string description: 'Pagination direction: forward (default) or backward' - name: v1-texts-text_id path: /v1/texts/{text_id} operations: - name: gettextemotioninsightsv1textstextidget method: GET description: Get Text Emotion Insights outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text_id in: path type: string description: The unique ID of the text. required: true - name: deletetextv1textstextiddelete method: DELETE description: Delete Text outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text_id in: path type: string description: The unique text ID of the text. required: true - name: reprocesstextv1textstextidput method: PUT description: Reprocess Text outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text_id in: path type: string description: The unique ID of the text. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-texts-text_id-emotions path: /v1/texts/{text_id}/emotions operations: - name: edittextv1textstextidemotionsput method: PUT description: Edit Text outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text_id in: path type: string description: The unique text ID of the text. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-texts-text_id-report path: /v1/texts/{text_id}/report operations: - name: downloadtextemotionreportv1textstextidreportget method: GET description: Download Text Emotion Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text_id in: path type: string description: The unique ID of the text. required: true - name: v2-texts path: /v2/texts operations: - name: uploadtextv2textspost method: POST description: Upload Text outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: X-API-Key value: '{{env.IMENTIV_AI_API_KEY}}' placement: header exposes: - type: rest namespace: imentiv-ai-text-emotion-api-rest port: 8080 description: REST adapter for Welcome to Imentiv AI — Text Emotion API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/texts name: v1-texts description: REST surface for v1-texts. operations: - method: GET name: listtextsv1textsget description: List Texts call: imentiv-ai-text-emotion-api.listtextsv1textsget with: start_after: rest.start_after page_size: rest.page_size direction: rest.direction outputParameters: - type: object mapping: $. - path: /v1/v1/texts/{text-id} name: v1-texts-text-id description: REST surface for v1-texts-text_id. operations: - method: GET name: gettextemotioninsightsv1textstextidget description: Get Text Emotion Insights call: imentiv-ai-text-emotion-api.gettextemotioninsightsv1textstextidget with: text_id: rest.text_id outputParameters: - type: object mapping: $. - method: DELETE name: deletetextv1textstextiddelete description: Delete Text call: imentiv-ai-text-emotion-api.deletetextv1textstextiddelete with: text_id: rest.text_id outputParameters: - type: object mapping: $. - method: PUT name: reprocesstextv1textstextidput description: Reprocess Text call: imentiv-ai-text-emotion-api.reprocesstextv1textstextidput with: text_id: rest.text_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/texts/{text-id}/emotions name: v1-texts-text-id-emotions description: REST surface for v1-texts-text_id-emotions. operations: - method: PUT name: edittextv1textstextidemotionsput description: Edit Text call: imentiv-ai-text-emotion-api.edittextv1textstextidemotionsput with: text_id: rest.text_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/texts/{text-id}/report name: v1-texts-text-id-report description: REST surface for v1-texts-text_id-report. operations: - method: GET name: downloadtextemotionreportv1textstextidreportget description: Download Text Emotion Report call: imentiv-ai-text-emotion-api.downloadtextemotionreportv1textstextidreportget with: text_id: rest.text_id outputParameters: - type: object mapping: $. - path: /v1/v2/texts name: v2-texts description: REST surface for v2-texts. operations: - method: POST name: uploadtextv2textspost description: Upload Text call: imentiv-ai-text-emotion-api.uploadtextv2textspost with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: imentiv-ai-text-emotion-api-mcp port: 9090 transport: http description: MCP adapter for Welcome to Imentiv AI — Text Emotion API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-texts description: List Texts hints: readOnly: true destructive: false idempotent: true call: imentiv-ai-text-emotion-api.listtextsv1textsget with: start_after: tools.start_after page_size: tools.page_size direction: tools.direction outputParameters: - type: object mapping: $. - name: get-text-emotion-insights description: Get Text Emotion Insights hints: readOnly: true destructive: false idempotent: true call: imentiv-ai-text-emotion-api.gettextemotioninsightsv1textstextidget with: text_id: tools.text_id outputParameters: - type: object mapping: $. - name: delete-text description: Delete Text hints: readOnly: false destructive: true idempotent: true call: imentiv-ai-text-emotion-api.deletetextv1textstextiddelete with: text_id: tools.text_id outputParameters: - type: object mapping: $. - name: reprocess-text description: Reprocess Text hints: readOnly: false destructive: false idempotent: true call: imentiv-ai-text-emotion-api.reprocesstextv1textstextidput with: text_id: tools.text_id body: tools.body outputParameters: - type: object mapping: $. - name: edit-text description: Edit Text hints: readOnly: false destructive: false idempotent: true call: imentiv-ai-text-emotion-api.edittextv1textstextidemotionsput with: text_id: tools.text_id body: tools.body outputParameters: - type: object mapping: $. - name: download-text-emotion-report description: Download Text Emotion Report hints: readOnly: true destructive: false idempotent: true call: imentiv-ai-text-emotion-api.downloadtextemotionreportv1textstextidreportget with: text_id: tools.text_id outputParameters: - type: object mapping: $. - name: upload-text description: Upload Text hints: readOnly: false destructive: false idempotent: false call: imentiv-ai-text-emotion-api.uploadtextv2textspost with: body: tools.body outputParameters: - type: object mapping: $.