naftiko: 1.0.0-alpha2 info: label: Cloudinary Upload API — Upload description: 'Cloudinary Upload API — Upload. 6 operations. Lead operation: Update contextual metadata. Self-contained Naftiko capability covering one Cloudinary business surface.' tags: - Cloudinary - Upload created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CLOUDINARY_API_KEY: CLOUDINARY_API_KEY capability: consumes: - type: http namespace: cloudinary-upload baseUri: https://api.cloudinary.com/v1_1/{cloud_name} description: Cloudinary Upload API — Upload business capability. Self-contained, no shared references. resources: - name: resource_type-context path: /{resource_type}/context operations: - name: managecontext method: POST description: Update contextual metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: resource_type-destroy path: /{resource_type}/destroy operations: - name: destroyasset method: POST description: Delete an asset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: resource_type-metadata path: /{resource_type}/metadata operations: - name: updatemetadata method: POST description: Update structured metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: resource_type-rename path: /{resource_type}/rename operations: - name: renameasset method: POST description: Rename an asset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: resource_type-tags path: /{resource_type}/tags operations: - name: managetags method: POST description: Manage asset tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: resource_type-upload path: /{resource_type}/upload operations: - name: uploadasset method: POST description: Upload an asset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_type in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: basic username: '{{env.CLOUDINARY_USER}}' password: '{{env.CLOUDINARY_PASS}}' exposes: - type: rest namespace: cloudinary-upload-rest port: 8080 description: REST adapter for Cloudinary Upload API — Upload. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/{resource-type}/context name: resource-type-context description: REST surface for resource_type-context. operations: - method: POST name: managecontext description: Update contextual metadata call: cloudinary-upload.managecontext with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{resource-type}/destroy name: resource-type-destroy description: REST surface for resource_type-destroy. operations: - method: POST name: destroyasset description: Delete an asset call: cloudinary-upload.destroyasset with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{resource-type}/metadata name: resource-type-metadata description: REST surface for resource_type-metadata. operations: - method: POST name: updatemetadata description: Update structured metadata call: cloudinary-upload.updatemetadata with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{resource-type}/rename name: resource-type-rename description: REST surface for resource_type-rename. operations: - method: POST name: renameasset description: Rename an asset call: cloudinary-upload.renameasset with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{resource-type}/tags name: resource-type-tags description: REST surface for resource_type-tags. operations: - method: POST name: managetags description: Manage asset tags call: cloudinary-upload.managetags with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{resource-type}/upload name: resource-type-upload description: REST surface for resource_type-upload. operations: - method: POST name: uploadasset description: Upload an asset call: cloudinary-upload.uploadasset with: resource_type: rest.resource_type body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: cloudinary-upload-mcp port: 9090 transport: http description: MCP adapter for Cloudinary Upload API — Upload. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: update-contextual-metadata description: Update contextual metadata hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.managecontext with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $. - name: delete-asset description: Delete an asset hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.destroyasset with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $. - name: update-structured-metadata description: Update structured metadata hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.updatemetadata with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $. - name: rename-asset description: Rename an asset hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.renameasset with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $. - name: manage-asset-tags description: Manage asset tags hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.managetags with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $. - name: upload-asset description: Upload an asset hints: readOnly: false destructive: false idempotent: false call: cloudinary-upload.uploadasset with: resource_type: tools.resource_type body: tools.body outputParameters: - type: object mapping: $.