generated: '2026-07-15' method: generated source: openapi/university-of-calgary-aurorax-api.yaml, openapi/university-of-calgary-srs-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: 67 by_action_class: connected: 29 acting: 38 by_consequence: read: 29 write: 38 human_in_the_loop_required: 0 operations: - path: /api/v1/availability/data_products method: get operationId: getDataProductAvailability x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/availability/ephemeris method: get operationId: getEphemerisAvailability x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/conjunctions/requests/{request_id} method: get operationId: getSearchRequestDetails x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/conjunctions/requests/{request_id} method: delete operationId: cancelRequest 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: /api/v1/conjunctions/requests/{request_id}/data method: get operationId: getSearchResultData x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/conjunctions/requests/{request_id}/data method: post operationId: getSearchResultWithDatAdvancedFormatting 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: /api/v1/conjunctions/requests/{request_id}/data method: delete operationId: deleteDataFile 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: /api/v1/conjunctions/search method: post operationId: searchMulti 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: /api/v1/data_products/requests/{request_id} method: get operationId: getSearchRequestDetails_1 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_products/requests/{request_id} method: delete operationId: cancelRequest_1 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: /api/v1/data_products/requests/{request_id}/data method: get operationId: getSearchResultData_1 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_products/requests/{request_id}/data method: post operationId: getSearchResultDataWithAdvancedFormatting 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: /api/v1/data_products/requests/{request_id}/data method: delete operationId: deleteDataFile_1 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: /api/v1/data_products/search method: post operationId: search 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: /api/v1/data_products/search_synchronous method: post operationId: searchSynchronous 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: /api/v1/data_sources method: get operationId: getList x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_sources method: post operationId: add_1 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: /api/v1/data_sources/{identifier} method: get operationId: getDetail x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_sources/{identifier} method: put operationId: update_1 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: /api/v1/data_sources/{identifier} method: delete operationId: delete_1 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: /api/v1/data_sources/{identifier} method: patch operationId: partialUpdate_1 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: /api/v1/data_sources/{identifier}/stats method: get operationId: getStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_sources/search method: post operationId: search_1 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: /api/v1/data_sources/{identifier}/data_products method: post operationId: addDataProducts 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: /api/v1/data_sources/{identifier}/data_products method: delete operationId: deleteDataProduct 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: /api/v1/data_sources/{identifier}/ephemeris method: post operationId: addEphemerisData 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: /api/v1/data_sources/{identifier}/ephemeris method: delete operationId: deleteEphemeris 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: /api/v1/data_sources/{identifier}/ephemeris/delete_jobs/{delete_job_id} method: get operationId: getEphemerisDeleteJobDetail x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_sources/{identifier}/ephemeris/delete_jobs method: get operationId: listEphemerisDeleteJobs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ephemeris/requests/{request_id} method: get operationId: getSearchRequestDetails_2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ephemeris/requests/{request_id} method: delete operationId: cancelRequest_2 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: /api/v1/ephemeris/requests/{request_id}/data method: get operationId: getSearchResultData_2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ephemeris/requests/{request_id}/data method: post operationId: getSearchResultDataWithAdvancedFormatting_1 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: /api/v1/ephemeris/requests/{request_id}/data method: delete operationId: deleteDataFile_2 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: /api/v1/ephemeris/search method: post operationId: search_2 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: /api/v1/ephemeris/search_synchronous method: post operationId: searchSynchronous_1 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: /api/v1/authenticate method: post operationId: authenticate 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: /api/v1/authenticate/end_session method: post operationId: endSession 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: /api/v1/utils/timezones/convert method: get operationId: calcUtc x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/utils/describe/cartesian_products method: post operationId: cartesianProduct 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: /api/v1/utils/admin/search_requests/{request_id} method: delete operationId: deleteSearchRequest 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: /api/v1/utils/admin/search_requests method: get operationId: findSearchRequests x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/utils/timezones method: get operationId: listTimeZones x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/utils/describe/query/conjunction method: post operationId: parse 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: /api/v1/utils/describe/query/data_products method: post operationId: parse_1 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: /api/v1/utils/describe/query/ephemeris method: post operationId: parse_2 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: /api/application.wadl/{path} method: get operationId: getExternalGrammar x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/application.wadl method: get operationId: getWadl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_distribution/datasets method: get operationId: retrieve_datasets_api_v1_data_distribution_datasets_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_distribution/urls method: get operationId: retrieve_urls_api_v1_data_distribution_urls_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_distribution/observatories method: get operationId: retrieve_observatories_api_v1_data_distribution_observatories_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/data_distribution/imaging_timeframes method: post operationId: retrieve_imaging_timeframes_api_v1_data_distribution_imaging_timeframes_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: /api/v1/atm/forward method: post operationId: atm_forward_api_v1_atm_forward_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: /api/v1/atm/inverse method: post operationId: atm_inverse_api_v1_atm_inverse_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: /api/v2/atm/forward method: post operationId: atm_forward_api_v2_atm_forward_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: /api/v2/atm/inverse method: post operationId: atm_inverse_api_v2_atm_inverse_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: /api/v1/utils/terminator method: get operationId: get_terminator_api_v1_utils_terminator_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/utils/magnetic_grid method: get operationId: get_magnetic_grid_api_v1_utils_magnetic_grid_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ops/sitl/arctics/data_products method: get operationId: get_data_products_api_v1_ops_sitl_arctics_data_products_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ops/sitl/arctics/keep_times method: get operationId: get_keep_times_api_v1_ops_sitl_arctics_keep_times_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/ops/sitl/arctics/keep_times method: post operationId: upload_timeframe_api_v1_ops_sitl_arctics_keep_times_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: /api/v1/ops/sitl/arctics/keep_times method: delete operationId: delete_timeframe_api_v1_ops_sitl_arctics_keep_times_delete 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: /api/v1/ops/sitl/logging method: post operationId: upload_log_messages_api_v1_ops_sitl_logging_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: /api/v1/ops/sitl/logging method: get operationId: get_log_messages_api_v1_ops_sitl_logging_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/rt method: get operationId: get_rt_streams_api_v1_rt_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/rt/ws/info method: get operationId: get_rt_websocket_info_api_v1_rt_ws_info_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /api/v1/rt/{id}/latest method: get operationId: get_rt_stream_latest_api_v1_rt__id__latest_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none