naftiko: 1.0.0-alpha2 info: label: Instance API — Private NICs description: 'Instance API — Private NICs. 5 operations. Lead operation: List all private NICs. Self-contained Naftiko capability covering one Scaleway business surface.' tags: - Scaleway - Private NICs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCALEWAY_API_KEY: SCALEWAY_API_KEY capability: consumes: - type: http namespace: instance-private-nics baseUri: https://api.scaleway.com description: Instance API — Private NICs business capability. Self-contained, no shared references. resources: - name: instance-v1-zones-zone-servers-server_id-private_nics path: /instance/v1/zones/{zone}/servers/{server_id}/private_nics operations: - name: listprivatenics method: GET description: List all private NICs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: server_id in: path type: string description: Instance to which the private NIC is attached. required: true - name: tags in: query type: string description: Private NIC tags. - name: per_page in: query type: integer description: A positive integer lower or equal to 100 to select the number of items to return. - name: page in: query type: integer description: A positive integer to choose the page to return. - name: createprivatenic method: POST description: Create a private NIC connecting an Instance to a Private Network outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: server_id in: path type: string description: UUID of the Instance the private NIC will be attached to. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: instance-v1-zones-zone-servers-server_id-private_nics-private_nic_id path: /instance/v1/zones/{zone}/servers/{server_id}/private_nics/{private_nic_id} operations: - name: getprivatenic method: GET description: Get a private NIC outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: server_id in: path type: string description: Instance to which the private NIC is attached. required: true - name: private_nic_id in: path type: string description: Private NIC unique ID. required: true - name: updateprivatenic method: PATCH description: Update a private NIC outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: server_id in: path type: string description: UUID of the Instance the private NIC will be attached to. required: true - name: private_nic_id in: path type: string description: Private NIC unique ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteprivatenic method: DELETE description: Delete a private NIC outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: zone in: path type: string description: The zone you want to target required: true - name: server_id in: path type: string description: Instance to which the private NIC is attached. required: true - name: private_nic_id in: path type: string description: Private NIC unique ID. required: true authentication: type: apikey key: X-Auth-Token value: '{{env.SCALEWAY_API_KEY}}' placement: header exposes: - type: rest namespace: instance-private-nics-rest port: 8080 description: REST adapter for Instance API — Private NICs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/instance/v1/zones/{zone}/servers/{server-id}/private-nics name: instance-v1-zones-zone-servers-server-id-private-nics description: REST surface for instance-v1-zones-zone-servers-server_id-private_nics. operations: - method: GET name: listprivatenics description: List all private NICs call: instance-private-nics.listprivatenics with: zone: rest.zone server_id: rest.server_id tags: rest.tags per_page: rest.per_page page: rest.page outputParameters: - type: object mapping: $. - method: POST name: createprivatenic description: Create a private NIC connecting an Instance to a Private Network call: instance-private-nics.createprivatenic with: zone: rest.zone server_id: rest.server_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/instance/v1/zones/{zone}/servers/{server-id}/private-nics/{private-nic-id} name: instance-v1-zones-zone-servers-server-id-private-nics-private-nic-id description: REST surface for instance-v1-zones-zone-servers-server_id-private_nics-private_nic_id. operations: - method: GET name: getprivatenic description: Get a private NIC call: instance-private-nics.getprivatenic with: zone: rest.zone server_id: rest.server_id private_nic_id: rest.private_nic_id outputParameters: - type: object mapping: $. - method: PATCH name: updateprivatenic description: Update a private NIC call: instance-private-nics.updateprivatenic with: zone: rest.zone server_id: rest.server_id private_nic_id: rest.private_nic_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteprivatenic description: Delete a private NIC call: instance-private-nics.deleteprivatenic with: zone: rest.zone server_id: rest.server_id private_nic_id: rest.private_nic_id outputParameters: - type: object mapping: $. - type: mcp namespace: instance-private-nics-mcp port: 9090 transport: http description: MCP adapter for Instance API — Private NICs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-private-nics description: List all private NICs hints: readOnly: true destructive: false idempotent: true call: instance-private-nics.listprivatenics with: zone: tools.zone server_id: tools.server_id tags: tools.tags per_page: tools.per_page page: tools.page outputParameters: - type: object mapping: $. - name: create-private-nic-connecting-instance description: Create a private NIC connecting an Instance to a Private Network hints: readOnly: false destructive: false idempotent: false call: instance-private-nics.createprivatenic with: zone: tools.zone server_id: tools.server_id body: tools.body outputParameters: - type: object mapping: $. - name: get-private-nic description: Get a private NIC hints: readOnly: true destructive: false idempotent: true call: instance-private-nics.getprivatenic with: zone: tools.zone server_id: tools.server_id private_nic_id: tools.private_nic_id outputParameters: - type: object mapping: $. - name: update-private-nic description: Update a private NIC hints: readOnly: false destructive: false idempotent: true call: instance-private-nics.updateprivatenic with: zone: tools.zone server_id: tools.server_id private_nic_id: tools.private_nic_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-private-nic description: Delete a private NIC hints: readOnly: false destructive: true idempotent: true call: instance-private-nics.deleteprivatenic with: zone: tools.zone server_id: tools.server_id private_nic_id: tools.private_nic_id outputParameters: - type: object mapping: $.