naftiko: 1.0.0-alpha2 info: label: Suger API — Support description: 'Suger API — Support. 8 operations. Lead operation: List Support Tickets. Self-contained Naftiko capability covering one Suger business surface.' tags: - Suger - Support created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SUGER_API_KEY: SUGER_API_KEY capability: consumes: - type: http namespace: suger-support baseUri: https://api.suger.cloud description: Suger API — Support business capability. Self-contained, no shared references. resources: - name: org-orgId-support-ticket path: /org/{orgId}/support/ticket operations: - name: listsupporttickets method: GET description: List Support Tickets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: limit in: query type: integer description: List pagination size, default 1000, max value is 1000 - name: offset in: query type: integer description: List pagination offset, default 0 - name: createsupportticket method: POST description: Create Support Ticket 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-support-ticket-ticketId path: /org/{orgId}/support/ticket/{ticketId} operations: - name: getsupportticket method: GET description: Get Support Ticket outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true - name: updatesupportticket method: PATCH description: Update Support Ticket outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-support-ticket-ticketId-attachment path: /org/{orgId}/support/ticket/{ticketId}/attachment operations: - name: createsupportticketattachment method: POST description: Create Support Ticket Attachment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-support-ticket-ticketId-close path: /org/{orgId}/support/ticket/{ticketId}/close operations: - name: closesupportticket method: PATCH description: Close Support Ticket outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true - name: org-orgId-support-ticket-ticketId-comment path: /org/{orgId}/support/ticket/{ticketId}/comment operations: - name: createsupportticketcomment method: POST description: Create Support Ticket Comment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true - name: body in: body type: object description: Request body (JSON). required: true - name: org-orgId-support-ticket-ticketId-reopen path: /org/{orgId}/support/ticket/{ticketId}/reopen operations: - name: reopensupportticket method: PATCH description: Reopen Support Ticket outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgId in: path type: string description: Organization ID required: true - name: ticketId in: path type: string description: Ticket ID required: true authentication: type: apikey key: Authorization value: '{{env.SUGER_API_KEY}}' placement: header exposes: - type: rest namespace: suger-support-rest port: 8080 description: REST adapter for Suger API — Support. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/org/{orgid}/support/ticket name: org-orgid-support-ticket description: REST surface for org-orgId-support-ticket. operations: - method: GET name: listsupporttickets description: List Support Tickets call: suger-support.listsupporttickets with: orgId: rest.orgId limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createsupportticket description: Create Support Ticket call: suger-support.createsupportticket with: orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/support/ticket/{ticketid} name: org-orgid-support-ticket-ticketid description: REST surface for org-orgId-support-ticket-ticketId. operations: - method: GET name: getsupportticket description: Get Support Ticket call: suger-support.getsupportticket with: orgId: rest.orgId ticketId: rest.ticketId outputParameters: - type: object mapping: $. - method: PATCH name: updatesupportticket description: Update Support Ticket call: suger-support.updatesupportticket with: orgId: rest.orgId ticketId: rest.ticketId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/support/ticket/{ticketid}/attachment name: org-orgid-support-ticket-ticketid-attachment description: REST surface for org-orgId-support-ticket-ticketId-attachment. operations: - method: POST name: createsupportticketattachment description: Create Support Ticket Attachment call: suger-support.createsupportticketattachment with: orgId: rest.orgId ticketId: rest.ticketId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/support/ticket/{ticketid}/close name: org-orgid-support-ticket-ticketid-close description: REST surface for org-orgId-support-ticket-ticketId-close. operations: - method: PATCH name: closesupportticket description: Close Support Ticket call: suger-support.closesupportticket with: orgId: rest.orgId ticketId: rest.ticketId outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/support/ticket/{ticketid}/comment name: org-orgid-support-ticket-ticketid-comment description: REST surface for org-orgId-support-ticket-ticketId-comment. operations: - method: POST name: createsupportticketcomment description: Create Support Ticket Comment call: suger-support.createsupportticketcomment with: orgId: rest.orgId ticketId: rest.ticketId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/org/{orgid}/support/ticket/{ticketid}/reopen name: org-orgid-support-ticket-ticketid-reopen description: REST surface for org-orgId-support-ticket-ticketId-reopen. operations: - method: PATCH name: reopensupportticket description: Reopen Support Ticket call: suger-support.reopensupportticket with: orgId: rest.orgId ticketId: rest.ticketId outputParameters: - type: object mapping: $. - type: mcp namespace: suger-support-mcp port: 9090 transport: http description: MCP adapter for Suger API — Support. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-support-tickets description: List Support Tickets hints: readOnly: true destructive: false idempotent: true call: suger-support.listsupporttickets with: orgId: tools.orgId limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: create-support-ticket description: Create Support Ticket hints: readOnly: false destructive: false idempotent: false call: suger-support.createsupportticket with: orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: get-support-ticket description: Get Support Ticket hints: readOnly: true destructive: false idempotent: true call: suger-support.getsupportticket with: orgId: tools.orgId ticketId: tools.ticketId outputParameters: - type: object mapping: $. - name: update-support-ticket description: Update Support Ticket hints: readOnly: false destructive: false idempotent: true call: suger-support.updatesupportticket with: orgId: tools.orgId ticketId: tools.ticketId body: tools.body outputParameters: - type: object mapping: $. - name: create-support-ticket-attachment description: Create Support Ticket Attachment hints: readOnly: false destructive: false idempotent: false call: suger-support.createsupportticketattachment with: orgId: tools.orgId ticketId: tools.ticketId body: tools.body outputParameters: - type: object mapping: $. - name: close-support-ticket description: Close Support Ticket hints: readOnly: false destructive: false idempotent: true call: suger-support.closesupportticket with: orgId: tools.orgId ticketId: tools.ticketId outputParameters: - type: object mapping: $. - name: create-support-ticket-comment description: Create Support Ticket Comment hints: readOnly: false destructive: false idempotent: false call: suger-support.createsupportticketcomment with: orgId: tools.orgId ticketId: tools.ticketId body: tools.body outputParameters: - type: object mapping: $. - name: reopen-support-ticket description: Reopen Support Ticket hints: readOnly: false destructive: false idempotent: true call: suger-support.reopensupportticket with: orgId: tools.orgId ticketId: tools.ticketId outputParameters: - type: object mapping: $.