naftiko: 1.0.0-alpha2 info: label: Load Balancer API — Backends description: 'Load Balancer API — Backends. 10 operations. Lead operation: Get a backend of a given Load Balancer. Self-contained Naftiko capability covering one Scaleway business surface.' tags: - Scaleway - Backends created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCALEWAY_API_KEY: SCALEWAY_API_KEY capability: consumes: - type: http namespace: load-balancer-backends baseUri: https://api.scaleway.com description: Load Balancer API — Backends business capability. Self-contained, no shared references. resources: - name: lb-v1-zones-zone-backends-backend_id path: /lb/v1/zones/{zone}/backends/{backend_id} operations: - name: getbackend method: GET description: Get a backend of a given Load Balancer 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: backend_id in: path type: string description: Backend ID. required: true - name: updatebackend method: PUT description: Update a backend of a given Load Balancer 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: backend_id in: path type: string description: Backend ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletebackend method: DELETE description: Delete a backend of a given Load Balancer 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: backend_id in: path type: string description: ID of the backend to delete. required: true - name: lb-v1-zones-zone-backends-backend_id-healthcheck path: /lb/v1/zones/{zone}/backends/{backend_id}/healthcheck operations: - name: updatehealthcheck method: PUT description: Update a health check for a given backend 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: backend_id in: path type: string description: Backend ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: lb-v1-zones-zone-backends-backend_id-servers path: /lb/v1/zones/{zone}/backends/{backend_id}/servers operations: - name: addbackendservers method: POST description: Add a set of backend servers to a given backend 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: backend_id in: path type: string description: Backend ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: setbackendservers method: PUT description: Define all backend servers for a given backend 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: backend_id in: path type: string description: Backend ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: removebackendservers method: DELETE description: Remove a set of servers for a given backend 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: backend_id in: path type: string description: Backend ID. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: lb-v1-zones-zone-lbs-lb_id-backend-stats path: /lb/v1/zones/{zone}/lbs/{lb_id}/backend-stats operations: - name: listbackendstats method: GET description: List backend server statistics 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: lb_id in: path type: string description: Load Balancer ID. required: true - name: page in: query type: integer description: The page number to return, from the paginated results. - name: page_size in: query type: integer description: Number of items to return. - name: backend_id in: query type: string description: ID of the backend. - name: lb-v1-zones-zone-lbs-lb_id-backends path: /lb/v1/zones/{zone}/lbs/{lb_id}/backends operations: - name: listbackends method: GET description: List the backends of a given Load Balancer 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: lb_id in: path type: string description: Load Balancer ID. required: true - name: name in: query type: string description: Name of the backend to filter for. - name: order_by in: query type: string description: Sort order of backends in the response. - name: page in: query type: integer description: The page number to return, from the paginated results. - name: page_size in: query type: integer description: Number of backends to return. - name: createbackend method: POST description: Create a backend for a given Load Balancer 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: lb_id in: path type: string description: Load Balancer ID. 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: load-balancer-backends-rest port: 8080 description: REST adapter for Load Balancer API — Backends. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/lb/v1/zones/{zone}/backends/{backend-id} name: lb-v1-zones-zone-backends-backend-id description: REST surface for lb-v1-zones-zone-backends-backend_id. operations: - method: GET name: getbackend description: Get a backend of a given Load Balancer call: load-balancer-backends.getbackend with: zone: rest.zone backend_id: rest.backend_id outputParameters: - type: object mapping: $. - method: PUT name: updatebackend description: Update a backend of a given Load Balancer call: load-balancer-backends.updatebackend with: zone: rest.zone backend_id: rest.backend_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletebackend description: Delete a backend of a given Load Balancer call: load-balancer-backends.deletebackend with: zone: rest.zone backend_id: rest.backend_id outputParameters: - type: object mapping: $. - path: /v1/lb/v1/zones/{zone}/backends/{backend-id}/healthcheck name: lb-v1-zones-zone-backends-backend-id-healthcheck description: REST surface for lb-v1-zones-zone-backends-backend_id-healthcheck. operations: - method: PUT name: updatehealthcheck description: Update a health check for a given backend call: load-balancer-backends.updatehealthcheck with: zone: rest.zone backend_id: rest.backend_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/lb/v1/zones/{zone}/backends/{backend-id}/servers name: lb-v1-zones-zone-backends-backend-id-servers description: REST surface for lb-v1-zones-zone-backends-backend_id-servers. operations: - method: POST name: addbackendservers description: Add a set of backend servers to a given backend call: load-balancer-backends.addbackendservers with: zone: rest.zone backend_id: rest.backend_id body: rest.body outputParameters: - type: object mapping: $. - method: PUT name: setbackendservers description: Define all backend servers for a given backend call: load-balancer-backends.setbackendservers with: zone: rest.zone backend_id: rest.backend_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removebackendservers description: Remove a set of servers for a given backend call: load-balancer-backends.removebackendservers with: zone: rest.zone backend_id: rest.backend_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/lb/v1/zones/{zone}/lbs/{lb-id}/backend-stats name: lb-v1-zones-zone-lbs-lb-id-backend-stats description: REST surface for lb-v1-zones-zone-lbs-lb_id-backend-stats. operations: - method: GET name: listbackendstats description: List backend server statistics call: load-balancer-backends.listbackendstats with: zone: rest.zone lb_id: rest.lb_id page: rest.page page_size: rest.page_size backend_id: rest.backend_id outputParameters: - type: object mapping: $. - path: /v1/lb/v1/zones/{zone}/lbs/{lb-id}/backends name: lb-v1-zones-zone-lbs-lb-id-backends description: REST surface for lb-v1-zones-zone-lbs-lb_id-backends. operations: - method: GET name: listbackends description: List the backends of a given Load Balancer call: load-balancer-backends.listbackends with: zone: rest.zone lb_id: rest.lb_id name: rest.name order_by: rest.order_by page: rest.page page_size: rest.page_size outputParameters: - type: object mapping: $. - method: POST name: createbackend description: Create a backend for a given Load Balancer call: load-balancer-backends.createbackend with: zone: rest.zone lb_id: rest.lb_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: load-balancer-backends-mcp port: 9090 transport: http description: MCP adapter for Load Balancer API — Backends. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-backend-given-load-balancer description: Get a backend of a given Load Balancer hints: readOnly: true destructive: false idempotent: true call: load-balancer-backends.getbackend with: zone: tools.zone backend_id: tools.backend_id outputParameters: - type: object mapping: $. - name: update-backend-given-load-balancer description: Update a backend of a given Load Balancer hints: readOnly: false destructive: false idempotent: true call: load-balancer-backends.updatebackend with: zone: tools.zone backend_id: tools.backend_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-backend-given-load-balancer description: Delete a backend of a given Load Balancer hints: readOnly: false destructive: true idempotent: true call: load-balancer-backends.deletebackend with: zone: tools.zone backend_id: tools.backend_id outputParameters: - type: object mapping: $. - name: update-health-check-given-backend description: Update a health check for a given backend hints: readOnly: false destructive: false idempotent: true call: load-balancer-backends.updatehealthcheck with: zone: tools.zone backend_id: tools.backend_id body: tools.body outputParameters: - type: object mapping: $. - name: add-set-backend-servers-given description: Add a set of backend servers to a given backend hints: readOnly: false destructive: false idempotent: false call: load-balancer-backends.addbackendservers with: zone: tools.zone backend_id: tools.backend_id body: tools.body outputParameters: - type: object mapping: $. - name: define-all-backend-servers-given description: Define all backend servers for a given backend hints: readOnly: false destructive: false idempotent: true call: load-balancer-backends.setbackendservers with: zone: tools.zone backend_id: tools.backend_id body: tools.body outputParameters: - type: object mapping: $. - name: remove-set-servers-given-backend description: Remove a set of servers for a given backend hints: readOnly: false destructive: true idempotent: true call: load-balancer-backends.removebackendservers with: zone: tools.zone backend_id: tools.backend_id body: tools.body outputParameters: - type: object mapping: $. - name: list-backend-server-statistics description: List backend server statistics hints: readOnly: true destructive: false idempotent: true call: load-balancer-backends.listbackendstats with: zone: tools.zone lb_id: tools.lb_id page: tools.page page_size: tools.page_size backend_id: tools.backend_id outputParameters: - type: object mapping: $. - name: list-backends-given-load-balancer description: List the backends of a given Load Balancer hints: readOnly: true destructive: false idempotent: true call: load-balancer-backends.listbackends with: zone: tools.zone lb_id: tools.lb_id name: tools.name order_by: tools.order_by page: tools.page page_size: tools.page_size outputParameters: - type: object mapping: $. - name: create-backend-given-load-balancer description: Create a backend for a given Load Balancer hints: readOnly: false destructive: false idempotent: false call: load-balancer-backends.createbackend with: zone: tools.zone lb_id: tools.lb_id body: tools.body outputParameters: - type: object mapping: $.