naftiko: 1.0.0-alpha2 info: label: Thought Industries REST API — Enrollments description: 'Thought Industries REST API — Enrollments. 3 operations. Lead operation: Enroll User in Course. Self-contained Naftiko capability covering one Thought Industries business surface.' tags: - Thought Industries - Enrollments created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: THOUGHT_INDUSTRIES_API_KEY: THOUGHT_INDUSTRIES_API_KEY capability: consumes: - type: http namespace: thought-industries-enrollments baseUri: https://{subdomain}.thoughtindustries.com/incoming/api/v1 description: Thought Industries REST API — Enrollments business capability. Self-contained, no shared references. resources: - name: courses-courseId-enrollments path: /courses/{courseId}/enrollments operations: - name: enrolluser method: POST description: Enroll User in Course outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: courseId in: path type: string description: Course ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: courses-courseId-enrollments-bulk-remove path: /courses/{courseId}/enrollments/bulk-remove operations: - name: bulkremoveenrollments method: POST description: Bulk Remove User Access outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: courseId in: path type: string description: Course ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: users-id-enrollments path: /users/{id}/enrollments operations: - name: getuserenrollments method: GET description: Get User Enrollments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: User ID. required: true - name: page in: query type: integer - name: per_page in: query type: integer authentication: type: apikey key: X-API-Key value: '{{env.THOUGHT_INDUSTRIES_API_KEY}}' placement: header exposes: - type: rest namespace: thought-industries-enrollments-rest port: 8080 description: REST adapter for Thought Industries REST API — Enrollments. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/courses/{courseid}/enrollments name: courses-courseid-enrollments description: REST surface for courses-courseId-enrollments. operations: - method: POST name: enrolluser description: Enroll User in Course call: thought-industries-enrollments.enrolluser with: courseId: rest.courseId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/courses/{courseid}/enrollments/bulk-remove name: courses-courseid-enrollments-bulk-remove description: REST surface for courses-courseId-enrollments-bulk-remove. operations: - method: POST name: bulkremoveenrollments description: Bulk Remove User Access call: thought-industries-enrollments.bulkremoveenrollments with: courseId: rest.courseId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{id}/enrollments name: users-id-enrollments description: REST surface for users-id-enrollments. operations: - method: GET name: getuserenrollments description: Get User Enrollments call: thought-industries-enrollments.getuserenrollments with: id: rest.id page: rest.page per_page: rest.per_page outputParameters: - type: object mapping: $. - type: mcp namespace: thought-industries-enrollments-mcp port: 9090 transport: http description: MCP adapter for Thought Industries REST API — Enrollments. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: enroll-user-course description: Enroll User in Course hints: readOnly: false destructive: false idempotent: false call: thought-industries-enrollments.enrolluser with: courseId: tools.courseId body: tools.body outputParameters: - type: object mapping: $. - name: bulk-remove-user-access description: Bulk Remove User Access hints: readOnly: false destructive: false idempotent: false call: thought-industries-enrollments.bulkremoveenrollments with: courseId: tools.courseId body: tools.body outputParameters: - type: object mapping: $. - name: get-user-enrollments description: Get User Enrollments hints: readOnly: true destructive: false idempotent: true call: thought-industries-enrollments.getuserenrollments with: id: tools.id page: tools.page per_page: tools.per_page outputParameters: - type: object mapping: $.