naftiko: 1.0.0-alpha2 info: label: Escape Public API — Roles description: 'Escape Public API — Roles. 6 operations. Lead operation: List roles. Self-contained Naftiko capability covering one Escape business surface.' tags: - Escape - Roles created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ESCAPE_API_KEY: ESCAPE_API_KEY capability: consumes: - type: http namespace: escape-roles baseUri: https://public.escape.tech/v3 description: Escape Public API — Roles business capability. Self-contained, no shared references. resources: - name: roles path: /roles operations: - name: listroles method: GET description: List roles outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createrole method: POST description: Create a role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: roles-bindings path: /roles/bindings operations: - name: createrolebindings method: POST description: Create role bindings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: roles-bindings-bindingId path: /roles/bindings/{bindingId} operations: - name: deleterolebinding method: DELETE description: Delete a role binding outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: bindingId in: path type: string description: The role binding ID required: true - name: roles-roleId path: /roles/{roleId} operations: - name: getrole method: GET description: Get a role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: roleId in: path type: string description: The role ID required: true - name: updaterole method: PUT description: Update a role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: roleId in: path type: string description: The role ID required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: X-ESCAPE-API-KEY value: '{{env.ESCAPE_API_KEY}}' placement: header exposes: - type: rest namespace: escape-roles-rest port: 8080 description: REST adapter for Escape Public API — Roles. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/roles name: roles description: REST surface for roles. operations: - method: GET name: listroles description: List roles call: escape-roles.listroles outputParameters: - type: object mapping: $. - method: POST name: createrole description: Create a role call: escape-roles.createrole with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/roles/bindings name: roles-bindings description: REST surface for roles-bindings. operations: - method: POST name: createrolebindings description: Create role bindings call: escape-roles.createrolebindings with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/roles/bindings/{bindingid} name: roles-bindings-bindingid description: REST surface for roles-bindings-bindingId. operations: - method: DELETE name: deleterolebinding description: Delete a role binding call: escape-roles.deleterolebinding with: bindingId: rest.bindingId outputParameters: - type: object mapping: $. - path: /v1/roles/{roleid} name: roles-roleid description: REST surface for roles-roleId. operations: - method: GET name: getrole description: Get a role call: escape-roles.getrole with: roleId: rest.roleId outputParameters: - type: object mapping: $. - method: PUT name: updaterole description: Update a role call: escape-roles.updaterole with: roleId: rest.roleId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: escape-roles-mcp port: 9090 transport: http description: MCP adapter for Escape Public API — Roles. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-roles description: List roles hints: readOnly: true destructive: false idempotent: true call: escape-roles.listroles outputParameters: - type: object mapping: $. - name: create-role description: Create a role hints: readOnly: false destructive: false idempotent: false call: escape-roles.createrole with: body: tools.body outputParameters: - type: object mapping: $. - name: create-role-bindings description: Create role bindings hints: readOnly: false destructive: false idempotent: false call: escape-roles.createrolebindings with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-role-binding description: Delete a role binding hints: readOnly: false destructive: true idempotent: true call: escape-roles.deleterolebinding with: bindingId: tools.bindingId outputParameters: - type: object mapping: $. - name: get-role description: Get a role hints: readOnly: true destructive: false idempotent: true call: escape-roles.getrole with: roleId: tools.roleId outputParameters: - type: object mapping: $. - name: update-role description: Update a role hints: readOnly: false destructive: false idempotent: true call: escape-roles.updaterole with: roleId: tools.roleId body: tools.body outputParameters: - type: object mapping: $.