naftiko: 1.0.0-alpha2 info: label: Application Research Open Component Model API — Components description: 'Application Research Open Component Model API — Components. 9 operations. Lead operation: Application Research List component descriptors. Self-contained Naftiko capability covering one Application Research business surface.' tags: - Application Research - Components 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-components baseUri: https://api.ocm.example.com/v1 description: Application Research Open Component Model API — Components business capability. Self-contained, no shared references. resources: - name: components path: /components operations: - name: listcomponents method: GET description: Application Research List component descriptors outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createcomponent method: POST description: Application Research Create a component descriptor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: components-name path: /components/{name} operations: - name: getcomponent method: GET description: Application Research Get a component descriptor by name outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatecomponent method: PUT description: Application Research Update a component descriptor outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletecomponent method: DELETE description: Application Research Delete a component descriptor outputRawFormat: json outputParameters: - name: result type: object value: $. - name: components-name-references path: /components/{name}/references operations: - name: listcomponentreferences method: GET description: Application Research List component references outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addcomponentreference method: POST description: Application Research Add a component reference outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: components-name-versions path: /components/{name}/versions operations: - name: listcomponentversions method: GET description: Application Research List all versions of a component outputRawFormat: json outputParameters: - name: result type: object value: $. - name: transfer path: /transfer operations: - name: transfercomponents method: POST description: Application Research Transfer components between repositories outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.APPLICATION_RESEARCH_API_KEY}}' exposes: - type: rest namespace: open-component-model-components-rest port: 8080 description: REST adapter for Application Research Open Component Model API — Components. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/components name: components description: REST surface for components. operations: - method: GET name: listcomponents description: Application Research List component descriptors call: open-component-model-components.listcomponents outputParameters: - type: object mapping: $. - method: POST name: createcomponent description: Application Research Create a component descriptor call: open-component-model-components.createcomponent with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/components/{name} name: components-name description: REST surface for components-name. operations: - method: GET name: getcomponent description: Application Research Get a component descriptor by name call: open-component-model-components.getcomponent outputParameters: - type: object mapping: $. - method: PUT name: updatecomponent description: Application Research Update a component descriptor call: open-component-model-components.updatecomponent with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletecomponent description: Application Research Delete a component descriptor call: open-component-model-components.deletecomponent outputParameters: - type: object mapping: $. - path: /v1/components/{name}/references name: components-name-references description: REST surface for components-name-references. operations: - method: GET name: listcomponentreferences description: Application Research List component references call: open-component-model-components.listcomponentreferences outputParameters: - type: object mapping: $. - method: POST name: addcomponentreference description: Application Research Add a component reference call: open-component-model-components.addcomponentreference with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/components/{name}/versions name: components-name-versions description: REST surface for components-name-versions. operations: - method: GET name: listcomponentversions description: Application Research List all versions of a component call: open-component-model-components.listcomponentversions outputParameters: - type: object mapping: $. - path: /v1/transfer name: transfer description: REST surface for transfer. operations: - method: POST name: transfercomponents description: Application Research Transfer components between repositories call: open-component-model-components.transfercomponents with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: open-component-model-components-mcp port: 9090 transport: http description: MCP adapter for Application Research Open Component Model API — Components. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: application-research-list-component-descriptors description: Application Research List component descriptors hints: readOnly: true destructive: false idempotent: true call: open-component-model-components.listcomponents outputParameters: - type: object mapping: $. - name: application-research-create-component-descriptor description: Application Research Create a component descriptor hints: readOnly: true destructive: false idempotent: false call: open-component-model-components.createcomponent with: body: tools.body outputParameters: - type: object mapping: $. - name: application-research-get-component-descriptor description: Application Research Get a component descriptor by name hints: readOnly: true destructive: false idempotent: true call: open-component-model-components.getcomponent outputParameters: - type: object mapping: $. - name: application-research-update-component-descriptor description: Application Research Update a component descriptor hints: readOnly: false destructive: false idempotent: true call: open-component-model-components.updatecomponent with: body: tools.body outputParameters: - type: object mapping: $. - name: application-research-delete-component-descriptor description: Application Research Delete a component descriptor hints: readOnly: false destructive: true idempotent: true call: open-component-model-components.deletecomponent outputParameters: - type: object mapping: $. - name: application-research-list-component-references description: Application Research List component references hints: readOnly: true destructive: false idempotent: true call: open-component-model-components.listcomponentreferences outputParameters: - type: object mapping: $. - name: application-research-add-component-reference description: Application Research Add a component reference hints: readOnly: true destructive: false idempotent: false call: open-component-model-components.addcomponentreference with: body: tools.body outputParameters: - type: object mapping: $. - name: application-research-list-all-versions description: Application Research List all versions of a component hints: readOnly: true destructive: false idempotent: true call: open-component-model-components.listcomponentversions outputParameters: - type: object mapping: $. - name: application-research-transfer-components-between description: Application Research Transfer components between repositories hints: readOnly: true destructive: false idempotent: false call: open-component-model-components.transfercomponents with: body: tools.body outputParameters: - type: object mapping: $.