naftiko: 1.0.0-alpha2 info: label: GitLab API — ml_model_registry description: 'GitLab API — ml_model_registry. 3 operations. Lead operation: Workhorse upload model package file. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - ml_model_registry created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GITLAB_CI_API_KEY: GITLAB_CI_API_KEY capability: consumes: - type: http namespace: gitlab-ci-ml-model-registry baseUri: https://gitlab.com description: GitLab API — ml_model_registry business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-packages-ml_models-model_version_id-files-(*path-){file_name} path: /api/v4/projects/{id}/packages/ml_models/{model_version_id}/files/(*path/){file_name} operations: - name: putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename method: PUT description: Workhorse upload model package file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: file_name in: path type: string description: File name required: true - name: model_version_id in: path type: string description: Model version id required: true - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName in: body type: string required: true - name: getapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename method: GET description: Download an ml_model package file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: file_name in: path type: string description: File name required: true - name: path in: query type: string description: File directory path - name: status in: query type: string description: Package status - name: model_version_id in: path type: string description: Model version id required: true - name: api-v4-projects-id-packages-ml_models-model_version_id-files-(*path-){file_name} path: /api/v4/projects/{id}/packages/ml_models/{model_version_id}/files/(*path/){file_name}/authorize operations: - name: putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilenameauthorize method: PUT description: Workhorse authorize model package file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID or URL-encoded path of the project required: true - name: file_name in: path type: string description: File name required: true - name: model_version_id in: path type: string description: Model version id required: true - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize in: body type: string required: true exposes: - type: rest namespace: gitlab-ci-ml-model-registry-rest port: 8080 description: REST adapter for GitLab API — ml_model_registry. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/packages/ml-models/{model-version-id}/files/path/file-name name: api-v4-projects-id-packages-ml-models-model-version-id-files-path-file-name description: REST surface for api-v4-projects-id-packages-ml_models-model_version_id-files-(*path-){file_name}. operations: - method: PUT name: putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename description: Workhorse upload model package file call: gitlab-ci-ml-model-registry.putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename with: id: rest.id file_name: rest.file_name model_version_id: rest.model_version_id putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName: rest.putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName outputParameters: - type: object mapping: $. - method: GET name: getapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename description: Download an ml_model package file call: gitlab-ci-ml-model-registry.getapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename with: id: rest.id file_name: rest.file_name path: rest.path status: rest.status model_version_id: rest.model_version_id outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/packages/ml-models/{model-version-id}/files/path/file-name/authorize name: api-v4-projects-id-packages-ml-models-model-version-id-files-path-file-name description: REST surface for api-v4-projects-id-packages-ml_models-model_version_id-files-(*path-){file_name}. operations: - method: PUT name: putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilenameauthorize description: Workhorse authorize model package file call: gitlab-ci-ml-model-registry.putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilenameauthorize with: id: rest.id file_name: rest.file_name model_version_id: rest.model_version_id putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize: rest.putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-ml-model-registry-mcp port: 9090 transport: http description: MCP adapter for GitLab API — ml_model_registry. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: workhorse-upload-model-package-file description: Workhorse upload model package file hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-ml-model-registry.putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename with: id: tools.id file_name: tools.file_name model_version_id: tools.model_version_id putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName: tools.putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName outputParameters: - type: object mapping: $. - name: download-ml-model-package-file description: Download an ml_model package file hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-ml-model-registry.getapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilename with: id: tools.id file_name: tools.file_name path: tools.path status: tools.status model_version_id: tools.model_version_id outputParameters: - type: object mapping: $. - name: workhorse-authorize-model-package-file description: Workhorse authorize model package file hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-ml-model-registry.putapiv4projectsidpackagesmlmodelsmodelversionidfilespathfilenameauthorize with: id: tools.id file_name: tools.file_name model_version_id: tools.model_version_id putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize: tools.putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize outputParameters: - type: object mapping: $.