Politecnico di Torino Agentic Access
Politecnico di Torino exposes 132 API operations that an AI agent could call, of which 44 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 88 read, 42 write, and 2 physical.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /provisional-grades/{provisionalGradeId}/accept | physical | conditional |
| POST | /provisional-grades/{provisionalGradeId}/reject | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/politecnico-di-torino-faculty-api.yaml, openapi/politecnico-di-torino-students-api.yaml
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: 132
by_action_class:
connected: 88
acting: 44
by_consequence:
read: 88
write: 42
physical: 2
human_in_the_loop_required: 0
operations:
- path: /announcements
method: get
operationId: Announcements_getAnnouncements
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /announcements/{announcementId}/read
method: put
operationId: Announcements_markAnnouncementAsRead
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: /auth/client
method: patch
operationId: Auth_appInfo
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: /auth/login
method: post
operationId: Auth_login
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: /auth/logout
method: delete
operationId: Auth_logout
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: /auth/mfa/challenge
method: get
operationId: Mfa_fetchChallenge
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/mfa/enrol
method: post
operationId: Mfa_enrolMfa
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: /auth/mfa/status
method: get
operationId: Mfa_getMfaStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/mfa/validate
method: post
operationId: Mfa_validateMfa
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: /auth/serviceLink/liveClass/{meetingID}
method: get
operationId: ServiceLink_getLiveClassLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/serviceLink/mail
method: get
operationId: ServiceLink_getMailLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/serviceLink/moodle/{course}
method: get
operationId: ServiceLink_getMoodleLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/switch-career
method: post
operationId: Auth_switchCareer
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: /booking-topics
method: get
operationId: BookingTopics_getBookingTopics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /booking-topics/{bookingTopicId}/slots
method: get
operationId: BookingTopics_getBookingSlots
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /booking-topics/{bookingTopicId}/slots/{bookingSlotId}/seats
method: get
operationId: BookingTopics_getBookingSeats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /bookings
method: get
operationId: BookingsManagement_getBookings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /bookings
method: post
operationId: BookingsManagement_createBooking
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: /bookings/{bookingId}
method: delete
operationId: BookingsManagement_deleteBooking
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: /bookings/{bookingId}
method: patch
operationId: BookingsManagement_updateBooking
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: /courses/{courseId}
method: get
operationId: Courses_getCourse
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/assignments
method: get
operationId: Courses_getCourseAssignments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/assignments
method: post
operationId: Courses_uploadCourseAssignment
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: /courses/{courseId}/assignments/{assignmentId}
method: patch
operationId: Courses_updateAssignment
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: /courses/{courseId}/files
method: get
operationId: Courses_getCourseFiles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/files/{fileId}
method: get
operationId: Courses_getCourseFile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/guide
method: get
operationId: Courses_getCourseGuide
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/nextLecture
method: get
operationId: Courses_getNextLecture
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/notices
method: get
operationId: Courses_getCourseNotices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/preferences
method: patch
operationId: Courses_updateCoursePreferences
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: /courses/{courseId}/videolectures
method: get
operationId: Courses_getCourseVideolectures
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/virtual-classrooms
method: get
operationId: Courses_getCourseVirtualClassrooms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /departments
method: get
operationId: Departments_getDepartments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /lectures
method: get
operationId: Lectures_getLectures
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /news
method: get
operationId: News_getNews
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /news/{newsItemId}
method: get
operationId: News_getNewsItem
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /people
method: get
operationId: People_getPeople
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /people/{personId}
method: get
operationId: People_getPerson
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/courses
method: get
operationId: CoursesV2_getCourses
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/place-categories
method: get
operationId: PlaceCategories_getPlaceCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/places
method: get
operationId: Places_getPlaces
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/places/{placeId}
method: get
operationId: Places_getPlace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sites
method: get
operationId: Sites_getSites
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sites/{siteId}/buildings
method: get
operationId: Sites_getBuildings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sites/{siteId}/free-rooms
method: get
operationId: Sites_getFreeRooms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /announcements
method: get
operationId: Announcements_getAnnouncements
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /announcements/{announcementId}/read
method: put
operationId: Announcements_markAnnouncementAsRead
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: /auth/client
method: patch
operationId: Auth_appInfo
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: /auth/login
method: post
operationId: Auth_login
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: /auth/logout
method: delete
operationId: Auth_logout
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: /auth/mfa/challenge
method: get
operationId: Mfa_fetchChallenge
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/mfa/enrol
method: post
operationId: Mfa_enrolMfa
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: /auth/mfa/status
method: get
operationId: Mfa_getMfaStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/mfa/validate
method: post
operationId: Mfa_validateMfa
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: /auth/serviceLink/liveClass/{meetingID}
method: get
operationId: ServiceLink_getLiveClassLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/serviceLink/mail
method: get
operationId: ServiceLink_getMailLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/serviceLink/moodle/{course}
method: get
operationId: ServiceLink_getMoodleLink
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /auth/switch-career
method: post
operationId: Auth_switchCareer
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: /booking-topics
method: get
operationId: BookingTopics_getBookingTopics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /booking-topics/{bookingTopicId}/slots
method: get
operationId: BookingTopics_getBookingSlots
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /booking-topics/{bookingTopicId}/slots/{bookingSlotId}/seats
method: get
operationId: BookingTopics_getBookingSeats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /bookings
method: get
operationId: BookingsManagement_getBookings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /bookings
method: post
operationId: BookingsManagement_createBooking
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: /bookings/{bookingId}
method: delete
operationId: BookingsManagement_deleteBooking
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: /bookings/{bookingId}
method: patch
operationId: BookingsManagement_updateBooking
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: /courses/{courseId}
method: get
operationId: Courses_getCourse
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/assignments
method: get
operationId: Courses_getCourseAssignments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/assignments
method: post
operationId: Courses_uploadCourseAssignment
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: /courses/{courseId}/assignments/{assignmentId}
method: patch
operationId: Courses_updateAssignment
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: /courses/{courseId}/files
method: get
operationId: Courses_getCourseFiles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/files/{fileId}
method: get
operationId: Courses_getCourseFile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/guide
method: get
operationId: Courses_getCourseGuide
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/nextLecture
method: get
operationId: Courses_getNextLecture
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/notices
method: get
operationId: Courses_getCourseNotices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/preferences
method: patch
operationId: Courses_updateCoursePreferences
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: /courses/{courseId}/videolectures
method: get
operationId: Courses_getCourseVideolectures
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /courses/{courseId}/virtual-classrooms
method: get
operationId: Courses_getCourseVirtualClassrooms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deadlines
method: get
operationId: StudentNs_getDeadlines
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /departments
method: get
operationId: Departments_getDepartments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /esc
method: delete
operationId: Esc_escDelete
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: /esc
method: get
operationId: Esc_escGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /esc/create
method: post
operationId: Esc_escRequest
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: /exams
method: get
operationId: Exams_getExams
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exams/{examId}/booking
method: delete
operationId: Exams_deleteExamBookingById
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: /exams/{examId}/booking
method: post
operationId: Exams_bookExam
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: /exams/{examId}/rescheduleRequest
method: post
operationId: Exams_rescheduleExam
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: /grades
method: get
operationId: StudentNs_getStudentGrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /guides
method: get
operationId: StudentNs_getGuides
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /job-offers
method: get
operationId: JobOffers_getJobOffers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /job-offers/{jobOfferId}
method: get
operationId: JobOffers_getJobOffer
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /lectures
method: get
operationId: Lectures_getLectures
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /me
method: get
operationId: StudentNs_getStudent
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /messages
method: get
operationId: Messages_getMessages
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /messages/{messageId}
method: delete
operationId: Messages_deleteMessage
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: /messages/{messageId}/read
method: put
operationId: Messages_markMessageAsRead
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: /news
method: get
operationId: News_getNews
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /news/{newsItemId}
method: get
operationId: News_getNewsItem
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /notifications
method: get
operationId: Notifications_getNotifications
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /notifications/preferences
method: get
operationId: Notifications_getNotificationPreferences
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /notifications/preferences
method: patch
operationId: Notifications_updateNotificationPreferences
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: /notifications/{notificationId}
method: delete
operationId: Notifications_deleteNotification
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: /notifications/{notificationId}/read
method: put
operationId: Notifications_markNotificationAsRead
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: /offering
method: get
operationId: Offering_getOffering
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /offering/courses/{courseShortcode}
method: get
operationId: Offering_getOfferingCourse
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /offering/courses/{courseShortcode}/statistics
method: get
operationId: Offering_getCourseStatistics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /offering/degrees/{degreeId}
method: get
operationId: Offering_getOfferingDegree
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /people
method: get
operationId: People_getPeople
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /people/{personId}
method: get
operationId: People_getPerson
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /preferences
method: patch
operationId: StudentNs_updateDevicePreferences
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: /provisional-grades
method: get
operationId: ProvisionalGrades_getStudentProvisionalGrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /provisional-grades/{provisionalGradeId}/accept
method: post
operationId: ProvisionalGrades_acceptProvisionalGrade
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: /provisional-grades/{provisionalGradeId}/reject
method: post
operationId: ProvisionalGrades_rejectProvisionalGrade
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: /surveys
method: get
operationId: Surveys_getSurveys
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /ticket-faqs
method: get
operationId: TicketFAQs_searchTicketFAQs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /ticket-topics
method: get
operationId: TicketTopics_getTicketTopics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tickets
method: get
operationId: Tickets_getTickets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tickets
method: post
operationId: Tickets_createTicket
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: /tickets/{ticketId}
method: get
operationId: Tickets_getTicket
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tickets/{ticketId}/attachments/{attachmentId}
method: get
operationId: Tickets_getTicketAttachment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tickets/{ticketId}/close
method: put
operationId: Tickets_markTicketAsClosed
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: /tickets/{ticketId}/read
method: put
operationId: Tickets_markTicketAs
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/politecnico-di-torino/refs/heads/main/agentic-access/politecnico-di-torino-agentic-access.yml