naftiko: 1.0.0-alpha2 info: label: Ampersand public API — Installation description: 'Ampersand public API — Installation. 7 operations. Lead operation: Ampersand List Installations for a Project. Self-contained Naftiko capability covering one Ampersand business surface.' tags: - Ampersand - Installation created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AMPERSAND_API_KEY: AMPERSAND_API_KEY capability: consumes: - type: http namespace: ampersand-installation baseUri: https://api.withampersand.com/v1 description: Ampersand public API — Installation business capability. Self-contained, no shared references. resources: - name: projects-projectIdOrName-installations path: /projects/{projectIdOrName}/installations operations: - name: listinstallationsforproject method: GET description: Ampersand List Installations for a Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: groupRef in: query type: string description: The ID that your app uses to identify a group of users (e.g. an org ID, workspace ID, or team ID). When provided, only returns installations belonging to this g - name: projects-projectIdOrName-integrations-integrationId-installations path: /projects/{projectIdOrName}/integrations/{integrationId}/installations operations: - name: listinstallations method: GET description: Ampersand List Installations for an Integration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The unique identifier (UUID) of the integration. required: true - name: groupRef in: query type: string description: The ID that your app uses to identify a group of users (e.g. an org ID, workspace ID, or team ID). When provided, only returns installations belonging to this g - name: createinstallation method: POST description: Ampersand Create a New Installation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The integration ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: projects-projectIdOrName-integrations-integrationId-installations-installationId path: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId} operations: - name: getinstallation method: GET description: Ampersand Get an Installation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The unique identifier (UUID) of the integration. required: true - name: installationId in: path type: string description: The unique identifier (UUID) of the installation. required: true - name: deleteinstallation method: DELETE description: Ampersand Delete an Installation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The integration ID. required: true - name: installationId in: path type: string description: The Ampersand installation ID. required: true - name: updateinstallation method: PATCH description: Ampersand Update an Installation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The ID of the integration that this installation belongs to. required: true - name: installationId in: path type: string description: The Ampersand installation ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: projects-projectIdOrName-integrations-integrationId-objects-objectName-config-co path: /projects/{projectIdOrName}/integrations/{integrationId}/objects/{objectName}/config-content operations: - name: patchobjectconfigcontent method: PATCH description: Ampersand Update an Installation Object outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: projectIdOrName in: path type: string description: The Ampersand project ID or project name. required: true - name: integrationId in: path type: string description: The integration ID. required: true - name: objectName in: path type: string description: The object name whose config content will be patched. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.AMPERSAND_API_KEY}}' exposes: - type: rest namespace: ampersand-installation-rest port: 8080 description: REST adapter for Ampersand public API — Installation. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/projects/{projectidorname}/installations name: projects-projectidorname-installations description: REST surface for projects-projectIdOrName-installations. operations: - method: GET name: listinstallationsforproject description: Ampersand List Installations for a Project call: ampersand-installation.listinstallationsforproject with: projectIdOrName: rest.projectIdOrName groupRef: rest.groupRef outputParameters: - type: object mapping: $. - path: /v1/projects/{projectidorname}/integrations/{integrationid}/installations name: projects-projectidorname-integrations-integrationid-installations description: REST surface for projects-projectIdOrName-integrations-integrationId-installations. operations: - method: GET name: listinstallations description: Ampersand List Installations for an Integration call: ampersand-installation.listinstallations with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId groupRef: rest.groupRef outputParameters: - type: object mapping: $. - method: POST name: createinstallation description: Ampersand Create a New Installation call: ampersand-installation.createinstallation with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{projectidorname}/integrations/{integrationid}/installations/{installationid} name: projects-projectidorname-integrations-integrationid-installations-installationid description: REST surface for projects-projectIdOrName-integrations-integrationId-installations-installationId. operations: - method: GET name: getinstallation description: Ampersand Get an Installation call: ampersand-installation.getinstallation with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId installationId: rest.installationId outputParameters: - type: object mapping: $. - method: DELETE name: deleteinstallation description: Ampersand Delete an Installation call: ampersand-installation.deleteinstallation with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId installationId: rest.installationId outputParameters: - type: object mapping: $. - method: PATCH name: updateinstallation description: Ampersand Update an Installation call: ampersand-installation.updateinstallation with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId installationId: rest.installationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{projectidorname}/integrations/{integrationid}/objects/{objectname}/config-content name: projects-projectidorname-integrations-integrationid-objects-objectname-config-co description: REST surface for projects-projectIdOrName-integrations-integrationId-objects-objectName-config-co. operations: - method: PATCH name: patchobjectconfigcontent description: Ampersand Update an Installation Object call: ampersand-installation.patchobjectconfigcontent with: projectIdOrName: rest.projectIdOrName integrationId: rest.integrationId objectName: rest.objectName body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: ampersand-installation-mcp port: 9090 transport: http description: MCP adapter for Ampersand public API — Installation. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: ampersand-list-installations-project description: Ampersand List Installations for a Project hints: readOnly: true destructive: false idempotent: true call: ampersand-installation.listinstallationsforproject with: projectIdOrName: tools.projectIdOrName groupRef: tools.groupRef outputParameters: - type: object mapping: $. - name: ampersand-list-installations-integration description: Ampersand List Installations for an Integration hints: readOnly: true destructive: false idempotent: true call: ampersand-installation.listinstallations with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId groupRef: tools.groupRef outputParameters: - type: object mapping: $. - name: ampersand-create-new-installation description: Ampersand Create a New Installation hints: readOnly: false destructive: false idempotent: false call: ampersand-installation.createinstallation with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId body: tools.body outputParameters: - type: object mapping: $. - name: ampersand-get-installation description: Ampersand Get an Installation hints: readOnly: true destructive: false idempotent: true call: ampersand-installation.getinstallation with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId installationId: tools.installationId outputParameters: - type: object mapping: $. - name: ampersand-delete-installation description: Ampersand Delete an Installation hints: readOnly: false destructive: true idempotent: true call: ampersand-installation.deleteinstallation with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId installationId: tools.installationId outputParameters: - type: object mapping: $. - name: ampersand-update-installation description: Ampersand Update an Installation hints: readOnly: false destructive: false idempotent: true call: ampersand-installation.updateinstallation with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId installationId: tools.installationId body: tools.body outputParameters: - type: object mapping: $. - name: ampersand-update-installation-object description: Ampersand Update an Installation Object hints: readOnly: false destructive: false idempotent: true call: ampersand-installation.patchobjectconfigcontent with: projectIdOrName: tools.projectIdOrName integrationId: tools.integrationId objectName: tools.objectName body: tools.body outputParameters: - type: object mapping: $.