naftiko: 1.0.0-alpha2 info: label: Instance API — Placement Groups description: 'Instance API — Placement Groups. 9 operations. Lead operation: List placement groups. Self-contained Naftiko capability covering one Scaleway business surface.' tags: - Scaleway - Placement Groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SCALEWAY_API_KEY: SCALEWAY_API_KEY capability: consumes: - type: http namespace: instance-placement-groups baseUri: https://api.scaleway.com description: Instance API — Placement Groups business capability. Self-contained, no shared references. resources: - name: instance-v1-zones-zone-placement_groups path: /instance/v1/zones/{zone}/placement_groups operations: - name: listplacementgroups method: GET description: List placement groups 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: 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: organization in: query type: string description: List only placement groups of this Organization ID. - name: project in: query type: string description: List only placement groups of this Project ID. - name: tags in: query type: string description: List placement groups with these exact tags (to filter with several tags, use commas to separate them). - name: name in: query type: string description: Filter placement groups by name (for eg. "cluster1" will return "cluster100" and "cluster1" but not "foo"). - name: createplacementgroup method: POST description: Create a placement group 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: body in: body type: object description: Request body (JSON). required: true - name: instance-v1-zones-zone-placement_groups-placement_group_id path: /instance/v1/zones/{zone}/placement_groups/{placement_group_id} operations: - name: getplacementgroup method: GET description: Get a placement group 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: placement_group_id in: path type: string description: UUID of the placement group you want to get. required: true - name: setplacementgroup method: PUT description: Set placement group 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: placement_group_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: updateplacementgroup method: PATCH description: Update a placement group 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: placement_group_id in: path type: string description: UUID of the placement group. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteplacementgroup method: DELETE description: Delete the specified placement group 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: placement_group_id in: path type: string description: UUID of the placement group you want to delete. required: true - name: instance-v1-zones-zone-placement_groups-placement_group_id-servers path: /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers operations: - name: getplacementgroupservers method: GET description: Get placement group servers 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: placement_group_id in: path type: string description: UUID of the placement group you want to get. required: true - name: setplacementgroupservers method: PUT description: Set placement group servers 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: placement_group_id in: path type: string description: UUID of the placement group you want to set. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: updateplacementgroupservers method: PATCH description: Update placement group servers 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: placement_group_id in: path type: string description: UUID of the placement group you want to update. 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: instance-placement-groups-rest port: 8080 description: REST adapter for Instance API — Placement Groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/instance/v1/zones/{zone}/placement-groups name: instance-v1-zones-zone-placement-groups description: REST surface for instance-v1-zones-zone-placement_groups. operations: - method: GET name: listplacementgroups description: List placement groups call: instance-placement-groups.listplacementgroups with: zone: rest.zone per_page: rest.per_page page: rest.page organization: rest.organization project: rest.project tags: rest.tags name: rest.name outputParameters: - type: object mapping: $. - method: POST name: createplacementgroup description: Create a placement group call: instance-placement-groups.createplacementgroup with: zone: rest.zone body: rest.body outputParameters: - type: object mapping: $. - path: /v1/instance/v1/zones/{zone}/placement-groups/{placement-group-id} name: instance-v1-zones-zone-placement-groups-placement-group-id description: REST surface for instance-v1-zones-zone-placement_groups-placement_group_id. operations: - method: GET name: getplacementgroup description: Get a placement group call: instance-placement-groups.getplacementgroup with: zone: rest.zone placement_group_id: rest.placement_group_id outputParameters: - type: object mapping: $. - method: PUT name: setplacementgroup description: Set placement group call: instance-placement-groups.setplacementgroup with: zone: rest.zone placement_group_id: rest.placement_group_id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateplacementgroup description: Update a placement group call: instance-placement-groups.updateplacementgroup with: zone: rest.zone placement_group_id: rest.placement_group_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteplacementgroup description: Delete the specified placement group call: instance-placement-groups.deleteplacementgroup with: zone: rest.zone placement_group_id: rest.placement_group_id outputParameters: - type: object mapping: $. - path: /v1/instance/v1/zones/{zone}/placement-groups/{placement-group-id}/servers name: instance-v1-zones-zone-placement-groups-placement-group-id-servers description: REST surface for instance-v1-zones-zone-placement_groups-placement_group_id-servers. operations: - method: GET name: getplacementgroupservers description: Get placement group servers call: instance-placement-groups.getplacementgroupservers with: zone: rest.zone placement_group_id: rest.placement_group_id outputParameters: - type: object mapping: $. - method: PUT name: setplacementgroupservers description: Set placement group servers call: instance-placement-groups.setplacementgroupservers with: zone: rest.zone placement_group_id: rest.placement_group_id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateplacementgroupservers description: Update placement group servers call: instance-placement-groups.updateplacementgroupservers with: zone: rest.zone placement_group_id: rest.placement_group_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: instance-placement-groups-mcp port: 9090 transport: http description: MCP adapter for Instance API — Placement Groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-placement-groups description: List placement groups hints: readOnly: true destructive: false idempotent: true call: instance-placement-groups.listplacementgroups with: zone: tools.zone per_page: tools.per_page page: tools.page organization: tools.organization project: tools.project tags: tools.tags name: tools.name outputParameters: - type: object mapping: $. - name: create-placement-group description: Create a placement group hints: readOnly: false destructive: false idempotent: false call: instance-placement-groups.createplacementgroup with: zone: tools.zone body: tools.body outputParameters: - type: object mapping: $. - name: get-placement-group description: Get a placement group hints: readOnly: true destructive: false idempotent: true call: instance-placement-groups.getplacementgroup with: zone: tools.zone placement_group_id: tools.placement_group_id outputParameters: - type: object mapping: $. - name: set-placement-group description: Set placement group hints: readOnly: false destructive: false idempotent: true call: instance-placement-groups.setplacementgroup with: zone: tools.zone placement_group_id: tools.placement_group_id body: tools.body outputParameters: - type: object mapping: $. - name: update-placement-group description: Update a placement group hints: readOnly: false destructive: false idempotent: true call: instance-placement-groups.updateplacementgroup with: zone: tools.zone placement_group_id: tools.placement_group_id body: tools.body outputParameters: - type: object mapping: $. - name: delete-specified-placement-group description: Delete the specified placement group hints: readOnly: false destructive: true idempotent: true call: instance-placement-groups.deleteplacementgroup with: zone: tools.zone placement_group_id: tools.placement_group_id outputParameters: - type: object mapping: $. - name: get-placement-group-servers description: Get placement group servers hints: readOnly: true destructive: false idempotent: true call: instance-placement-groups.getplacementgroupservers with: zone: tools.zone placement_group_id: tools.placement_group_id outputParameters: - type: object mapping: $. - name: set-placement-group-servers description: Set placement group servers hints: readOnly: false destructive: false idempotent: true call: instance-placement-groups.setplacementgroupservers with: zone: tools.zone placement_group_id: tools.placement_group_id body: tools.body outputParameters: - type: object mapping: $. - name: update-placement-group-servers description: Update placement group servers hints: readOnly: false destructive: false idempotent: true call: instance-placement-groups.updateplacementgroupservers with: zone: tools.zone placement_group_id: tools.placement_group_id body: tools.body outputParameters: - type: object mapping: $.