naftiko: 1.0.0-alpha2 info: label: Fly.io Machines API — Volumes description: 'Fly.io Machines API — Volumes. 8 operations. Lead operation: List volumes in an app. Self-contained Naftiko capability covering one Fly Io business surface.' tags: - Fly Io - Volumes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FLY_IO_API_KEY: FLY_IO_API_KEY capability: consumes: - type: http namespace: machines-volumes baseUri: https://api.machines.dev description: Fly.io Machines API — Volumes business capability. Self-contained, no shared references. resources: - name: v1-apps-app_name-volumes path: /v1/apps/{app_name}/volumes operations: - name: listvolumes method: GET description: List volumes in an app outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createvolume method: POST description: Create a volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-apps-app_name-volumes-volume_id path: /v1/apps/{app_name}/volumes/{volume_id} operations: - name: getvolume method: GET description: Get a volume outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatevolume method: PUT description: Update a volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletevolume method: DELETE description: Delete a volume outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-apps-app_name-volumes-volume_id-extend path: /v1/apps/{app_name}/volumes/{volume_id}/extend operations: - name: extendvolume method: PUT description: Extend a volume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-apps-app_name-volumes-volume_id-snapshots path: /v1/apps/{app_name}/volumes/{volume_id}/snapshots operations: - name: listvolumesnapshots method: GET description: List volume snapshots outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createvolumesnapshot method: POST description: Create a volume snapshot outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.FLY_IO_API_KEY}}' exposes: - type: rest namespace: machines-volumes-rest port: 8080 description: REST adapter for Fly.io Machines API — Volumes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/apps/{app-name}/volumes name: v1-apps-app-name-volumes description: REST surface for v1-apps-app_name-volumes. operations: - method: GET name: listvolumes description: List volumes in an app call: machines-volumes.listvolumes outputParameters: - type: object mapping: $. - method: POST name: createvolume description: Create a volume call: machines-volumes.createvolume with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/apps/{app-name}/volumes/{volume-id} name: v1-apps-app-name-volumes-volume-id description: REST surface for v1-apps-app_name-volumes-volume_id. operations: - method: GET name: getvolume description: Get a volume call: machines-volumes.getvolume outputParameters: - type: object mapping: $. - method: PUT name: updatevolume description: Update a volume call: machines-volumes.updatevolume with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletevolume description: Delete a volume call: machines-volumes.deletevolume outputParameters: - type: object mapping: $. - path: /v1/v1/apps/{app-name}/volumes/{volume-id}/extend name: v1-apps-app-name-volumes-volume-id-extend description: REST surface for v1-apps-app_name-volumes-volume_id-extend. operations: - method: PUT name: extendvolume description: Extend a volume call: machines-volumes.extendvolume with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/apps/{app-name}/volumes/{volume-id}/snapshots name: v1-apps-app-name-volumes-volume-id-snapshots description: REST surface for v1-apps-app_name-volumes-volume_id-snapshots. operations: - method: GET name: listvolumesnapshots description: List volume snapshots call: machines-volumes.listvolumesnapshots outputParameters: - type: object mapping: $. - method: POST name: createvolumesnapshot description: Create a volume snapshot call: machines-volumes.createvolumesnapshot outputParameters: - type: object mapping: $. - type: mcp namespace: machines-volumes-mcp port: 9090 transport: http description: MCP adapter for Fly.io Machines API — Volumes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-volumes-app description: List volumes in an app hints: readOnly: true destructive: false idempotent: true call: machines-volumes.listvolumes outputParameters: - type: object mapping: $. - name: create-volume description: Create a volume hints: readOnly: false destructive: false idempotent: false call: machines-volumes.createvolume with: body: tools.body outputParameters: - type: object mapping: $. - name: get-volume description: Get a volume hints: readOnly: true destructive: false idempotent: true call: machines-volumes.getvolume outputParameters: - type: object mapping: $. - name: update-volume description: Update a volume hints: readOnly: false destructive: false idempotent: true call: machines-volumes.updatevolume with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-volume description: Delete a volume hints: readOnly: false destructive: true idempotent: true call: machines-volumes.deletevolume outputParameters: - type: object mapping: $. - name: extend-volume description: Extend a volume hints: readOnly: false destructive: false idempotent: true call: machines-volumes.extendvolume with: body: tools.body outputParameters: - type: object mapping: $. - name: list-volume-snapshots description: List volume snapshots hints: readOnly: true destructive: false idempotent: true call: machines-volumes.listvolumesnapshots outputParameters: - type: object mapping: $. - name: create-volume-snapshot description: Create a volume snapshot hints: readOnly: false destructive: false idempotent: false call: machines-volumes.createvolumesnapshot outputParameters: - type: object mapping: $.