naftiko: 1.0.0-alpha2 info: label: Incus external REST API — profiles description: 'Incus external REST API — profiles. 8 operations. Lead operation: Get the profiles. Self-contained Naftiko capability covering one Incus business surface.' tags: - Incus - profiles created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: INCUS_API_KEY: INCUS_API_KEY capability: consumes: - type: http namespace: incus-profiles baseUri: '' description: Incus external REST API — profiles business capability. Self-contained, no shared references. resources: - name: 1.0-profiles path: /1.0/profiles operations: - name: profilesget method: GET description: Get the profiles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project in: query type: string description: Project name - name: all-projects in: query type: boolean description: Retrieve profiles from all projects - name: filter in: query type: string description: Collection filter - name: profilespost method: POST description: Add a profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project in: query type: string description: Project name - name: profile in: body type: string description: Profile required: true - name: 1.0-profiles-name path: /1.0/profiles/{name} operations: - name: profiledelete method: DELETE description: Delete the profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Profile name required: true - name: project in: query type: string description: Project name - name: profileget method: GET description: Get the profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Profile name required: true - name: project in: query type: string description: Project name - name: profilepatch method: PATCH description: Partially update the profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Profile name required: true - name: project in: query type: string description: Project name - name: profile in: body type: string description: Profile configuration required: true - name: profilepost method: POST description: Rename the profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Profile name required: true - name: project in: query type: string description: Project name - name: profile in: body type: string description: Profile rename request required: true - name: profileput method: PUT description: Update the profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: path type: string description: Profile name required: true - name: project in: query type: string description: Project name - name: profile in: body type: string description: Profile configuration required: true - name: 1.0-profiles?recursion=1 path: /1.0/profiles?recursion=1 operations: - name: profilesgetrecursion1 method: GET description: Get the profiles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: project in: query type: string description: Project name - name: all-projects in: query type: boolean description: Retrieve profiles from all projects - name: filter in: query type: string description: Collection filter exposes: - type: rest namespace: incus-profiles-rest port: 8080 description: REST adapter for Incus external REST API — profiles. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/1-0/profiles name: 1-0-profiles description: REST surface for 1.0-profiles. operations: - method: GET name: profilesget description: Get the profiles call: incus-profiles.profilesget with: project: rest.project all-projects: rest.all-projects filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: profilespost description: Add a profile call: incus-profiles.profilespost with: project: rest.project profile: rest.profile outputParameters: - type: object mapping: $. - path: /v1/1-0/profiles/{name} name: 1-0-profiles-name description: REST surface for 1.0-profiles-name. operations: - method: DELETE name: profiledelete description: Delete the profile call: incus-profiles.profiledelete with: name: rest.name project: rest.project outputParameters: - type: object mapping: $. - method: GET name: profileget description: Get the profile call: incus-profiles.profileget with: name: rest.name project: rest.project outputParameters: - type: object mapping: $. - method: PATCH name: profilepatch description: Partially update the profile call: incus-profiles.profilepatch with: name: rest.name project: rest.project profile: rest.profile outputParameters: - type: object mapping: $. - method: POST name: profilepost description: Rename the profile call: incus-profiles.profilepost with: name: rest.name project: rest.project profile: rest.profile outputParameters: - type: object mapping: $. - method: PUT name: profileput description: Update the profile call: incus-profiles.profileput with: name: rest.name project: rest.project profile: rest.profile outputParameters: - type: object mapping: $. - path: /v1/1-0/profiles-recursion-1 name: 1-0-profiles-recursion-1 description: REST surface for 1.0-profiles?recursion=1. operations: - method: GET name: profilesgetrecursion1 description: Get the profiles call: incus-profiles.profilesgetrecursion1 with: project: rest.project all-projects: rest.all-projects filter: rest.filter outputParameters: - type: object mapping: $. - type: mcp namespace: incus-profiles-mcp port: 9090 transport: http description: MCP adapter for Incus external REST API — profiles. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-profiles description: Get the profiles hints: readOnly: true destructive: false idempotent: true call: incus-profiles.profilesget with: project: tools.project all-projects: tools.all-projects filter: tools.filter outputParameters: - type: object mapping: $. - name: add-profile description: Add a profile hints: readOnly: false destructive: false idempotent: false call: incus-profiles.profilespost with: project: tools.project profile: tools.profile outputParameters: - type: object mapping: $. - name: delete-profile description: Delete the profile hints: readOnly: false destructive: true idempotent: true call: incus-profiles.profiledelete with: name: tools.name project: tools.project outputParameters: - type: object mapping: $. - name: get-profile description: Get the profile hints: readOnly: true destructive: false idempotent: true call: incus-profiles.profileget with: name: tools.name project: tools.project outputParameters: - type: object mapping: $. - name: partially-update-profile description: Partially update the profile hints: readOnly: false destructive: false idempotent: true call: incus-profiles.profilepatch with: name: tools.name project: tools.project profile: tools.profile outputParameters: - type: object mapping: $. - name: rename-profile description: Rename the profile hints: readOnly: false destructive: false idempotent: false call: incus-profiles.profilepost with: name: tools.name project: tools.project profile: tools.profile outputParameters: - type: object mapping: $. - name: update-profile description: Update the profile hints: readOnly: false destructive: false idempotent: true call: incus-profiles.profileput with: name: tools.name project: tools.project profile: tools.profile outputParameters: - type: object mapping: $. - name: get-profiles-2 description: Get the profiles hints: readOnly: true destructive: false idempotent: true call: incus-profiles.profilesgetrecursion1 with: project: tools.project all-projects: tools.all-projects filter: tools.filter outputParameters: - type: object mapping: $.