naftiko: 1.0.0-alpha2 info: label: GitLab API — metric_images description: 'GitLab API — metric_images. 5 operations. Lead operation: metric_images. Self-contained Naftiko capability covering one Gitlab Ci business surface.' tags: - Gitlab Ci - metric_images 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-metric-images baseUri: https://gitlab.com description: GitLab API — metric_images business capability. Self-contained, no shared references. resources: - name: api-v4-projects-id-issues-issue_iid-metric_images path: /api/v4/projects/{id}/issues/{issue_iid}/metric_images operations: - name: postapiv4projectsidissuesissueiidmetricimages method: POST description: Upload a metric image for an issue 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: issue_iid in: path type: integer required: true - name: postApiV4ProjectsIdIssuesIssueIidMetricImages in: body type: string required: true - name: getapiv4projectsidissuesissueiidmetricimages method: GET description: Metric Images for issue 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: issue_iid in: path type: integer required: true - name: api-v4-projects-id-issues-issue_iid-metric_images-authorize path: /api/v4/projects/{id}/issues/{issue_iid}/metric_images/authorize operations: - name: postapiv4projectsidissuesissueiidmetricimagesauthorize method: POST description: Upload a metric image for an incident 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: issue_iid in: path type: integer required: true - name: api-v4-projects-id-issues-issue_iid-metric_images-metric_image_id path: /api/v4/projects/{id}/issues/{issue_iid}/metric_images/{metric_image_id} operations: - name: putapiv4projectsidissuesissueiidmetricimagesmetricimageid method: PUT description: Update a metric image for an issue 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: metric_image_id in: path type: integer description: The ID of metric image required: true - name: issue_iid in: path type: integer required: true - name: putApiV4ProjectsIdIssuesIssueIidMetricImagesMetricImageId in: body type: string required: true - name: deleteapiv4projectsidissuesissueiidmetricimagesmetricimageid method: DELETE description: Remove a metric image for an issue 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: metric_image_id in: path type: integer description: The ID of metric image required: true - name: issue_iid in: path type: integer required: true exposes: - type: rest namespace: gitlab-ci-metric-images-rest port: 8080 description: REST adapter for GitLab API — metric_images. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v4/projects/{id}/issues/{issue-iid}/metric-images name: api-v4-projects-id-issues-issue-iid-metric-images description: REST surface for api-v4-projects-id-issues-issue_iid-metric_images. operations: - method: POST name: postapiv4projectsidissuesissueiidmetricimages description: Upload a metric image for an issue call: gitlab-ci-metric-images.postapiv4projectsidissuesissueiidmetricimages with: id: rest.id issue_iid: rest.issue_iid postApiV4ProjectsIdIssuesIssueIidMetricImages: rest.postApiV4ProjectsIdIssuesIssueIidMetricImages outputParameters: - type: object mapping: $. - method: GET name: getapiv4projectsidissuesissueiidmetricimages description: Metric Images for issue call: gitlab-ci-metric-images.getapiv4projectsidissuesissueiidmetricimages with: id: rest.id issue_iid: rest.issue_iid outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/issues/{issue-iid}/metric-images/authorize name: api-v4-projects-id-issues-issue-iid-metric-images-authorize description: REST surface for api-v4-projects-id-issues-issue_iid-metric_images-authorize. operations: - method: POST name: postapiv4projectsidissuesissueiidmetricimagesauthorize description: Upload a metric image for an incident call: gitlab-ci-metric-images.postapiv4projectsidissuesissueiidmetricimagesauthorize with: id: rest.id issue_iid: rest.issue_iid outputParameters: - type: object mapping: $. - path: /v1/api/v4/projects/{id}/issues/{issue-iid}/metric-images/{metric-image-id} name: api-v4-projects-id-issues-issue-iid-metric-images-metric-image-id description: REST surface for api-v4-projects-id-issues-issue_iid-metric_images-metric_image_id. operations: - method: PUT name: putapiv4projectsidissuesissueiidmetricimagesmetricimageid description: Update a metric image for an issue call: gitlab-ci-metric-images.putapiv4projectsidissuesissueiidmetricimagesmetricimageid with: id: rest.id metric_image_id: rest.metric_image_id issue_iid: rest.issue_iid putApiV4ProjectsIdIssuesIssueIidMetricImagesMetricImageId: rest.putApiV4ProjectsIdIssuesIssueIidMetricImagesMetricImageId outputParameters: - type: object mapping: $. - method: DELETE name: deleteapiv4projectsidissuesissueiidmetricimagesmetricimageid description: Remove a metric image for an issue call: gitlab-ci-metric-images.deleteapiv4projectsidissuesissueiidmetricimagesmetricimageid with: id: rest.id metric_image_id: rest.metric_image_id issue_iid: rest.issue_iid outputParameters: - type: object mapping: $. - type: mcp namespace: gitlab-ci-metric-images-mcp port: 9090 transport: http description: MCP adapter for GitLab API — metric_images. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: upload-metric-image-issue description: Upload a metric image for an issue hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-metric-images.postapiv4projectsidissuesissueiidmetricimages with: id: tools.id issue_iid: tools.issue_iid postApiV4ProjectsIdIssuesIssueIidMetricImages: tools.postApiV4ProjectsIdIssuesIssueIidMetricImages outputParameters: - type: object mapping: $. - name: metric-images-issue description: Metric Images for issue hints: readOnly: true destructive: false idempotent: true call: gitlab-ci-metric-images.getapiv4projectsidissuesissueiidmetricimages with: id: tools.id issue_iid: tools.issue_iid outputParameters: - type: object mapping: $. - name: upload-metric-image-incident description: Upload a metric image for an incident hints: readOnly: false destructive: false idempotent: false call: gitlab-ci-metric-images.postapiv4projectsidissuesissueiidmetricimagesauthorize with: id: tools.id issue_iid: tools.issue_iid outputParameters: - type: object mapping: $. - name: update-metric-image-issue description: Update a metric image for an issue hints: readOnly: false destructive: false idempotent: true call: gitlab-ci-metric-images.putapiv4projectsidissuesissueiidmetricimagesmetricimageid with: id: tools.id metric_image_id: tools.metric_image_id issue_iid: tools.issue_iid putApiV4ProjectsIdIssuesIssueIidMetricImagesMetricImageId: tools.putApiV4ProjectsIdIssuesIssueIidMetricImagesMetricImageId outputParameters: - type: object mapping: $. - name: remove-metric-image-issue description: Remove a metric image for an issue hints: readOnly: false destructive: true idempotent: true call: gitlab-ci-metric-images.deleteapiv4projectsidissuesissueiidmetricimagesmetricimageid with: id: tools.id metric_image_id: tools.metric_image_id issue_iid: tools.issue_iid outputParameters: - type: object mapping: $.