naftiko: 1.0.0-alpha2 info: label: Sonatype Central Portal Publishing API — Deployment description: 'Sonatype Central Portal Publishing API — Deployment. 6 operations. Lead operation: Publish a deployment. Self-contained Naftiko capability covering one Maven business surface.' tags: - Maven - Deployment created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MAVEN_API_KEY: MAVEN_API_KEY capability: consumes: - type: http namespace: portal-deployment baseUri: https://central.sonatype.com/api/v1/publisher description: Sonatype Central Portal Publishing API — Deployment business capability. Self-contained, no shared references. resources: - name: deployment-deploymentId path: /deployment/{deploymentId} operations: - name: publishdeployment method: POST description: Publish a deployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deploymentId in: path type: string required: true - name: dropdeployment method: DELETE description: Drop a deployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deploymentId in: path type: string required: true - name: deployment-deploymentId-download-relativePath path: /deployment/{deploymentId}/download/{relativePath} operations: - name: downloaddeploymentfile method: GET description: Download from a specific deployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deploymentId in: path type: string required: true - name: relativePath in: path type: string required: true - name: deployments-download-relativePath path: /deployments/download/{relativePath} operations: - name: downloadvalidatedfile method: GET description: Download from any validated deployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: relativePath in: path type: string required: true - name: status path: /status operations: - name: getdeploymentstatus method: POST description: Get deployment status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: Deployment identifier. required: true - name: upload path: /upload operations: - name: uploadbundle method: POST description: Upload a deployment bundle outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Human-readable deployment name. - name: publishingType in: query type: string description: Whether to auto-publish on validation success. - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.MAVEN_API_KEY}}' exposes: - type: rest namespace: portal-deployment-rest port: 8080 description: REST adapter for Sonatype Central Portal Publishing API — Deployment. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/deployment/{deploymentid} name: deployment-deploymentid description: REST surface for deployment-deploymentId. operations: - method: POST name: publishdeployment description: Publish a deployment call: portal-deployment.publishdeployment with: deploymentId: rest.deploymentId outputParameters: - type: object mapping: $. - method: DELETE name: dropdeployment description: Drop a deployment call: portal-deployment.dropdeployment with: deploymentId: rest.deploymentId outputParameters: - type: object mapping: $. - path: /v1/deployment/{deploymentid}/download/{relativepath} name: deployment-deploymentid-download-relativepath description: REST surface for deployment-deploymentId-download-relativePath. operations: - method: GET name: downloaddeploymentfile description: Download from a specific deployment call: portal-deployment.downloaddeploymentfile with: deploymentId: rest.deploymentId relativePath: rest.relativePath outputParameters: - type: object mapping: $. - path: /v1/deployments/download/{relativepath} name: deployments-download-relativepath description: REST surface for deployments-download-relativePath. operations: - method: GET name: downloadvalidatedfile description: Download from any validated deployment call: portal-deployment.downloadvalidatedfile with: relativePath: rest.relativePath outputParameters: - type: object mapping: $. - path: /v1/status name: status description: REST surface for status. operations: - method: POST name: getdeploymentstatus description: Get deployment status call: portal-deployment.getdeploymentstatus with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/upload name: upload description: REST surface for upload. operations: - method: POST name: uploadbundle description: Upload a deployment bundle call: portal-deployment.uploadbundle with: name: rest.name publishingType: rest.publishingType body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: portal-deployment-mcp port: 9090 transport: http description: MCP adapter for Sonatype Central Portal Publishing API — Deployment. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: publish-deployment description: Publish a deployment hints: readOnly: false destructive: false idempotent: false call: portal-deployment.publishdeployment with: deploymentId: tools.deploymentId outputParameters: - type: object mapping: $. - name: drop-deployment description: Drop a deployment hints: readOnly: false destructive: true idempotent: true call: portal-deployment.dropdeployment with: deploymentId: tools.deploymentId outputParameters: - type: object mapping: $. - name: download-specific-deployment description: Download from a specific deployment hints: readOnly: true destructive: false idempotent: true call: portal-deployment.downloaddeploymentfile with: deploymentId: tools.deploymentId relativePath: tools.relativePath outputParameters: - type: object mapping: $. - name: download-any-validated-deployment description: Download from any validated deployment hints: readOnly: true destructive: false idempotent: true call: portal-deployment.downloadvalidatedfile with: relativePath: tools.relativePath outputParameters: - type: object mapping: $. - name: get-deployment-status description: Get deployment status hints: readOnly: true destructive: false idempotent: false call: portal-deployment.getdeploymentstatus with: id: tools.id outputParameters: - type: object mapping: $. - name: upload-deployment-bundle description: Upload a deployment bundle hints: readOnly: false destructive: false idempotent: false call: portal-deployment.uploadbundle with: name: tools.name publishingType: tools.publishingType body: tools.body outputParameters: - type: object mapping: $.