naftiko: 1.0.0-alpha2 info: label: Paradox API — Users description: 'Paradox API — Users. 11 operations. Lead operation: Paradox Get users. Self-contained Naftiko capability covering one Paradox business surface.' tags: - Paradox - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PARADOX_API_KEY: PARADOX_API_KEY capability: consumes: - type: http namespace: paradox-users baseUri: https://api.paradox.ai/api/v1/public description: Paradox API — Users business capability. Self-contained, no shared references. resources: - name: users path: /users operations: - name: getusers method: GET description: Paradox Get users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer description: Maximum number of results to return - name: page in: query type: integer description: Page number for pagination - name: include_campus_permission in: query type: boolean description: Include campus permission data in response - name: external_role_id in: query type: string description: Filter by external role identifier - name: location_id in: query type: string description: Filter by location identifier - name: createuser method: POST description: Paradox Create user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users-employees-employee_id path: /users/employees/{employee_id} operations: - name: getuserbyemployeeid method: GET description: Paradox Get user by employee ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: employee_id in: path type: string description: Employee identifier required: true - name: updateuserbyemployeeid method: PUT description: Paradox Update user by employee ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: employee_id in: path type: string description: Employee identifier required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuserbyemployeeid method: DELETE description: Paradox Delete user by employee ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: employee_id in: path type: string description: Employee identifier required: true - name: users-roles path: /users/roles operations: - name: getuserroles method: GET description: Paradox Get user roles outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-oid path: /users/{oid} operations: - name: getuser method: GET description: Paradox Get single user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateuser method: PUT description: Paradox Update user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuser method: DELETE description: Paradox Delete user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-oid-deactivate path: /users/{oid}/deactivate operations: - name: deactivateuser method: POST description: Paradox Deactivate user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-oid-reactivate path: /users/{oid}/reactivate operations: - name: reactivateuser method: POST description: Paradox Reactivate user outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.PARADOX_API_KEY}}' exposes: - type: rest namespace: paradox-users-rest port: 8080 description: REST adapter for Paradox API — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users name: users description: REST surface for users. operations: - method: GET name: getusers description: Paradox Get users call: paradox-users.getusers with: limit: rest.limit page: rest.page include_campus_permission: rest.include_campus_permission external_role_id: rest.external_role_id location_id: rest.location_id outputParameters: - type: object mapping: $. - method: POST name: createuser description: Paradox Create user call: paradox-users.createuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/employees/{employee-id} name: users-employees-employee-id description: REST surface for users-employees-employee_id. operations: - method: GET name: getuserbyemployeeid description: Paradox Get user by employee ID call: paradox-users.getuserbyemployeeid with: employee_id: rest.employee_id outputParameters: - type: object mapping: $. - method: PUT name: updateuserbyemployeeid description: Paradox Update user by employee ID call: paradox-users.updateuserbyemployeeid with: employee_id: rest.employee_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuserbyemployeeid description: Paradox Delete user by employee ID call: paradox-users.deleteuserbyemployeeid with: employee_id: rest.employee_id outputParameters: - type: object mapping: $. - path: /v1/users/roles name: users-roles description: REST surface for users-roles. operations: - method: GET name: getuserroles description: Paradox Get user roles call: paradox-users.getuserroles outputParameters: - type: object mapping: $. - path: /v1/users/{oid} name: users-oid description: REST surface for users-oid. operations: - method: GET name: getuser description: Paradox Get single user call: paradox-users.getuser outputParameters: - type: object mapping: $. - method: PUT name: updateuser description: Paradox Update user call: paradox-users.updateuser with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuser description: Paradox Delete user call: paradox-users.deleteuser outputParameters: - type: object mapping: $. - path: /v1/users/{oid}/deactivate name: users-oid-deactivate description: REST surface for users-oid-deactivate. operations: - method: POST name: deactivateuser description: Paradox Deactivate user call: paradox-users.deactivateuser outputParameters: - type: object mapping: $. - path: /v1/users/{oid}/reactivate name: users-oid-reactivate description: REST surface for users-oid-reactivate. operations: - method: POST name: reactivateuser description: Paradox Reactivate user call: paradox-users.reactivateuser outputParameters: - type: object mapping: $. - type: mcp namespace: paradox-users-mcp port: 9090 transport: http description: MCP adapter for Paradox API — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: paradox-get-users description: Paradox Get users hints: readOnly: true destructive: false idempotent: true call: paradox-users.getusers with: limit: tools.limit page: tools.page include_campus_permission: tools.include_campus_permission external_role_id: tools.external_role_id location_id: tools.location_id outputParameters: - type: object mapping: $. - name: paradox-create-user description: Paradox Create user hints: readOnly: false destructive: false idempotent: false call: paradox-users.createuser with: body: tools.body outputParameters: - type: object mapping: $. - name: paradox-get-user-employee-id description: Paradox Get user by employee ID hints: readOnly: true destructive: false idempotent: true call: paradox-users.getuserbyemployeeid with: employee_id: tools.employee_id outputParameters: - type: object mapping: $. - name: paradox-update-user-employee-id description: Paradox Update user by employee ID hints: readOnly: false destructive: false idempotent: true call: paradox-users.updateuserbyemployeeid with: employee_id: tools.employee_id body: tools.body outputParameters: - type: object mapping: $. - name: paradox-delete-user-employee-id description: Paradox Delete user by employee ID hints: readOnly: false destructive: true idempotent: true call: paradox-users.deleteuserbyemployeeid with: employee_id: tools.employee_id outputParameters: - type: object mapping: $. - name: paradox-get-user-roles description: Paradox Get user roles hints: readOnly: true destructive: false idempotent: true call: paradox-users.getuserroles outputParameters: - type: object mapping: $. - name: paradox-get-single-user description: Paradox Get single user hints: readOnly: true destructive: false idempotent: true call: paradox-users.getuser outputParameters: - type: object mapping: $. - name: paradox-update-user description: Paradox Update user hints: readOnly: false destructive: false idempotent: true call: paradox-users.updateuser with: body: tools.body outputParameters: - type: object mapping: $. - name: paradox-delete-user description: Paradox Delete user hints: readOnly: false destructive: true idempotent: true call: paradox-users.deleteuser outputParameters: - type: object mapping: $. - name: paradox-deactivate-user description: Paradox Deactivate user hints: readOnly: false destructive: false idempotent: false call: paradox-users.deactivateuser outputParameters: - type: object mapping: $. - name: paradox-reactivate-user description: Paradox Reactivate user hints: readOnly: false destructive: false idempotent: false call: paradox-users.reactivateuser outputParameters: - type: object mapping: $.