naftiko: 1.0.0-alpha2 info: label: Metronome — Products description: 'Metronome — Products. 5 operations. Lead operation: Archive a product. Self-contained Naftiko capability covering one Metronome business surface.' tags: - Metronome - Products created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: METRONOME_API_KEY: METRONOME_API_KEY capability: consumes: - type: http namespace: metronome-products baseUri: https://api.metronome.com description: Metronome — Products business capability. Self-contained, no shared references. resources: - name: v1-contract-pricing-products-archive path: /v1/contract-pricing/products/archive operations: - name: archiveproductlistitemv1 method: POST description: Archive a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-contract-pricing-products-create path: /v1/contract-pricing/products/create operations: - name: createproductv1 method: POST description: Create a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-contract-pricing-products-get path: /v1/contract-pricing/products/get operations: - name: getproductv1 method: POST description: Get a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-contract-pricing-products-list path: /v1/contract-pricing/products/list operations: - name: listproductsv1 method: POST description: List products outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v1-contract-pricing-products-update path: /v1/contract-pricing/products/update operations: - name: updateproductv1 method: POST description: Update a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.METRONOME_API_KEY}}' exposes: - type: rest namespace: metronome-products-rest port: 8080 description: REST adapter for Metronome — Products. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/contract-pricing/products/archive name: v1-contract-pricing-products-archive description: REST surface for v1-contract-pricing-products-archive. operations: - method: POST name: archiveproductlistitemv1 description: Archive a product call: metronome-products.archiveproductlistitemv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/contract-pricing/products/create name: v1-contract-pricing-products-create description: REST surface for v1-contract-pricing-products-create. operations: - method: POST name: createproductv1 description: Create a product call: metronome-products.createproductv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/contract-pricing/products/get name: v1-contract-pricing-products-get description: REST surface for v1-contract-pricing-products-get. operations: - method: POST name: getproductv1 description: Get a product call: metronome-products.getproductv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/contract-pricing/products/list name: v1-contract-pricing-products-list description: REST surface for v1-contract-pricing-products-list. operations: - method: POST name: listproductsv1 description: List products call: metronome-products.listproductsv1 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/contract-pricing/products/update name: v1-contract-pricing-products-update description: REST surface for v1-contract-pricing-products-update. operations: - method: POST name: updateproductv1 description: Update a product call: metronome-products.updateproductv1 with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: metronome-products-mcp port: 9090 transport: http description: MCP adapter for Metronome — Products. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: archive-product description: Archive a product hints: readOnly: false destructive: false idempotent: false call: metronome-products.archiveproductlistitemv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: create-product description: Create a product hints: readOnly: false destructive: false idempotent: false call: metronome-products.createproductv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-product description: Get a product hints: readOnly: true destructive: false idempotent: false call: metronome-products.getproductv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: list-products description: List products hints: readOnly: true destructive: false idempotent: false call: metronome-products.listproductsv1 with: body: tools.body outputParameters: - type: object mapping: $. - name: update-product description: Update a product hints: readOnly: false destructive: false idempotent: false call: metronome-products.updateproductv1 with: body: tools.body outputParameters: - type: object mapping: $.