naftiko: 1.0.0-alpha2 info: label: Novu API — Domains description: 'Notifications — Domains. 15 operations. Lead operation: List Domains for an Environment. Self-contained Naftiko capability covering one Novu business surface.' tags: - Novu - Notifications - Domains created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: NOVU_API_KEY: NOVU_API_KEY capability: consumes: - type: http namespace: novu-domains baseUri: https://api.novu.co description: Novu REST API — Domains business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: '{{env.NOVU_API_KEY}}' placement: header resources: - name: v1-domains path: /v1/domains operations: - name: DomainsController_listDomains method: GET description: Novu List Domains for an Environment inputParameters: - name: after in: query type: string required: false description: Cursor for pagination indicating the starting point after which to fetch results. - name: before in: query type: string required: false description: Cursor for pagination indicating the ending point before which to fetch results. - name: limit in: query type: number required: false description: Limit the number of items to return - name: orderDirection in: query type: string required: false description: Direction of sorting - name: orderBy in: query type: string required: false description: Field to order by - name: includeCursor in: query type: boolean required: false description: Include cursor item in response - name: name in: query type: string required: false description: Domain name to filter results by. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_createDomain method: POST description: Novu Create a Domain inputParameters: - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain path: /v1/domains/{domain} operations: - name: DomainsController_getDomain method: GET description: Novu Retrieve a Domain by Name inputParameters: - name: domain in: path type: string required: true description: domain outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_updateDomain method: PATCH description: Novu Update a Domain inputParameters: - name: domain in: path type: string required: true description: domain - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_deleteDomain method: DELETE description: Novu Delete a Domain inputParameters: - name: domain in: path type: string required: true description: domain outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-verify path: /v1/domains/{domain}/verify operations: - name: DomainsController_verifyDomain method: POST description: Novu Verify a Domain inputParameters: - name: domain in: path type: string required: true description: domain outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-diagnose path: /v1/domains/{domain}/diagnose operations: - name: DomainsController_diagnoseDomain method: POST description: Novu Diagnose Inbound DNS for a Domain inputParameters: - name: domain in: path type: string required: true description: domain outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-routes path: /v1/domains/{domain}/routes operations: - name: DomainsController_listDomainRoutes method: GET description: Novu List Routes for a Domain inputParameters: - name: domain in: path type: string required: true description: domain - name: after in: query type: string required: false description: Cursor for pagination indicating the starting point after which to fetch results. - name: before in: query type: string required: false description: Cursor for pagination indicating the ending point before which to fetch results. - name: limit in: query type: number required: false description: Limit the number of items to return - name: orderDirection in: query type: string required: false description: Direction of sorting - name: orderBy in: query type: string required: false description: Field to order by - name: includeCursor in: query type: boolean required: false description: Include cursor item in response - name: agentId in: query type: string required: false description: Agent identifier to filter routes by. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_createDomainRoute method: POST description: Novu Create a Route inputParameters: - name: domain in: path type: string required: true description: domain - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-routes-address path: /v1/domains/{domain}/routes/{address} operations: - name: DomainsController_getDomainRoute method: GET description: Novu Retrieve a Route by Address inputParameters: - name: domain in: path type: string required: true description: domain - name: address in: path type: string required: true description: address outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_updateDomainRoute method: PATCH description: Novu Update a Route inputParameters: - name: domain in: path type: string required: true description: domain - name: address in: path type: string required: true description: address - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: DomainsController_deleteDomainRoute method: DELETE description: Novu Delete a Route inputParameters: - name: domain in: path type: string required: true description: domain - name: address in: path type: string required: true description: address outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-routes-address-test path: /v1/domains/{domain}/routes/{address}/test operations: - name: DomainsController_testDomainRoute method: POST description: Novu Test an Inbound Route inputParameters: - name: domain in: path type: string required: true description: domain - name: address in: path type: string required: true description: address - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-auto-configure path: /v1/domains/{domain}/auto-configure operations: - name: DomainsController_getDomainAutoConfigure method: GET description: Novu Retrieve Auto-configuration Availability inputParameters: - name: domain in: path type: string required: true description: domain outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-domains-domain-auto-configure-start path: /v1/domains/{domain}/auto-configure/start operations: - name: DomainsController_startDomainAutoConfigure method: POST description: Novu Start DNS Auto-configuration inputParameters: - name: domain in: path type: string required: true description: domain - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: novu-domains-rest port: 8080 description: REST adapter for Novu API — Domains. One Spectral-compliant resource per consumed operation. resources: - path: /v1/domains name: v1-domains description: REST surface for /v1/domains. operations: - method: GET name: DomainsController_listDomains description: Novu List Domains for an Environment call: novu-domains.DomainsController_listDomains with: after: rest.after before: rest.before limit: rest.limit orderDirection: rest.orderDirection orderBy: rest.orderBy includeCursor: rest.includeCursor name: rest.name outputParameters: - type: object mapping: $. - method: POST name: DomainsController_createDomain description: Novu Create a Domain call: novu-domains.DomainsController_createDomain with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/domains/{domain} name: v1-domains-domain description: REST surface for /v1/domains/{domain}. operations: - method: GET name: DomainsController_getDomain description: Novu Retrieve a Domain by Name call: novu-domains.DomainsController_getDomain with: domain: rest.domain outputParameters: - type: object mapping: $. - method: PATCH name: DomainsController_updateDomain description: Novu Update a Domain call: novu-domains.DomainsController_updateDomain with: domain: rest.domain body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: DomainsController_deleteDomain description: Novu Delete a Domain call: novu-domains.DomainsController_deleteDomain with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/verify name: v1-domains-domain-verify description: REST surface for /v1/domains/{domain}/verify. operations: - method: POST name: DomainsController_verifyDomain description: Novu Verify a Domain call: novu-domains.DomainsController_verifyDomain with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/diagnose name: v1-domains-domain-diagnose description: REST surface for /v1/domains/{domain}/diagnose. operations: - method: POST name: DomainsController_diagnoseDomain description: Novu Diagnose Inbound DNS for a Domain call: novu-domains.DomainsController_diagnoseDomain with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/routes name: v1-domains-domain-routes description: REST surface for /v1/domains/{domain}/routes. operations: - method: GET name: DomainsController_listDomainRoutes description: Novu List Routes for a Domain call: novu-domains.DomainsController_listDomainRoutes with: domain: rest.domain after: rest.after before: rest.before limit: rest.limit orderDirection: rest.orderDirection orderBy: rest.orderBy includeCursor: rest.includeCursor agentId: rest.agentId outputParameters: - type: object mapping: $. - method: POST name: DomainsController_createDomainRoute description: Novu Create a Route call: novu-domains.DomainsController_createDomainRoute with: domain: rest.domain body: rest.body outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/routes/{address} name: v1-domains-domain-routes-address description: REST surface for /v1/domains/{domain}/routes/{address}. operations: - method: GET name: DomainsController_getDomainRoute description: Novu Retrieve a Route by Address call: novu-domains.DomainsController_getDomainRoute with: domain: rest.domain address: rest.address outputParameters: - type: object mapping: $. - method: PATCH name: DomainsController_updateDomainRoute description: Novu Update a Route call: novu-domains.DomainsController_updateDomainRoute with: domain: rest.domain address: rest.address body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: DomainsController_deleteDomainRoute description: Novu Delete a Route call: novu-domains.DomainsController_deleteDomainRoute with: domain: rest.domain address: rest.address outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/routes/{address}/test name: v1-domains-domain-routes-address-test description: REST surface for /v1/domains/{domain}/routes/{address}/test. operations: - method: POST name: DomainsController_testDomainRoute description: Novu Test an Inbound Route call: novu-domains.DomainsController_testDomainRoute with: domain: rest.domain address: rest.address body: rest.body outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/auto-configure name: v1-domains-domain-auto-configure description: REST surface for /v1/domains/{domain}/auto-configure. operations: - method: GET name: DomainsController_getDomainAutoConfigure description: Novu Retrieve Auto-configuration Availability call: novu-domains.DomainsController_getDomainAutoConfigure with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/domains/{domain}/auto-configure/start name: v1-domains-domain-auto-configure-start description: REST surface for /v1/domains/{domain}/auto-configure/start. operations: - method: POST name: DomainsController_startDomainAutoConfigure description: Novu Start DNS Auto-configuration call: novu-domains.DomainsController_startDomainAutoConfigure with: domain: rest.domain body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: novu-domains-mcp port: 9090 transport: http description: MCP adapter for Novu API — Domains. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-domains-environment description: Novu List Domains for an Environment hints: readOnly: true destructive: false idempotent: true call: novu-domains.DomainsController_listDomains with: after: tools.after before: tools.before limit: tools.limit orderDirection: tools.orderDirection orderBy: tools.orderBy includeCursor: tools.includeCursor name: tools.name outputParameters: - type: object mapping: $. - name: create-domain description: Novu Create a Domain hints: readOnly: false destructive: false idempotent: false call: novu-domains.DomainsController_createDomain with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-domain-name description: Novu Retrieve a Domain by Name hints: readOnly: true destructive: false idempotent: true call: novu-domains.DomainsController_getDomain with: domain: tools.domain outputParameters: - type: object mapping: $. - name: update-domain description: Novu Update a Domain hints: readOnly: false destructive: false idempotent: true call: novu-domains.DomainsController_updateDomain with: domain: tools.domain body: tools.body outputParameters: - type: object mapping: $. - name: delete-domain description: Novu Delete a Domain hints: readOnly: false destructive: true idempotent: true call: novu-domains.DomainsController_deleteDomain with: domain: tools.domain outputParameters: - type: object mapping: $. - name: verify-domain description: Novu Verify a Domain hints: readOnly: false destructive: false idempotent: false call: novu-domains.DomainsController_verifyDomain with: domain: tools.domain outputParameters: - type: object mapping: $. - name: diagnose-inbound-dns-domain description: Novu Diagnose Inbound DNS for a Domain hints: readOnly: false destructive: false idempotent: false call: novu-domains.DomainsController_diagnoseDomain with: domain: tools.domain outputParameters: - type: object mapping: $. - name: list-routes-domain description: Novu List Routes for a Domain hints: readOnly: true destructive: false idempotent: true call: novu-domains.DomainsController_listDomainRoutes with: domain: tools.domain after: tools.after before: tools.before limit: tools.limit orderDirection: tools.orderDirection orderBy: tools.orderBy includeCursor: tools.includeCursor agentId: tools.agentId outputParameters: - type: object mapping: $. - name: create-route description: Novu Create a Route hints: readOnly: false destructive: false idempotent: false call: novu-domains.DomainsController_createDomainRoute with: domain: tools.domain body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-route-address description: Novu Retrieve a Route by Address hints: readOnly: true destructive: false idempotent: true call: novu-domains.DomainsController_getDomainRoute with: domain: tools.domain address: tools.address outputParameters: - type: object mapping: $. - name: update-route description: Novu Update a Route hints: readOnly: false destructive: false idempotent: true call: novu-domains.DomainsController_updateDomainRoute with: domain: tools.domain address: tools.address body: tools.body outputParameters: - type: object mapping: $. - name: delete-route description: Novu Delete a Route hints: readOnly: false destructive: true idempotent: true call: novu-domains.DomainsController_deleteDomainRoute with: domain: tools.domain address: tools.address outputParameters: - type: object mapping: $. - name: test-inbound-route description: Novu Test an Inbound Route hints: readOnly: true destructive: false idempotent: false call: novu-domains.DomainsController_testDomainRoute with: domain: tools.domain address: tools.address body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-auto-configuration-availability description: Novu Retrieve Auto-configuration Availability hints: readOnly: true destructive: false idempotent: true call: novu-domains.DomainsController_getDomainAutoConfigure with: domain: tools.domain outputParameters: - type: object mapping: $. - name: start-dns-auto-configuration description: Novu Start DNS Auto-configuration hints: readOnly: false destructive: false idempotent: false call: novu-domains.DomainsController_startDomainAutoConfigure with: domain: tools.domain body: tools.body outputParameters: - type: object mapping: $.