naftiko: 1.0.0-alpha2 info: label: Suger API — Product description: 'Suger API — Product. 11 operations. Lead operation: Create Or Update Draft Product. Self-contained Naftiko capability covering one Suger business surface.' tags: - Suger - Product created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SUGER_API_KEY: SUGER_API_KEY capability: consumes: - type: http namespace: suger-product baseUri: https://api.suger.cloud description: Suger API — Product business capability. Self-contained, no shared references. resources: - name: org-orgId-draftProduct path: /org/{orgId}/draftProduct operations: - name: createorupdatedraftproduct method: POST description: Create Or Update Draft Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-partner-partner-product path: /org/{orgId}/partner/{partner}/product operations: - name: listproductsbypartner method: GET description: List Products By Partner outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: partner in: path type: string description: Cloud Partner required: true - name: org-orgId-product path: /org/{orgId}/product operations: - name: listproducts method: GET description: List Products outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: partner in: query type: string description: filter by partner - name: limit in: query type: integer description: List pagination size, default 100, max value is 1000 - name: offset in: query type: integer description: List pagination offset, default 0 - name: createproduct method: POST description: Create Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-product-productId path: /org/{orgId}/product/{productId} operations: - name: deleteproduct method: DELETE description: Delete Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: getproduct method: GET description: Get Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: updateproduct method: PATCH description: Update Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-product-productId-dimension path: /org/{orgId}/product/{productId}/dimension operations: - name: listproductmeteringdimensions method: GET description: List Metering Dimensions Of Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: org-orgId-product-productId-fulfillmentUrl path: /org/{orgId}/product/{productId}/fulfillmentUrl operations: - name: updateproductfulfillmenturl method: PATCH description: Update Product Fulfillment Url outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-product-productId-metaInfo path: /org/{orgId}/product/{productId}/metaInfo operations: - name: updateproductmetainfo method: PATCH description: Update Product Meta Info outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-product-productId-publish path: /org/{orgId}/product/{productId}/publish operations: - name: publishproduct method: PATCH description: Publish Product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: productId in: path type: string description: Product ID required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: Authorization value: '{{env.SUGER_API_KEY}}' placement: header exposes: - type: rest namespace: suger-product-rest port: 8080 description: REST adapter for Suger API — Product. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/org/{orgid}/draftproduct name: org-orgid-draftproduct description: REST surface for org-orgId-draftProduct. operations: - method: POST name: createorupdatedraftproduct description: Create Or Update Draft Product call: suger-product.createorupdatedraftproduct with: orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/partner/{partner}/product name: org-orgid-partner-partner-product description: REST surface for org-orgId-partner-partner-product. operations: - method: GET name: listproductsbypartner description: List Products By Partner call: suger-product.listproductsbypartner with: orgId: rest.orgId partner: rest.partner outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product name: org-orgid-product description: REST surface for org-orgId-product. operations: - method: GET name: listproducts description: List Products call: suger-product.listproducts with: orgId: rest.orgId partner: rest.partner limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createproduct description: Create Product call: suger-product.createproduct with: orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product/{productid} name: org-orgid-product-productid description: REST surface for org-orgId-product-productId. operations: - method: DELETE name: deleteproduct description: Delete Product call: suger-product.deleteproduct with: orgId: rest.orgId productId: rest.productId outputParameters: - type: object mapping: $. - method: GET name: getproduct description: Get Product call: suger-product.getproduct with: orgId: rest.orgId productId: rest.productId outputParameters: - type: object mapping: $. - method: PATCH name: updateproduct description: Update Product call: suger-product.updateproduct with: orgId: rest.orgId productId: rest.productId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product/{productid}/dimension name: org-orgid-product-productid-dimension description: REST surface for org-orgId-product-productId-dimension. operations: - method: GET name: listproductmeteringdimensions description: List Metering Dimensions Of Product call: suger-product.listproductmeteringdimensions with: orgId: rest.orgId productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product/{productid}/fulfillmenturl name: org-orgid-product-productid-fulfillmenturl description: REST surface for org-orgId-product-productId-fulfillmentUrl. operations: - method: PATCH name: updateproductfulfillmenturl description: Update Product Fulfillment Url call: suger-product.updateproductfulfillmenturl with: orgId: rest.orgId productId: rest.productId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product/{productid}/metainfo name: org-orgid-product-productid-metainfo description: REST surface for org-orgId-product-productId-metaInfo. operations: - method: PATCH name: updateproductmetainfo description: Update Product Meta Info call: suger-product.updateproductmetainfo with: orgId: rest.orgId productId: rest.productId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/product/{productid}/publish name: org-orgid-product-productid-publish description: REST surface for org-orgId-product-productId-publish. operations: - method: PATCH name: publishproduct description: Publish Product call: suger-product.publishproduct with: orgId: rest.orgId productId: rest.productId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: suger-product-mcp port: 9090 transport: http description: MCP adapter for Suger API — Product. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-update-draft-product description: Create Or Update Draft Product hints: readOnly: false destructive: false idempotent: false call: suger-product.createorupdatedraftproduct with: orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: list-products-partner description: List Products By Partner hints: readOnly: true destructive: false idempotent: true call: suger-product.listproductsbypartner with: orgId: tools.orgId partner: tools.partner outputParameters: - type: object mapping: $. - name: list-products description: List Products hints: readOnly: true destructive: false idempotent: true call: suger-product.listproducts with: orgId: tools.orgId partner: tools.partner limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: create-product description: Create Product hints: readOnly: false destructive: false idempotent: false call: suger-product.createproduct with: orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: delete-product description: Delete Product hints: readOnly: false destructive: true idempotent: true call: suger-product.deleteproduct with: orgId: tools.orgId productId: tools.productId outputParameters: - type: object mapping: $. - name: get-product description: Get Product hints: readOnly: true destructive: false idempotent: true call: suger-product.getproduct with: orgId: tools.orgId productId: tools.productId outputParameters: - type: object mapping: $. - name: update-product description: Update Product hints: readOnly: false destructive: false idempotent: true call: suger-product.updateproduct with: orgId: tools.orgId productId: tools.productId body: tools.body outputParameters: - type: object mapping: $. - name: list-metering-dimensions-product description: List Metering Dimensions Of Product hints: readOnly: true destructive: false idempotent: true call: suger-product.listproductmeteringdimensions with: orgId: tools.orgId productId: tools.productId outputParameters: - type: object mapping: $. - name: update-product-fulfillment-url description: Update Product Fulfillment Url hints: readOnly: false destructive: false idempotent: true call: suger-product.updateproductfulfillmenturl with: orgId: tools.orgId productId: tools.productId body: tools.body outputParameters: - type: object mapping: $. - name: update-product-meta-info description: Update Product Meta Info hints: readOnly: false destructive: false idempotent: true call: suger-product.updateproductmetainfo with: orgId: tools.orgId productId: tools.productId body: tools.body outputParameters: - type: object mapping: $. - name: publish-product description: Publish Product hints: readOnly: false destructive: false idempotent: true call: suger-product.publishproduct with: orgId: tools.orgId productId: tools.productId body: tools.body outputParameters: - type: object mapping: $.