naftiko: 1.0.0-alpha2 info: label: Application Research Open Component Model API — Resources description: 'Application Research Open Component Model API — Resources. 4 operations. Lead operation: Application Research List resources for a component. Self-contained Naftiko capability covering one Application Research business surface.' tags: - Application Research - Resources created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: APPLICATION_RESEARCH_API_KEY: APPLICATION_RESEARCH_API_KEY capability: consumes: - type: http namespace: open-component-model-resources baseUri: https://api.ocm.example.com/v1 description: Application Research Open Component Model API — Resources business capability. Self-contained, no shared references. resources: - name: components-name-resources path: /components/{name}/resources operations: - name: listcomponentresources method: GET description: Application Research List resources for a component outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addcomponentresource method: POST description: Application Research Add a resource to a component outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: components-name-resources-resourceName path: /components/{name}/resources/{resourceName} operations: - name: getcomponentresource method: GET description: Application Research Get a specific resource outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletecomponentresource method: DELETE description: Application Research Remove a resource from a component outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.APPLICATION_RESEARCH_API_KEY}}' exposes: - type: rest namespace: open-component-model-resources-rest port: 8080 description: REST adapter for Application Research Open Component Model API — Resources. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/components/{name}/resources name: components-name-resources description: REST surface for components-name-resources. operations: - method: GET name: listcomponentresources description: Application Research List resources for a component call: open-component-model-resources.listcomponentresources outputParameters: - type: object mapping: $. - method: POST name: addcomponentresource description: Application Research Add a resource to a component call: open-component-model-resources.addcomponentresource with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/components/{name}/resources/{resourcename} name: components-name-resources-resourcename description: REST surface for components-name-resources-resourceName. operations: - method: GET name: getcomponentresource description: Application Research Get a specific resource call: open-component-model-resources.getcomponentresource outputParameters: - type: object mapping: $. - method: DELETE name: deletecomponentresource description: Application Research Remove a resource from a component call: open-component-model-resources.deletecomponentresource outputParameters: - type: object mapping: $. - type: mcp namespace: open-component-model-resources-mcp port: 9090 transport: http description: MCP adapter for Application Research Open Component Model API — Resources. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: application-research-list-resources-component description: Application Research List resources for a component hints: readOnly: true destructive: false idempotent: true call: open-component-model-resources.listcomponentresources outputParameters: - type: object mapping: $. - name: application-research-add-resource-component description: Application Research Add a resource to a component hints: readOnly: true destructive: false idempotent: false call: open-component-model-resources.addcomponentresource with: body: tools.body outputParameters: - type: object mapping: $. - name: application-research-get-specific-resource description: Application Research Get a specific resource hints: readOnly: true destructive: false idempotent: true call: open-component-model-resources.getcomponentresource outputParameters: - type: object mapping: $. - name: application-research-remove-resource-component description: Application Research Remove a resource from a component hints: readOnly: false destructive: true idempotent: true call: open-component-model-resources.deletecomponentresource outputParameters: - type: object mapping: $.