naftiko: 1.0.0-alpha2 info: label: Box Platform API — Uploads (Chunked) description: 'Box Platform API — Uploads (Chunked). 7 operations. Lead operation: Box Create upload session. Self-contained Naftiko capability covering one Box business surface.' tags: - Box - Uploads (Chunked) created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: BOX_API_KEY: BOX_API_KEY capability: consumes: - type: http namespace: box-uploads-chunked baseUri: https://api.box.com/2.0 description: Box Platform API — Uploads (Chunked) business capability. Self-contained, no shared references. resources: - name: files-upload_sessions path: /files/upload_sessions operations: - name: postfilesuploadsessions method: POST description: Box Create upload session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: files-upload_sessions-upload_session_id path: /files/upload_sessions/{upload_session_id} operations: - name: getfilesuploadsessionsid method: GET description: Box Get upload session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: upload_session_id in: path type: string description: The ID of the upload session. required: true - name: putfilesuploadsessionsid method: PUT description: Box Upload part of file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: upload_session_id in: path type: string description: The ID of the upload session. required: true - name: digest in: header type: string description: The [RFC3230][1] message digest of the chunk uploaded. required: true - name: content-range in: header type: string description: The byte range of the chunk. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletefilesuploadsessionsid method: DELETE description: Box Remove upload session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: upload_session_id in: path type: string description: The ID of the upload session. required: true - name: files-upload_sessions-upload_session_id-commit path: /files/upload_sessions/{upload_session_id}/commit operations: - name: postfilesuploadsessionsidcommit method: POST description: Box Commit upload session outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: upload_session_id in: path type: string description: The ID of the upload session. required: true - name: digest in: header type: string description: The [RFC3230][1] message digest of the whole file. required: true - name: if-match in: header type: string description: Ensures this item hasn't recently changed before - name: if-none-match in: header type: string description: Ensures an item is only returned if it has changed. - name: body in: body type: object description: Request body (JSON). required: false - name: files-upload_sessions-upload_session_id-parts path: /files/upload_sessions/{upload_session_id}/parts operations: - name: getfilesuploadsessionsidparts method: GET description: Box List parts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: upload_session_id in: path type: string description: The ID of the upload session. required: true - name: offset in: query type: integer description: The offset of the item at which to begin the response. - name: limit in: query type: integer description: The maximum number of items to return per page. - name: files-file_id-upload_sessions path: /files/{file_id}/upload_sessions operations: - name: postfilesiduploadsessions method: POST description: Box Create upload session for existing file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: file_id in: path type: string description: The unique identifier that represents a file. required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.BOX_API_KEY}}' exposes: - type: rest namespace: box-uploads-chunked-rest port: 8080 description: REST adapter for Box Platform API — Uploads (Chunked). One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/files/upload-sessions name: files-upload-sessions description: REST surface for files-upload_sessions. operations: - method: POST name: postfilesuploadsessions description: Box Create upload session call: box-uploads-chunked.postfilesuploadsessions with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files/upload-sessions/{upload-session-id} name: files-upload-sessions-upload-session-id description: REST surface for files-upload_sessions-upload_session_id. operations: - method: GET name: getfilesuploadsessionsid description: Box Get upload session call: box-uploads-chunked.getfilesuploadsessionsid with: upload_session_id: rest.upload_session_id outputParameters: - type: object mapping: $. - method: PUT name: putfilesuploadsessionsid description: Box Upload part of file call: box-uploads-chunked.putfilesuploadsessionsid with: upload_session_id: rest.upload_session_id digest: rest.digest content-range: rest.content-range body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefilesuploadsessionsid description: Box Remove upload session call: box-uploads-chunked.deletefilesuploadsessionsid with: upload_session_id: rest.upload_session_id outputParameters: - type: object mapping: $. - path: /v1/files/upload-sessions/{upload-session-id}/commit name: files-upload-sessions-upload-session-id-commit description: REST surface for files-upload_sessions-upload_session_id-commit. operations: - method: POST name: postfilesuploadsessionsidcommit description: Box Commit upload session call: box-uploads-chunked.postfilesuploadsessionsidcommit with: upload_session_id: rest.upload_session_id digest: rest.digest if-match: rest.if-match if-none-match: rest.if-none-match body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files/upload-sessions/{upload-session-id}/parts name: files-upload-sessions-upload-session-id-parts description: REST surface for files-upload_sessions-upload_session_id-parts. operations: - method: GET name: getfilesuploadsessionsidparts description: Box List parts call: box-uploads-chunked.getfilesuploadsessionsidparts with: upload_session_id: rest.upload_session_id offset: rest.offset limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/files/{file-id}/upload-sessions name: files-file-id-upload-sessions description: REST surface for files-file_id-upload_sessions. operations: - method: POST name: postfilesiduploadsessions description: Box Create upload session for existing file call: box-uploads-chunked.postfilesiduploadsessions with: file_id: rest.file_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: box-uploads-chunked-mcp port: 9090 transport: http description: MCP adapter for Box Platform API — Uploads (Chunked). One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: box-create-upload-session description: Box Create upload session hints: readOnly: false destructive: false idempotent: false call: box-uploads-chunked.postfilesuploadsessions with: body: tools.body outputParameters: - type: object mapping: $. - name: box-get-upload-session description: Box Get upload session hints: readOnly: true destructive: false idempotent: true call: box-uploads-chunked.getfilesuploadsessionsid with: upload_session_id: tools.upload_session_id outputParameters: - type: object mapping: $. - name: box-upload-part-file description: Box Upload part of file hints: readOnly: false destructive: false idempotent: true call: box-uploads-chunked.putfilesuploadsessionsid with: upload_session_id: tools.upload_session_id digest: tools.digest content-range: tools.content-range body: tools.body outputParameters: - type: object mapping: $. - name: box-remove-upload-session description: Box Remove upload session hints: readOnly: false destructive: true idempotent: true call: box-uploads-chunked.deletefilesuploadsessionsid with: upload_session_id: tools.upload_session_id outputParameters: - type: object mapping: $. - name: box-commit-upload-session description: Box Commit upload session hints: readOnly: false destructive: false idempotent: false call: box-uploads-chunked.postfilesuploadsessionsidcommit with: upload_session_id: tools.upload_session_id digest: tools.digest if-match: tools.if-match if-none-match: tools.if-none-match body: tools.body outputParameters: - type: object mapping: $. - name: box-list-parts description: Box List parts hints: readOnly: true destructive: false idempotent: true call: box-uploads-chunked.getfilesuploadsessionsidparts with: upload_session_id: tools.upload_session_id offset: tools.offset limit: tools.limit outputParameters: - type: object mapping: $. - name: box-create-upload-session-existing description: Box Create upload session for existing file hints: readOnly: false destructive: false idempotent: false call: box-uploads-chunked.postfilesiduploadsessions with: file_id: tools.file_id body: tools.body outputParameters: - type: object mapping: $.