naftiko: 1.0.0-alpha2 info: label: AWS CloudWatch Amazon CloudWatch API — Metrics description: 'AWS CloudWatch Amazon CloudWatch API — Metrics. 7 operations. Lead operation: Aws Cloudwatch Publish Metric Data Points to Cloudwatch. Self-contained Naftiko capability covering one Cloudwatch business surface.' tags: - Cloudwatch - Metrics created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CLOUDWATCH_API_KEY: CLOUDWATCH_API_KEY capability: consumes: - type: http namespace: cloudwatch-metrics baseUri: https://monitoring.{region}.amazonaws.com description: AWS CloudWatch Amazon CloudWatch API — Metrics business capability. Self-contained, no shared references. resources: - name: root path: / operations: - name: putmetricdata method: POST description: Aws Cloudwatch Publish Metric Data Points to Cloudwatch outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: '#GetMetricData' path: /#GetMetricData operations: - name: getmetricdata method: POST description: Aws Cloudwatch Retrieve Metric Data From Cloudwatch outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: '#GetMetricStatistics' path: /#GetMetricStatistics operations: - name: getmetricstatistics method: POST description: Aws Cloudwatch Retrieve Statistics for a Specified Metric outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: '#ListMetrics' path: /#ListMetrics operations: - name: listmetrics method: POST description: Aws Cloudwatch List the Specified Metrics outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: '#ListTagsForResource' path: /#ListTagsForResource operations: - name: listtagsforresource method: POST description: Aws Cloudwatch List Tags for a Cloudwatch Resource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: '#TagResource' path: /#TagResource operations: - name: tagresource method: POST description: Aws Cloudwatch Assign Tags to a Cloudwatch Resource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: '#UntagResource' path: /#UntagResource operations: - name: untagresource method: POST description: Aws Cloudwatch Remove Tags From a Cloudwatch Resource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.CLOUDWATCH_API_KEY}}' placement: header exposes: - type: rest namespace: cloudwatch-metrics-rest port: 8080 description: REST adapter for AWS CloudWatch Amazon CloudWatch API — Metrics. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1 name: root description: REST surface for root. operations: - method: POST name: putmetricdata description: Aws Cloudwatch Publish Metric Data Points to Cloudwatch call: cloudwatch-metrics.putmetricdata with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/getmetricdata name: getmetricdata description: 'REST surface for #GetMetricData.' operations: - method: POST name: getmetricdata description: Aws Cloudwatch Retrieve Metric Data From Cloudwatch call: cloudwatch-metrics.getmetricdata with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/getmetricstatistics name: getmetricstatistics description: 'REST surface for #GetMetricStatistics.' operations: - method: POST name: getmetricstatistics description: Aws Cloudwatch Retrieve Statistics for a Specified Metric call: cloudwatch-metrics.getmetricstatistics with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/listmetrics name: listmetrics description: 'REST surface for #ListMetrics.' operations: - method: POST name: listmetrics description: Aws Cloudwatch List the Specified Metrics call: cloudwatch-metrics.listmetrics with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/listtagsforresource name: listtagsforresource description: 'REST surface for #ListTagsForResource.' operations: - method: POST name: listtagsforresource description: Aws Cloudwatch List Tags for a Cloudwatch Resource call: cloudwatch-metrics.listtagsforresource with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tagresource name: tagresource description: 'REST surface for #TagResource.' operations: - method: POST name: tagresource description: Aws Cloudwatch Assign Tags to a Cloudwatch Resource call: cloudwatch-metrics.tagresource with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/untagresource name: untagresource description: 'REST surface for #UntagResource.' operations: - method: POST name: untagresource description: Aws Cloudwatch Remove Tags From a Cloudwatch Resource call: cloudwatch-metrics.untagresource with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: cloudwatch-metrics-mcp port: 9090 transport: http description: MCP adapter for AWS CloudWatch Amazon CloudWatch API — Metrics. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: aws-cloudwatch-publish-metric-data description: Aws Cloudwatch Publish Metric Data Points to Cloudwatch hints: readOnly: false destructive: false idempotent: false call: cloudwatch-metrics.putmetricdata with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-retrieve-metric-data description: Aws Cloudwatch Retrieve Metric Data From Cloudwatch hints: readOnly: true destructive: false idempotent: false call: cloudwatch-metrics.getmetricdata with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-retrieve-statistics-specified description: Aws Cloudwatch Retrieve Statistics for a Specified Metric hints: readOnly: true destructive: false idempotent: false call: cloudwatch-metrics.getmetricstatistics with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-list-specified-metrics description: Aws Cloudwatch List the Specified Metrics hints: readOnly: true destructive: false idempotent: false call: cloudwatch-metrics.listmetrics with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-list-tags-cloudwatch description: Aws Cloudwatch List Tags for a Cloudwatch Resource hints: readOnly: true destructive: false idempotent: false call: cloudwatch-metrics.listtagsforresource with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-assign-tags-cloudwatch description: Aws Cloudwatch Assign Tags to a Cloudwatch Resource hints: readOnly: false destructive: false idempotent: false call: cloudwatch-metrics.tagresource with: body: tools.body outputParameters: - type: object mapping: $. - name: aws-cloudwatch-remove-tags-cloudwatch description: Aws Cloudwatch Remove Tags From a Cloudwatch Resource hints: readOnly: false destructive: false idempotent: false call: cloudwatch-metrics.untagresource with: body: tools.body outputParameters: - type: object mapping: $.