naftiko: 1.0.0-alpha2 info: label: Kubernetes API — Nodes description: 'Kubernetes API — Nodes. 5 operations. Lead operation: List Nodes in a Cluster. Self-contained Naftiko capability covering one Scaleway business surface.' tags: - Scaleway - Nodes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCALEWAY_API_KEY: SCALEWAY_API_KEY capability: consumes: - type: http namespace: kubernetes-nodes baseUri: https://api.scaleway.com description: Kubernetes API — Nodes business capability. Self-contained, no shared references. resources: - name: k8s-v1-regions-region-clusters-cluster_id-nodes path: /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes operations: - name: listnodes method: GET description: List Nodes in a Cluster outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: region in: path type: string description: The region you want to target required: true - name: cluster_id in: path type: string description: Cluster ID from which the nodes will be listed from. required: true - name: pool_id in: query type: string description: Pool ID on which to filter the returned nodes. - name: order_by in: query type: string description: Sort order of the returned nodes. - name: page in: query type: integer description: Page number for the returned nodes. - name: page_size in: query type: integer description: Maximum number of nodes per page. - name: name in: query type: string description: Name to filter on, only nodes containing this substring in their name will be returned. - name: status in: query type: string description: Status to filter on, only nodes with this status will be returned. - name: k8s-v1-regions-region-nodes-node_id path: /k8s/v1/regions/{region}/nodes/{node_id} operations: - name: getnode method: GET description: Get a Node in a Cluster outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: region in: path type: string description: The region you want to target required: true - name: node_id in: path type: string description: ID of the requested node. required: true - name: deletenode method: DELETE description: Delete a Node in a Cluster outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: region in: path type: string description: The region you want to target required: true - name: node_id in: path type: string description: ID of the node to replace. required: true - name: skip_drain in: query type: boolean description: 'Skip draining node from its workload (Note: this parameter is currently inactive).' required: true - name: k8s-v1-regions-region-nodes-node_id-reboot path: /k8s/v1/regions/{region}/nodes/{node_id}/reboot operations: - name: rebootnode method: POST description: Reboot a Node in a Cluster outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: region in: path type: string description: The region you want to target required: true - name: node_id in: path type: string description: ID of the node to reboot. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: k8s-v1-regions-region-pools-pool_id-external-nodes path: /k8s/v1/regions/{region}/pools/{pool_id}/external-nodes operations: - name: createexternalnode method: POST description: Create a Kosmos node outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: region in: path type: string description: The region you want to target required: true - name: pool_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: X-Auth-Token value: '{{env.SCALEWAY_API_KEY}}' placement: header exposes: - type: rest namespace: kubernetes-nodes-rest port: 8080 description: REST adapter for Kubernetes API — Nodes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/nodes name: k8s-v1-regions-region-clusters-cluster-id-nodes description: REST surface for k8s-v1-regions-region-clusters-cluster_id-nodes. operations: - method: GET name: listnodes description: List Nodes in a Cluster call: kubernetes-nodes.listnodes with: region: rest.region cluster_id: rest.cluster_id pool_id: rest.pool_id order_by: rest.order_by page: rest.page page_size: rest.page_size name: rest.name status: rest.status outputParameters: - type: object mapping: $. - path: /v1/k8s/v1/regions/{region}/nodes/{node-id} name: k8s-v1-regions-region-nodes-node-id description: REST surface for k8s-v1-regions-region-nodes-node_id. operations: - method: GET name: getnode description: Get a Node in a Cluster call: kubernetes-nodes.getnode with: region: rest.region node_id: rest.node_id outputParameters: - type: object mapping: $. - method: DELETE name: deletenode description: Delete a Node in a Cluster call: kubernetes-nodes.deletenode with: region: rest.region node_id: rest.node_id skip_drain: rest.skip_drain outputParameters: - type: object mapping: $. - path: /v1/k8s/v1/regions/{region}/nodes/{node-id}/reboot name: k8s-v1-regions-region-nodes-node-id-reboot description: REST surface for k8s-v1-regions-region-nodes-node_id-reboot. operations: - method: POST name: rebootnode description: Reboot a Node in a Cluster call: kubernetes-nodes.rebootnode with: region: rest.region node_id: rest.node_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/k8s/v1/regions/{region}/pools/{pool-id}/external-nodes name: k8s-v1-regions-region-pools-pool-id-external-nodes description: REST surface for k8s-v1-regions-region-pools-pool_id-external-nodes. operations: - method: POST name: createexternalnode description: Create a Kosmos node call: kubernetes-nodes.createexternalnode with: region: rest.region pool_id: rest.pool_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: kubernetes-nodes-mcp port: 9090 transport: http description: MCP adapter for Kubernetes API — Nodes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-nodes-cluster description: List Nodes in a Cluster hints: readOnly: true destructive: false idempotent: true call: kubernetes-nodes.listnodes with: region: tools.region cluster_id: tools.cluster_id pool_id: tools.pool_id order_by: tools.order_by page: tools.page page_size: tools.page_size name: tools.name status: tools.status outputParameters: - type: object mapping: $. - name: get-node-cluster description: Get a Node in a Cluster hints: readOnly: true destructive: false idempotent: true call: kubernetes-nodes.getnode with: region: tools.region node_id: tools.node_id outputParameters: - type: object mapping: $. - name: delete-node-cluster description: Delete a Node in a Cluster hints: readOnly: false destructive: true idempotent: true call: kubernetes-nodes.deletenode with: region: tools.region node_id: tools.node_id skip_drain: tools.skip_drain outputParameters: - type: object mapping: $. - name: reboot-node-cluster description: Reboot a Node in a Cluster hints: readOnly: false destructive: false idempotent: false call: kubernetes-nodes.rebootnode with: region: tools.region node_id: tools.node_id body: tools.body outputParameters: - type: object mapping: $. - name: create-kosmos-node description: Create a Kosmos node hints: readOnly: false destructive: false idempotent: false call: kubernetes-nodes.createexternalnode with: region: tools.region pool_id: tools.pool_id body: tools.body outputParameters: - type: object mapping: $.