naftiko: 1.0.0-alpha2 info: label: lakeFS API — objects description: 'lakeFS API — objects. 10 operations. Lead operation: delete object. Missing objects will not return a NotFound error.. Self-contained Naftiko capability covering one Lakefs business surface.' tags: - Lakefs - objects created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LAKEFS_API_KEY: LAKEFS_API_KEY capability: consumes: - type: http namespace: lakefs-objects baseUri: '' description: lakeFS API — objects business capability. Self-contained, no shared references. resources: - name: repositories-repository-branches-branch-objects path: /repositories/{repository}/branches/{branch}/objects operations: - name: uploadobject method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: storageClass in: query type: string description: Deprecated, this capability will not be supported in future releases. - name: force in: query type: boolean - name: body in: body type: object description: Request body (JSON). required: false - name: deleteobject method: DELETE description: delete object. Missing objects will not return a NotFound error. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: force in: query type: boolean - name: repositories-repository-branches-branch-objects-copy path: /repositories/{repository}/branches/{branch}/objects/copy operations: - name: copyobject method: POST description: create a copy of an object outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: repositories-repository-branches-branch-objects-delete path: /repositories/{repository}/branches/{branch}/objects/delete operations: - name: deleteobjects method: POST description: delete objects. Missing objects will not return a NotFound error. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: repositories-repository-branches-branch-objects-stat-user_metadata path: /repositories/{repository}/branches/{branch}/objects/stat/user_metadata operations: - name: updateobjectusermetadata method: PUT description: rewrite (all) object metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: repositories-repository-refs-ref-objects path: /repositories/{repository}/refs/{ref}/objects operations: - name: getobject method: GET description: get object content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Range in: header type: string description: Byte range to retrieve - name: If-None-Match in: header type: string description: Returns response only if the object does not have a matching ETag - name: presign in: query type: boolean - name: headobject method: HEAD description: check if object exists outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Range in: header type: string description: Byte range to retrieve - name: repositories-repository-refs-ref-objects-ls path: /repositories/{repository}/refs/{ref}/objects/ls operations: - name: listobjects method: GET description: list objects under a given prefix outputRawFormat: json outputParameters: - name: result type: object value: $. - name: repositories-repository-refs-ref-objects-stat path: /repositories/{repository}/refs/{ref}/objects/stat operations: - name: statobject method: GET description: get object metadata outputRawFormat: json outputParameters: - name: result type: object value: $. - name: repositories-repository-refs-ref-objects-underlyingProperties path: /repositories/{repository}/refs/{ref}/objects/underlyingProperties operations: - name: getunderlyingproperties method: GET description: get object properties on underlying storage outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.LAKEFS_API_KEY}}' exposes: - type: rest namespace: lakefs-objects-rest port: 8080 description: REST adapter for lakeFS API — objects. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/repositories/{repository}/branches/{branch}/objects name: repositories-repository-branches-branch-objects description: REST surface for repositories-repository-branches-branch-objects. operations: - method: POST name: uploadobject description: uploadobject call: lakefs-objects.uploadobject with: storageClass: rest.storageClass force: rest.force body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteobject description: delete object. Missing objects will not return a NotFound error. call: lakefs-objects.deleteobject with: force: rest.force outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/branches/{branch}/objects/copy name: repositories-repository-branches-branch-objects-copy description: REST surface for repositories-repository-branches-branch-objects-copy. operations: - method: POST name: copyobject description: create a copy of an object call: lakefs-objects.copyobject with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/branches/{branch}/objects/delete name: repositories-repository-branches-branch-objects-delete description: REST surface for repositories-repository-branches-branch-objects-delete. operations: - method: POST name: deleteobjects description: delete objects. Missing objects will not return a NotFound error. call: lakefs-objects.deleteobjects with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/branches/{branch}/objects/stat/user-metadata name: repositories-repository-branches-branch-objects-stat-user-metadata description: REST surface for repositories-repository-branches-branch-objects-stat-user_metadata. operations: - method: PUT name: updateobjectusermetadata description: rewrite (all) object metadata call: lakefs-objects.updateobjectusermetadata with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/refs/{ref}/objects name: repositories-repository-refs-ref-objects description: REST surface for repositories-repository-refs-ref-objects. operations: - method: GET name: getobject description: get object content call: lakefs-objects.getobject with: Range: rest.Range If-None-Match: rest.If-None-Match presign: rest.presign outputParameters: - type: object mapping: $. - method: HEAD name: headobject description: check if object exists call: lakefs-objects.headobject with: Range: rest.Range outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/refs/{ref}/objects/ls name: repositories-repository-refs-ref-objects-ls description: REST surface for repositories-repository-refs-ref-objects-ls. operations: - method: GET name: listobjects description: list objects under a given prefix call: lakefs-objects.listobjects outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/refs/{ref}/objects/stat name: repositories-repository-refs-ref-objects-stat description: REST surface for repositories-repository-refs-ref-objects-stat. operations: - method: GET name: statobject description: get object metadata call: lakefs-objects.statobject outputParameters: - type: object mapping: $. - path: /v1/repositories/{repository}/refs/{ref}/objects/underlyingproperties name: repositories-repository-refs-ref-objects-underlyingproperties description: REST surface for repositories-repository-refs-ref-objects-underlyingProperties. operations: - method: GET name: getunderlyingproperties description: get object properties on underlying storage call: lakefs-objects.getunderlyingproperties outputParameters: - type: object mapping: $. - type: mcp namespace: lakefs-objects-mcp port: 9090 transport: http description: MCP adapter for lakeFS API — objects. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: uploadobject description: uploadobject hints: readOnly: false destructive: false idempotent: false call: lakefs-objects.uploadobject with: storageClass: tools.storageClass force: tools.force body: tools.body outputParameters: - type: object mapping: $. - name: delete-object-missing-objects-will description: delete object. Missing objects will not return a NotFound error. hints: readOnly: false destructive: true idempotent: true call: lakefs-objects.deleteobject with: force: tools.force outputParameters: - type: object mapping: $. - name: create-copy-object description: create a copy of an object hints: readOnly: false destructive: false idempotent: false call: lakefs-objects.copyobject with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-objects-missing-objects-will description: delete objects. Missing objects will not return a NotFound error. hints: readOnly: false destructive: false idempotent: false call: lakefs-objects.deleteobjects with: body: tools.body outputParameters: - type: object mapping: $. - name: rewrite-all-object-metadata description: rewrite (all) object metadata hints: readOnly: false destructive: false idempotent: true call: lakefs-objects.updateobjectusermetadata with: body: tools.body outputParameters: - type: object mapping: $. - name: get-object-content description: get object content hints: readOnly: true destructive: false idempotent: true call: lakefs-objects.getobject with: Range: tools.Range If-None-Match: tools.If-None-Match presign: tools.presign outputParameters: - type: object mapping: $. - name: check-if-object-exists description: check if object exists hints: readOnly: false destructive: false idempotent: false call: lakefs-objects.headobject with: Range: tools.Range outputParameters: - type: object mapping: $. - name: list-objects-under-given-prefix description: list objects under a given prefix hints: readOnly: true destructive: false idempotent: true call: lakefs-objects.listobjects outputParameters: - type: object mapping: $. - name: get-object-metadata description: get object metadata hints: readOnly: true destructive: false idempotent: true call: lakefs-objects.statobject outputParameters: - type: object mapping: $. - name: get-object-properties-underlying-storage description: get object properties on underlying storage hints: readOnly: true destructive: false idempotent: true call: lakefs-objects.getunderlyingproperties outputParameters: - type: object mapping: $.