generated: '2026-07-15' method: generated source: openapi/novu-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: 135 by_action_class: acting: 92 connected: 43 by_consequence: safety-critical: 92 read: 43 human_in_the_loop_required: 92 operations: - path: /v1/environments method: post operationId: EnvironmentsControllerV1_createEnvironment x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/environments method: get operationId: EnvironmentsControllerV1_listMyEnvironments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/environments/{environmentId} method: put operationId: EnvironmentsControllerV1_updateMyEnvironment x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/environments/{environmentId} method: delete operationId: EnvironmentsControllerV1_deleteEnvironment x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/events/trigger method: post operationId: EventsController_trigger x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/events/trigger/bulk method: post operationId: EventsController_triggerBulk x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/events/trigger/broadcast method: post operationId: EventsController_broadcastEventToAll x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/events/trigger/{transactionId} method: delete operationId: EventsController_cancel x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/notifications method: get operationId: NotificationsController_listNotifications x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/notifications/{notificationId} method: get operationId: NotificationsController_getNotification x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains method: get operationId: DomainsController_listDomains x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains method: post operationId: DomainsController_createDomain x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain} method: get operationId: DomainsController_getDomain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains/{domain} method: patch operationId: DomainsController_updateDomain x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain} method: delete operationId: DomainsController_deleteDomain x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/verify method: post operationId: DomainsController_verifyDomain x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/diagnose method: post operationId: DomainsController_diagnoseDomain x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/routes method: get operationId: DomainsController_listDomainRoutes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains/{domain}/routes method: post operationId: DomainsController_createDomainRoute x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/routes/{address} method: get operationId: DomainsController_getDomainRoute x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains/{domain}/routes/{address} method: patch operationId: DomainsController_updateDomainRoute x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/routes/{address} method: delete operationId: DomainsController_deleteDomainRoute x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/routes/{address}/test method: post operationId: DomainsController_testDomainRoute x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/domains/{domain}/auto-configure method: get operationId: DomainsController_getDomainAutoConfigure x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/domains/{domain}/auto-configure/start method: post operationId: DomainsController_startDomainAutoConfigure x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations method: get operationId: IntegrationsController_listIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations method: post operationId: IntegrationsController_createIntegration x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/active method: get operationId: IntegrationsController_getActiveIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/integrations/{integrationId} method: put operationId: IntegrationsController_updateIntegrationById x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/{integrationId} method: delete operationId: IntegrationsController_removeIntegration x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/{integrationId}/auto-configure method: post operationId: IntegrationsController_autoConfigureIntegration x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/{integrationId}/set-primary method: post operationId: IntegrationsController_setIntegrationAsPrimary x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/chat/oauth method: post operationId: IntegrationsController_getChatOAuthUrl x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/channel-connections/oauth method: post operationId: IntegrationsController_generateConnectOAuthUrl x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/integrations/channel-endpoints/oauth method: post operationId: IntegrationsController_generateLinkUserOAuthUrl x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/contexts method: post operationId: ContextsController_createContext x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/contexts method: get operationId: ContextsController_listContexts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/contexts/{type}/{id} method: patch operationId: ContextsController_updateContext x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/contexts/{type}/{id} method: get operationId: ContextsController_getContext x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/contexts/{type}/{id} method: delete operationId: ContextsController_deleteContext x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/bulk method: post operationId: SubscribersV1Controller_bulkCreateSubscribers x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/credentials method: put operationId: SubscribersV1Controller_updateSubscriberChannel x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/credentials method: patch operationId: SubscribersV1Controller_modifySubscriberChannel x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/credentials/{providerId} method: delete operationId: SubscribersV1Controller_deleteSubscriberCredentials x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/online-status method: patch operationId: SubscribersV1Controller_updateSubscriberOnlineFlag x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/notifications/feed method: get operationId: SubscribersV1Controller_getNotificationsFeed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscribers/{subscriberId}/notifications/unseen method: get operationId: SubscribersV1Controller_getUnseenCount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscribers/{subscriberId}/messages/mark-as method: post operationId: SubscribersV1Controller_markMessagesAs x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/messages/mark-all method: post operationId: SubscribersV1Controller_markAllUnreadAsRead x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} method: post operationId: SubscribersV1Controller_markActionAsSeen x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers method: get operationId: SubscribersController_searchSubscribers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers method: post operationId: SubscribersController_createSubscriber x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId} method: get operationId: SubscribersController_getSubscriber x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers/{subscriberId} method: patch operationId: SubscribersController_patchSubscriber x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId} method: delete operationId: SubscribersController_removeSubscriber x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/preferences method: get operationId: SubscribersController_getSubscriberPreferences x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers/{subscriberId}/preferences method: patch operationId: SubscribersController_updateSubscriberPreferences x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/preferences/bulk method: patch operationId: SubscribersController_bulkUpdateSubscriberPreferences x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/subscriptions method: get operationId: SubscribersController_listSubscriberTopics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers/{subscriberId}/notifications method: get operationId: SubscribersController_getSubscriberNotifications x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers/{subscriberId}/notifications/count method: get operationId: SubscribersController_getSubscriberNotificationsCount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/read method: patch operationId: SubscribersController_markNotificationAsRead x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/unread method: patch operationId: SubscribersController_markNotificationAsUnread x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/archive method: patch operationId: SubscribersController_archiveNotification x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/unarchive method: patch operationId: SubscribersController_unarchiveNotification x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/snooze method: patch operationId: SubscribersController_snoozeNotification x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/unsnooze method: patch operationId: SubscribersController_unsnoozeNotification x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId} method: delete operationId: SubscribersController_deleteNotification x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/complete method: patch operationId: SubscribersController_completeNotificationAction x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/{notificationId}/actions/{actionType}/revert method: patch operationId: SubscribersController_revertNotificationAction x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/seen method: post operationId: SubscribersController_markNotificationsAsSeen x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/read method: post operationId: SubscribersController_markAllNotificationsAsRead x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/archive method: post operationId: SubscribersController_archiveAllNotifications x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/read-archive method: post operationId: SubscribersController_archiveAllReadNotifications x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/subscribers/{subscriberId}/notifications/delete method: post operationId: SubscribersController_deleteAllNotifications x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts method: post operationId: LayoutsController_create x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts method: get operationId: LayoutsController_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/layouts/{layoutId} method: put operationId: LayoutsController_update x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts/{layoutId} method: get operationId: LayoutsController_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/layouts/{layoutId} method: delete operationId: LayoutsController__delete x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts/{layoutId}/duplicate method: post operationId: LayoutsController_duplicate x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts/{layoutId}/preview method: post operationId: LayoutsController_generatePreview x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/layouts/{layoutId}/usage method: get operationId: LayoutsController_getUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/messages method: get operationId: MessagesController_getMessages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/messages/{messageId} method: delete operationId: MessagesController_deleteMessage x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/messages/transaction/{transactionId} method: delete operationId: MessagesController_deleteMessagesByTransactionId x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/topics/{topicKey}/subscribers/{externalSubscriberId} method: get operationId: TopicsV1Controller_getTopicSubscriber x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/topics method: get operationId: TopicsController_listTopics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/topics method: post operationId: TopicsController_upsertTopic x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/topics/{topicKey} method: get operationId: TopicsController_getTopic x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/topics/{topicKey} method: patch operationId: TopicsController_updateTopic x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/topics/{topicKey} method: delete operationId: TopicsController_deleteTopic x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/topics/{topicKey}/subscriptions method: get operationId: TopicsController_listTopicSubscriptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/topics/{topicKey}/subscriptions method: post operationId: TopicsController_createTopicSubscriptions x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/topics/{topicKey}/subscriptions method: delete operationId: TopicsController_deleteTopicSubscriptions x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/topics/{topicKey}/subscriptions/{identifier} method: get operationId: TopicsController_getTopicSubscription x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/topics/{topicKey}/subscriptions/{identifier} method: patch operationId: TopicsController_updateTopicSubscription x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/environment-variables method: get operationId: EnvironmentVariablesController_listEnvironmentVariables x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/environment-variables method: post operationId: EnvironmentVariablesController_createEnvironmentVariable x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/environment-variables/{variableKey}/usage method: get operationId: EnvironmentVariablesController_getEnvironmentVariableUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/environment-variables/{variableKey} method: get operationId: EnvironmentVariablesController_getEnvironmentVariable x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/environment-variables/{variableKey} method: patch operationId: EnvironmentVariablesController_updateEnvironmentVariable x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/environment-variables/{variableKey} method: delete operationId: EnvironmentVariablesController_deleteEnvironmentVariable x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows method: post operationId: WorkflowController_create x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows method: get operationId: WorkflowController_searchWorkflows x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/workflows/{workflowId}/sync method: put operationId: WorkflowController_sync x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows/{workflowId} method: put operationId: WorkflowController_update x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows/{workflowId} method: get operationId: WorkflowController_getWorkflow x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/workflows/{workflowId} method: delete operationId: WorkflowController_removeWorkflow x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows/{workflowId} method: patch operationId: WorkflowController_patchWorkflow x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows/{workflowId}/step/{stepId}/preview method: post operationId: WorkflowController_generatePreview x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/workflows/{workflowId}/steps/{stepId} method: get operationId: WorkflowController_getWorkflowStepData x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/environments/{environmentId}/tags method: get operationId: EnvironmentsController_getEnvironmentTags x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/environments/{targetEnvironmentId}/publish method: post operationId: EnvironmentsController_publishEnvironment x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/environments/{targetEnvironmentId}/diff method: post operationId: EnvironmentsController_diffEnvironment x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-connections method: get operationId: ChannelConnectionsController_listChannelConnections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/channel-connections method: post operationId: ChannelConnectionsController_createChannelConnection x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-connections/{identifier} method: get operationId: ChannelConnectionsController_getChannelConnectionByIdentifier x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/channel-connections/{identifier} method: patch operationId: ChannelConnectionsController_updateChannelConnection x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-connections/{identifier} method: delete operationId: ChannelConnectionsController_deleteChannelConnection x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-endpoints method: get operationId: ChannelEndpointsController_listChannelEndpoints x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/channel-endpoints method: post operationId: ChannelEndpointsController_createChannelEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-endpoints/{identifier} method: get operationId: ChannelEndpointsController_getChannelEndpoint x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/channel-endpoints/{identifier} method: patch operationId: ChannelEndpointsController_updateChannelEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v1/channel-endpoints/{identifier} method: delete operationId: ChannelEndpointsController_deleteChannelEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations/upload method: post operationId: TranslationController_uploadTranslationFiles x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations method: post operationId: TranslationController_createTranslationEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations/master-json method: get operationId: TranslationController_getMasterJsonEndpoint x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/translations/master-json method: post operationId: TranslationController_importMasterJsonEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations/master-json/upload method: post operationId: TranslationController_uploadMasterJsonEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations/group/{resourceType}/{resourceId} method: get operationId: TranslationController_getTranslationGroupEndpoint x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/translations/{resourceType}/{resourceId}/{locale} method: get operationId: TranslationController_getSingleTranslation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/translations/{resourceType}/{resourceId}/{locale} method: delete operationId: TranslationController_deleteTranslationEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/translations/{resourceType}/{resourceId} method: delete operationId: TranslationController_deleteTranslationGroupEndpoint x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/inbound-webhooks/delivery-providers/{environmentId}/{integrationId} method: post operationId: InboundWebhooksController_handleWebhook x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required