naftiko: 1.0.0-alpha2 info: label: CubeFS S3-Compatible API — Multipart description: 'CubeFS S3-Compatible API — Multipart. 4 operations. Lead operation: CubeFS Upload a part. Self-contained Naftiko capability covering one Cubefs business surface.' tags: - Cubefs - Multipart created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CUBEFS_API_KEY: CUBEFS_API_KEY capability: consumes: - type: http namespace: s3-multipart baseUri: http://{objectNodeHost}:{objectNodePort} description: CubeFS S3-Compatible API — Multipart business capability. Self-contained, no shared references. resources: - name: bucket-key}?uploadId={uploadId path: /{bucket}/{key}?uploadId={uploadId} operations: - name: uploadpart method: PUT description: CubeFS Upload a part outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uploadId in: query type: string description: Upload ID from the CreateMultipartUpload response. required: true - name: partNumber in: query type: integer description: Part number between 1 and 10,000. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: completemultipartupload method: POST description: CubeFS Complete a multipart upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uploadId in: query type: string description: Upload ID from the CreateMultipartUpload response. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: abortmultipartupload method: DELETE description: CubeFS Abort a multipart upload outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uploadId in: query type: string description: Upload ID from the CreateMultipartUpload response. required: true - name: bucket-key}?uploads path: /{bucket}/{key}?uploads operations: - name: createmultipartupload method: POST description: CubeFS Initiate a multipart upload outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: Authorization value: '{{env.CUBEFS_API_KEY}}' placement: header exposes: - type: rest namespace: s3-multipart-rest port: 8080 description: REST adapter for CubeFS S3-Compatible API — Multipart. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/{bucket}/{key-uploadid-uploadid} name: bucket-key-uploadid-uploadid description: REST surface for bucket-key}?uploadId={uploadId. operations: - method: PUT name: uploadpart description: CubeFS Upload a part call: s3-multipart.uploadpart with: uploadId: rest.uploadId partNumber: rest.partNumber body: rest.body outputParameters: - type: object mapping: $. - method: POST name: completemultipartupload description: CubeFS Complete a multipart upload call: s3-multipart.completemultipartupload with: uploadId: rest.uploadId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: abortmultipartupload description: CubeFS Abort a multipart upload call: s3-multipart.abortmultipartupload with: uploadId: rest.uploadId outputParameters: - type: object mapping: $. - path: /v1/{bucket}/key-uploads name: bucket-key-uploads description: REST surface for bucket-key}?uploads. operations: - method: POST name: createmultipartupload description: CubeFS Initiate a multipart upload call: s3-multipart.createmultipartupload outputParameters: - type: object mapping: $. - type: mcp namespace: s3-multipart-mcp port: 9090 transport: http description: MCP adapter for CubeFS S3-Compatible API — Multipart. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: cubefs-upload-part description: CubeFS Upload a part hints: readOnly: false destructive: false idempotent: true call: s3-multipart.uploadpart with: uploadId: tools.uploadId partNumber: tools.partNumber body: tools.body outputParameters: - type: object mapping: $. - name: cubefs-complete-multipart-upload description: CubeFS Complete a multipart upload hints: readOnly: false destructive: false idempotent: false call: s3-multipart.completemultipartupload with: uploadId: tools.uploadId body: tools.body outputParameters: - type: object mapping: $. - name: cubefs-abort-multipart-upload description: CubeFS Abort a multipart upload hints: readOnly: false destructive: true idempotent: true call: s3-multipart.abortmultipartupload with: uploadId: tools.uploadId outputParameters: - type: object mapping: $. - name: cubefs-initiate-multipart-upload description: CubeFS Initiate a multipart upload hints: readOnly: false destructive: false idempotent: false call: s3-multipart.createmultipartupload outputParameters: - type: object mapping: $.