naftiko: 1.0.0-alpha2 info: label: JFrog ML REST API — Models description: 'JFrog ML REST API — Models. 5 operations. Lead operation: JFrog List Models. Self-contained Naftiko capability covering one Jfrog business surface.' tags: - Jfrog - Models created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: JFROG_API_KEY: JFROG_API_KEY capability: consumes: - type: http namespace: ml-models baseUri: https://{server}.jfrog.io/ml/api description: JFrog ML REST API — Models business capability. Self-contained, no shared references. resources: - name: v1-models path: /v1/models operations: - name: listmodels method: GET description: JFrog List Models outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer description: Maximum number of results - name: offset in: query type: integer description: Offset for pagination - name: createmodel method: POST description: JFrog Create Model outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-models-modelId path: /v1/models/{modelId} operations: - name: getmodel method: GET description: JFrog Get Model outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: modelId in: path type: string description: Model ID required: true - name: updatemodel method: PUT description: JFrog Update Model outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: modelId in: path type: string description: Model ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletemodel method: DELETE description: JFrog Delete Model outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: modelId in: path type: string description: Model ID required: true authentication: type: bearer token: '{{env.JFROG_API_KEY}}' exposes: - type: rest namespace: ml-models-rest port: 8080 description: REST adapter for JFrog ML REST API — Models. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/models name: v1-models description: REST surface for v1-models. operations: - method: GET name: listmodels description: JFrog List Models call: ml-models.listmodels with: limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createmodel description: JFrog Create Model call: ml-models.createmodel with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/models/{modelid} name: v1-models-modelid description: REST surface for v1-models-modelId. operations: - method: GET name: getmodel description: JFrog Get Model call: ml-models.getmodel with: modelId: rest.modelId outputParameters: - type: object mapping: $. - method: PUT name: updatemodel description: JFrog Update Model call: ml-models.updatemodel with: modelId: rest.modelId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletemodel description: JFrog Delete Model call: ml-models.deletemodel with: modelId: rest.modelId outputParameters: - type: object mapping: $. - type: mcp namespace: ml-models-mcp port: 9090 transport: http description: MCP adapter for JFrog ML REST API — Models. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: jfrog-list-models description: JFrog List Models hints: readOnly: true destructive: false idempotent: true call: ml-models.listmodels with: limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: jfrog-create-model description: JFrog Create Model hints: readOnly: false destructive: false idempotent: false call: ml-models.createmodel with: body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-get-model description: JFrog Get Model hints: readOnly: true destructive: false idempotent: true call: ml-models.getmodel with: modelId: tools.modelId outputParameters: - type: object mapping: $. - name: jfrog-update-model description: JFrog Update Model hints: readOnly: false destructive: false idempotent: true call: ml-models.updatemodel with: modelId: tools.modelId body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-delete-model description: JFrog Delete Model hints: readOnly: false destructive: true idempotent: true call: ml-models.deletemodel with: modelId: tools.modelId outputParameters: - type: object mapping: $.