generated: '2026-10-09' method: generated source: openapi/open-education-api-openapi.yml, openapi/open-education-api-v5-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 153 by_action_class: connected: 124 acting: 29 by_consequence: read: 124 write: 28 physical: 1 human_in_the_loop_required: 0 operations: - path: / method: get operationId: listServiceMetaData x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions method: get operationId: listAcademicSessions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId} method: get operationId: listAcademicSessionById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId}/course-offerings method: get operationId: listCourseOfferingsByAcademicSessionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId}/learning-component-offerings method: get operationId: listLearningComponentOfferingsByAcademicSessionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId}/programme-offerings method: get operationId: listProgrammeOfferingsByAcademicSessionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId}/test-component-offerings method: get operationId: listTestComponentOfferingsByAcademicSessionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /buildings method: get operationId: listBuildings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /buildings/{buildingId} method: get operationId: listBuildingById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /buildings/{buildingId}/rooms method: get operationId: listRoomsByBuildingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offering-associations/external/me method: post operationId: createExternalCourseOfferingAssociationByopenId x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /course-offering-associations/{courseOfferingAssociationId} method: get operationId: listCourseOfferingAssociationById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offering-associations/{courseOfferingAssociationId} method: put operationId: replaceCourseOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /course-offering-associations/{courseOfferingAssociationId} method: patch operationId: partialUpdateCourseOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /course-offerings/{courseOfferingId} method: get operationId: listCourseOfferingsById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offerings/{courseOfferingId} method: put operationId: replaceCourseOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /course-offerings/{courseOfferingId} method: patch operationId: partialUpdateCourseOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /course-offerings/{courseOfferingId}/course-offering-associations method: get operationId: listCourseOfferingAssociationsByCourseOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offerings/{courseOfferingId}/groups method: get operationId: listGroupsByCourseOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offerings/{courseOfferingId}/learning-component-offerings method: get operationId: listLearningComponentOfferingsByCourseOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /course-offerings/{courseOfferingId}/test-component-offerings method: get operationId: listTestComponentOfferingsByCourseOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses method: get operationId: listCourses x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId} method: get operationId: listCourseById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/course-offerings method: get operationId: listCourseOfferingsByCourseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/learning-component-offerings method: get operationId: listLearningCompoentOfferingsByCourseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/learning-components method: get operationId: listLearningComponentsByCourseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/test-component-offerings method: get operationId: listTestCompoentOfferingsByCourseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/test-components method: get operationId: listTestComponentsByCourseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /documents/{documentId} method: get operationId: listDocumentById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups method: get operationId: listGroups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups/{groupId} method: get operationId: listGroupById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups/{groupId} method: put operationId: replaceGroupById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /groups/{groupId}/memberships method: get operationId: listMembershipsByGroupId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups/{groupId}/memberships/{personId} method: put operationId: replacePersoninGroupById x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /learning-component-offering-associations/{learningComponentOfferingAssociationId} method: get operationId: listLearningComponentOfferingAssociationById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-component-offering-associations/{learningComponentOfferingAssociationId} method: put operationId: replaceLearningComponentOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /learning-component-offering-associations/{learningComponentOfferingAssociationId} method: patch operationId: partialUpdateLearningComponentOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /learning-component-offerings/{learningComponentOfferingId} method: get operationId: listLearningComponentOfferingsById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-component-offerings/{learningComponentOfferingId} method: put operationId: replaceLearningComponentOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /learning-component-offerings/{learningComponentOfferingId} method: patch operationId: partialUpdateLearningComponentOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /learning-component-offerings/{learningComponentOfferingId}/groups method: get operationId: listGroupsByLearningComponentOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-component-offerings/{learningComponentOfferingId}/learning-component-offering-associations method: get operationId: listLearningComponentOfferingAssociationsByLearningComponentOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-components method: get operationId: listLearningComponents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-components/{learningComponentId} method: get operationId: listLearningComponentById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-components/{learningComponentId}/learning-component-offerings method: get operationId: listOfferingsByLearningComponentId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-outcomes method: get operationId: listLearningOutcomes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /learning-outcomes/{learningOutcomeId} method: get operationId: listLearningOutcomeById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations method: get operationId: listOrganisations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId} method: get operationId: listOrganisationById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId} method: put operationId: replaceOrganisationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /organisations/{organisationId}/course-offerings method: get operationId: listCourseOfferingsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/courses method: get operationId: listCoursesByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/groups method: get operationId: listGroupsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/learning-component-offerings method: get operationId: listLearningComponentOfferingsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/learning-components method: get operationId: listLearningComponentsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/programme-offerings method: get operationId: listProgrammeOfferingsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/programmes method: get operationId: listProgrammesByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/test-component-offerings method: get operationId: listTestComponentOfferingsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organisations/{organisationId}/test-components method: get operationId: listTestComponentsByOrganisationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons method: get operationId: listPersons x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons method: post operationId: createPerson x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /persons/me method: get operationId: listPersonByMyOauthId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId} method: get operationId: listPersonById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId} method: put operationId: replacePersonById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /persons/{personId}/course-offering-associations method: get operationId: listCourseOfferingAssociationsByPersonId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId}/learning-component-offering-associations method: get operationId: listLearningComponentOfferingAssociationsByPersonId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId}/programme-offering-associations method: get operationId: listProgrammeOfferingAssociationsByPersonId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId}/test-component-offering-associations method: get operationId: listTestComponentOfferingAssociationsByPersonId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programme-offering-associations/external/me method: post operationId: createExternalProgrammeOfferingAssociationByopenId x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /programme-offering-associations/{programmeOfferingAssociationId} method: get operationId: listProgrammeOfferingAssociationById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programme-offering-associations/{programmeOfferingAssociationId} method: put operationId: replaceProgrammeOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /programme-offering-associations/{programmeOfferingAssociationId} method: patch operationId: partialUpdateProgrammeOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /programme-offerings/{programmeOfferingId} method: get operationId: listProgrammeOfferingsById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programme-offerings/{programmeOfferingId} method: put operationId: replaceProgrammeOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /programme-offerings/{programmeOfferingId} method: patch operationId: partialUpdateProgrammeOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /programme-offerings/{programmeOfferingId}/groups method: get operationId: listGroupsByProgrammeOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programme-offerings/{programmeOfferingId}/programme-offering-associations method: get operationId: listProgrammeOfferingAssociationsByProgrammeOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programmes method: get operationId: listProgrammes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programmes/{programmeId} method: get operationId: listProgrammeById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programmes/{programmeId}/courses method: get operationId: listCoursesByProgrammeId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programmes/{programmeId}/programme-offerings method: get operationId: listOfferingsByProgrammeId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programmes/{programmeId}/programmes method: get operationId: listProgrammesByProgrammeId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /rooms method: get operationId: listRooms x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /rooms/{roomId} method: get operationId: listRoomById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offering-associations/{testComponentOfferingAssociationId} method: get operationId: listTestComponentOfferingAssociationById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offering-associations/{testComponentOfferingAssociationId} method: put operationId: replaceTestComponentOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offering-associations/{testComponentOfferingAssociationId} method: patch operationId: partialUpdateTestComponentOfferingAssociationById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offering-associations/{testComponentOfferingAssociationId}/url method: get operationId: listTestComponentOfferingAssociationUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offering-associations/{testComponentOfferingAssociationId}/test-component-offering-association-attempts method: get operationId: listTestComponentOfferingAssociationAttemptsByTestComponentOfferingAssociationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offering-associations/{testComponentOfferingAssociationId}/test-component-offering-association-attempt/{testComponentOfferingAssociationAttemptId} method: put operationId: insertOrReplaceTestComponentOfferingAssociationAttemptByAssociationIdAndAttemptId x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offering-associations-attempt/{testComponentOfferingAssociationAttemptId} method: get operationId: listTestComponentOfferingAssociationAttemptById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offering-associations-attempt/{testComponentOfferingAssociationAttemptId} method: put operationId: insertOrReplaceTestComponentOfferingAssociationAttemptById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offering-associations-attempt/{testComponentOfferingAssociationAttemptId} method: patch operationId: partialUpdateTestComponentOfferingAssociationAttemptById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offerings/{testComponentOfferingId} method: get operationId: listTestComponentOfferingsById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offerings/{testComponentOfferingId} method: put operationId: replaceTestComponentOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offerings/{testComponentOfferingId} method: patch operationId: partialUpdateTestComponentOfferingsById x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /test-component-offerings/{testComponentOfferingId}/groups method: get operationId: listGroupsByTestComponentOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-component-offerings/{testComponentOfferingId}/test-component-offering-associations method: get operationId: listTestComponentOfferingAssociationsByTestComponentOfferingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-components method: get operationId: listTestComponents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-components/{testComponentId} method: get operationId: listTestComponentById x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /test-components/{testComponentId}/test-component-offerings method: get operationId: listOfferingsByTestComponentId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: / method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons method: post x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /persons/me method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId}/associations method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /persons/{personId}/groups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/programs method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/courses method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/components method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/offerings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/groups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organizationId}/education-specifications method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /academic-sessions/{academicSessionId}/offerings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programs method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programs/{programId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programs/{programId}/programs method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programs/{programId}/courses method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /programs/{programId}/offerings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/components method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /courses/{courseId}/offerings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /components/{componentId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /components/{componentId}/offerings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /offerings/{offeringId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /offerings/{offeringId}/associations method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /offerings/{offeringId}/groups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /associations/{associationId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /associations/{associationId} method: patch x-agentic-access: action-class: acting consequence: write subject: required scope: - associations.write audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /associations/external/me method: post x-agentic-access: action-class: acting consequence: write subject: required scope: - associations:external:me.write audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /buildings method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /buildings/{buildingId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /buildings/{buildingId}/rooms method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /rooms method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /rooms/{roomId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /news-feeds method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /news-feeds/{newsFeedId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /news-feeds/{newsFeedId}/news-items method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /news-items/{newsItemId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /education-specifications method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /education-specifications/{educationSpecificationId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /education-specifications/{educationSpecificationId}/education-specifications method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /education-specifications/{educationSpecificationId}/courses method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /education-specifications/{educationSpecificationId}/programs method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups/{groupId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /groups/{groupId}/persons method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none