naftiko: 1.0.0-alpha2 info: label: Liferay Roles API — Roles description: 'Liferay Roles API — Roles. 8 operations. Lead operation: List roles. Self-contained Naftiko capability covering one Liferay business surface.' tags: - Liferay - Roles created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LIFERAY_API_KEY: LIFERAY_API_KEY capability: consumes: - type: http namespace: liferay-roles baseUri: http://localhost:8080/o/headless-admin-user/v1.0 description: Liferay Roles API — Roles business capability. Self-contained, no shared references. resources: - name: roles path: /roles operations: - name: getroles method: GET description: List roles outputRawFormat: json outputParameters: - name: result type: object value: $. - name: roles-roleId path: /roles/{roleId} operations: - name: getrole method: GET description: Get a role outputRawFormat: json outputParameters: - name: result type: object value: $. - name: roles-roleId-association-user-account-userId path: /roles/{roleId}/association/user-account/{userId} operations: - name: associateroletouser method: POST description: Associate a regular role to a user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dissociaterolefromuser method: DELETE description: Remove regular role association from a user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: roles-roleId-association-user-account-userId-organization-orgId path: /roles/{roleId}/association/user-account/{userId}/organization/{orgId} operations: - name: associateorgroletouser method: POST description: Associate an organization role to a user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dissociateorgrolefromuser method: DELETE description: Remove organization role association from a user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: roles-roleId-association-user-account-userId-site-siteId path: /roles/{roleId}/association/user-account/{userId}/site/{siteId} operations: - name: associatesiteroletouser method: POST description: Associate a site role to a user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dissociatesiterolefromuser method: DELETE description: Remove site role association from a user outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: basic username: '{{env.LIFERAY_USER}}' password: '{{env.LIFERAY_PASS}}' exposes: - type: rest namespace: liferay-roles-rest port: 8080 description: REST adapter for Liferay Roles 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: getroles description: List roles call: liferay-roles.getroles 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: liferay-roles.getrole outputParameters: - type: object mapping: $. - path: /v1/roles/{roleid}/association/user-account/{userid} name: roles-roleid-association-user-account-userid description: REST surface for roles-roleId-association-user-account-userId. operations: - method: POST name: associateroletouser description: Associate a regular role to a user call: liferay-roles.associateroletouser outputParameters: - type: object mapping: $. - method: DELETE name: dissociaterolefromuser description: Remove regular role association from a user call: liferay-roles.dissociaterolefromuser outputParameters: - type: object mapping: $. - path: /v1/roles/{roleid}/association/user-account/{userid}/organization/{orgid} name: roles-roleid-association-user-account-userid-organization-orgid description: REST surface for roles-roleId-association-user-account-userId-organization-orgId. operations: - method: POST name: associateorgroletouser description: Associate an organization role to a user call: liferay-roles.associateorgroletouser outputParameters: - type: object mapping: $. - method: DELETE name: dissociateorgrolefromuser description: Remove organization role association from a user call: liferay-roles.dissociateorgrolefromuser outputParameters: - type: object mapping: $. - path: /v1/roles/{roleid}/association/user-account/{userid}/site/{siteid} name: roles-roleid-association-user-account-userid-site-siteid description: REST surface for roles-roleId-association-user-account-userId-site-siteId. operations: - method: POST name: associatesiteroletouser description: Associate a site role to a user call: liferay-roles.associatesiteroletouser outputParameters: - type: object mapping: $. - method: DELETE name: dissociatesiterolefromuser description: Remove site role association from a user call: liferay-roles.dissociatesiterolefromuser outputParameters: - type: object mapping: $. - type: mcp namespace: liferay-roles-mcp port: 9090 transport: http description: MCP adapter for Liferay Roles 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: liferay-roles.getroles outputParameters: - type: object mapping: $. - name: get-role description: Get a role hints: readOnly: true destructive: false idempotent: true call: liferay-roles.getrole outputParameters: - type: object mapping: $. - name: associate-regular-role-user description: Associate a regular role to a user hints: readOnly: false destructive: false idempotent: false call: liferay-roles.associateroletouser outputParameters: - type: object mapping: $. - name: remove-regular-role-association-user description: Remove regular role association from a user hints: readOnly: false destructive: true idempotent: true call: liferay-roles.dissociaterolefromuser outputParameters: - type: object mapping: $. - name: associate-organization-role-user description: Associate an organization role to a user hints: readOnly: false destructive: false idempotent: false call: liferay-roles.associateorgroletouser outputParameters: - type: object mapping: $. - name: remove-organization-role-association-user description: Remove organization role association from a user hints: readOnly: false destructive: true idempotent: true call: liferay-roles.dissociateorgrolefromuser outputParameters: - type: object mapping: $. - name: associate-site-role-user description: Associate a site role to a user hints: readOnly: false destructive: false idempotent: false call: liferay-roles.associatesiteroletouser outputParameters: - type: object mapping: $. - name: remove-site-role-association-user description: Remove site role association from a user hints: readOnly: false destructive: true idempotent: true call: liferay-roles.dissociatesiterolefromuser outputParameters: - type: object mapping: $.