naftiko: 1.0.0-alpha2 info: label: Novu API — Environments description: 'Notifications — Environments. 7 operations. Lead operation: Create an Environment. Self-contained Naftiko capability covering one Novu business surface.' tags: - Novu - Notifications - Environments created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: NOVU_API_KEY: NOVU_API_KEY capability: consumes: - type: http namespace: novu-environments baseUri: https://api.novu.co description: Novu REST API — Environments business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: '{{env.NOVU_API_KEY}}' placement: header resources: - name: v1-environments path: /v1/environments operations: - name: EnvironmentsControllerV1_createEnvironment method: POST description: Novu Create an Environment inputParameters: - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: EnvironmentsControllerV1_listMyEnvironments method: GET description: Novu List All Environments inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-environments-environmentid path: /v1/environments/{environmentId} operations: - name: EnvironmentsControllerV1_updateMyEnvironment method: PUT description: Novu Update an Environment inputParameters: - name: environmentId in: path type: string required: true description: The unique identifier of the environment - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: EnvironmentsControllerV1_deleteEnvironment method: DELETE description: Novu Delete an Environment inputParameters: - name: environmentId in: path type: string required: true description: The unique identifier of the environment outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-environments-environmentid-tags path: /v2/environments/{environmentId}/tags operations: - name: EnvironmentsController_getEnvironmentTags method: GET description: Novu List Environment Tags inputParameters: - name: environmentId in: path type: string required: true description: Environment internal ID (MongoDB ObjectId) or identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-environments-targetenvironmentid-publish path: /v2/environments/{targetEnvironmentId}/publish operations: - name: EnvironmentsController_publishEnvironment method: POST description: Novu Publish Resources to Target Environment inputParameters: - name: targetEnvironmentId in: path type: string required: true description: Target environment ID (MongoDB ObjectId) to publish resources to - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-environments-targetenvironmentid-diff path: /v2/environments/{targetEnvironmentId}/diff operations: - name: EnvironmentsController_diffEnvironment method: POST description: Novu Compare Resources Between Environments inputParameters: - name: targetEnvironmentId in: path type: string required: true description: Target environment ID (MongoDB ObjectId) to compare against - 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-environments-rest port: 8080 description: REST adapter for Novu API — Environments. One Spectral-compliant resource per consumed operation. resources: - path: /v1/environments name: v1-environments description: REST surface for /v1/environments. operations: - method: POST name: EnvironmentsControllerV1_createEnvironment description: Novu Create an Environment call: novu-environments.EnvironmentsControllerV1_createEnvironment with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: EnvironmentsControllerV1_listMyEnvironments description: Novu List All Environments call: novu-environments.EnvironmentsControllerV1_listMyEnvironments with: {} outputParameters: - type: object mapping: $. - path: /v1/environments/{environmentId} name: v1-environments-environmentid description: REST surface for /v1/environments/{environmentId}. operations: - method: PUT name: EnvironmentsControllerV1_updateMyEnvironment description: Novu Update an Environment call: novu-environments.EnvironmentsControllerV1_updateMyEnvironment with: environmentId: rest.environmentId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: EnvironmentsControllerV1_deleteEnvironment description: Novu Delete an Environment call: novu-environments.EnvironmentsControllerV1_deleteEnvironment with: environmentId: rest.environmentId outputParameters: - type: object mapping: $. - path: /v2/environments/{environmentId}/tags name: v2-environments-environmentid-tags description: REST surface for /v2/environments/{environmentId}/tags. operations: - method: GET name: EnvironmentsController_getEnvironmentTags description: Novu List Environment Tags call: novu-environments.EnvironmentsController_getEnvironmentTags with: environmentId: rest.environmentId outputParameters: - type: object mapping: $. - path: /v2/environments/{targetEnvironmentId}/publish name: v2-environments-targetenvironmentid-publish description: REST surface for /v2/environments/{targetEnvironmentId}/publish. operations: - method: POST name: EnvironmentsController_publishEnvironment description: Novu Publish Resources to Target Environment call: novu-environments.EnvironmentsController_publishEnvironment with: targetEnvironmentId: rest.targetEnvironmentId body: rest.body outputParameters: - type: object mapping: $. - path: /v2/environments/{targetEnvironmentId}/diff name: v2-environments-targetenvironmentid-diff description: REST surface for /v2/environments/{targetEnvironmentId}/diff. operations: - method: POST name: EnvironmentsController_diffEnvironment description: Novu Compare Resources Between Environments call: novu-environments.EnvironmentsController_diffEnvironment with: targetEnvironmentId: rest.targetEnvironmentId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: novu-environments-mcp port: 9090 transport: http description: MCP adapter for Novu API — Environments. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-environment description: Novu Create an Environment hints: readOnly: false destructive: false idempotent: false call: novu-environments.EnvironmentsControllerV1_createEnvironment with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-environments description: Novu List All Environments hints: readOnly: true destructive: false idempotent: true call: novu-environments.EnvironmentsControllerV1_listMyEnvironments with: {} outputParameters: - type: object mapping: $. - name: update-environment description: Novu Update an Environment hints: readOnly: false destructive: false idempotent: true call: novu-environments.EnvironmentsControllerV1_updateMyEnvironment with: environmentId: tools.environmentId body: tools.body outputParameters: - type: object mapping: $. - name: delete-environment description: Novu Delete an Environment hints: readOnly: false destructive: true idempotent: true call: novu-environments.EnvironmentsControllerV1_deleteEnvironment with: environmentId: tools.environmentId outputParameters: - type: object mapping: $. - name: list-environment-tags description: Novu List Environment Tags hints: readOnly: true destructive: false idempotent: true call: novu-environments.EnvironmentsController_getEnvironmentTags with: environmentId: tools.environmentId outputParameters: - type: object mapping: $. - name: publish-resources-target-environment description: Novu Publish Resources to Target Environment hints: readOnly: true destructive: false idempotent: false call: novu-environments.EnvironmentsController_publishEnvironment with: targetEnvironmentId: tools.targetEnvironmentId body: tools.body outputParameters: - type: object mapping: $. - name: compare-resources-between-environments description: Novu Compare Resources Between Environments hints: readOnly: false destructive: false idempotent: false call: novu-environments.EnvironmentsController_diffEnvironment with: targetEnvironmentId: tools.targetEnvironmentId body: tools.body outputParameters: - type: object mapping: $.