naftiko: 1.0.0-alpha2 info: label: Koyeb Rest API — Services description: 'Koyeb Rest API — Services. 14 operations. Lead operation: List Service events. Self-contained Naftiko capability covering one Koyeb business surface.' tags: - Koyeb - Services created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KOYEB_API_KEY: KOYEB_API_KEY capability: consumes: - type: http namespace: koyeb-services baseUri: https://app.koyeb.com description: Koyeb Rest API — Services business capability. Self-contained, no shared references. resources: - name: v1-service_events path: /v1/service_events operations: - name: listserviceevents method: GET description: List Service events outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: service_id in: query type: string description: (Optional) Filter on service id - name: types in: query type: array description: (Optional) Filter on service event types - name: limit in: query type: string description: (Optional) The number of items to return - name: offset in: query type: string description: (Optional) The offset in the list of item to return - name: order in: query type: string description: (Optional) Sorts the list in the ascending or the descending order - name: v1-services path: /v1/services operations: - name: listservices method: GET description: List Services outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: app_id in: query type: string description: (Optional) The id of the app - name: limit in: query type: string description: (Optional) The number of items to return - name: offset in: query type: string description: (Optional) The offset in the list of item to return - name: name in: query type: string description: (Optional) A filter for name - name: types in: query type: array description: (Optional) Filter on service types - name: statuses in: query type: array description: (Optional) Filter on service statuses - name: regions in: query type: array description: (Optional) Filter on regions - name: project_id in: query type: string description: (Optional) A filter for the project ID - name: createservice method: POST description: Create Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: service in: body type: string required: true - name: dry_run in: query type: boolean description: If set only run validation - name: v1-services-autocomplete path: /v1/services-autocomplete operations: - name: autocomplete method: POST description: Autocomplete definition outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: string required: true - name: v1-services-id path: /v1/services/{id} operations: - name: getservice method: GET description: Get Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the Service required: true - name: deleteservice method: DELETE description: Delete Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the entity to delete required: true - name: updateservice method: PUT description: Update Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the entity to update required: true - name: service in: body type: string required: true - name: update_mask in: query type: string - name: dry_run in: query type: boolean description: If set, run validation and check that the service exists - name: updateservice2 method: PATCH description: Update Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the entity to update required: true - name: service in: body type: string required: true - name: update_mask in: query type: string - name: dry_run in: query type: boolean description: If set, run validation and check that the service exists - name: v1-services-id-pause path: /v1/services/{id}/pause operations: - name: pauseservice method: POST description: Pause Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the service to pause. required: true - name: v1-services-id-redeploy path: /v1/services/{id}/redeploy operations: - name: redeploy method: POST description: ReDeploy Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: info in: body type: string required: true - name: v1-services-id-resume path: /v1/services/{id}/resume operations: - name: resumeservice method: POST description: Resume Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the service to pause. required: true - name: skip_build in: query type: boolean description: If set to true, the build stage will be skipped and the image coming from the last successful build step will be used instead. - name: use_cache in: query type: boolean - name: v1-services-id-scale path: /v1/services/{id}/scale operations: - name: getservicescaling method: GET description: Get Service Scaling outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the service required: true - name: deleteservicescaling method: DELETE description: Delete Service Scaling outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the service required: true - name: updateservicescaling method: PUT description: Update Service Scaling outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The id of the service to scale required: true - name: body in: body type: object required: true exposes: - type: rest namespace: koyeb-services-rest port: 8080 description: REST adapter for Koyeb Rest API — Services. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/service-events name: v1-service-events description: REST surface for v1-service_events. operations: - method: GET name: listserviceevents description: List Service events call: koyeb-services.listserviceevents with: service_id: rest.service_id types: rest.types limit: rest.limit offset: rest.offset order: rest.order outputParameters: - type: object mapping: $. - path: /v1/v1/services name: v1-services description: REST surface for v1-services. operations: - method: GET name: listservices description: List Services call: koyeb-services.listservices with: app_id: rest.app_id limit: rest.limit offset: rest.offset name: rest.name types: rest.types statuses: rest.statuses regions: rest.regions project_id: rest.project_id outputParameters: - type: object mapping: $. - method: POST name: createservice description: Create Service call: koyeb-services.createservice with: service: rest.service dry_run: rest.dry_run outputParameters: - type: object mapping: $. - path: /v1/v1/services-autocomplete name: v1-services-autocomplete description: REST surface for v1-services-autocomplete. operations: - method: POST name: autocomplete description: Autocomplete definition call: koyeb-services.autocomplete with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/services/{id} name: v1-services-id description: REST surface for v1-services-id. operations: - method: GET name: getservice description: Get Service call: koyeb-services.getservice with: id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: deleteservice description: Delete Service call: koyeb-services.deleteservice with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updateservice description: Update Service call: koyeb-services.updateservice with: id: rest.id service: rest.service update_mask: rest.update_mask dry_run: rest.dry_run outputParameters: - type: object mapping: $. - method: PATCH name: updateservice2 description: Update Service call: koyeb-services.updateservice2 with: id: rest.id service: rest.service update_mask: rest.update_mask dry_run: rest.dry_run outputParameters: - type: object mapping: $. - path: /v1/v1/services/{id}/pause name: v1-services-id-pause description: REST surface for v1-services-id-pause. operations: - method: POST name: pauseservice description: Pause Service call: koyeb-services.pauseservice with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/services/{id}/redeploy name: v1-services-id-redeploy description: REST surface for v1-services-id-redeploy. operations: - method: POST name: redeploy description: ReDeploy Service call: koyeb-services.redeploy with: id: rest.id info: rest.info outputParameters: - type: object mapping: $. - path: /v1/v1/services/{id}/resume name: v1-services-id-resume description: REST surface for v1-services-id-resume. operations: - method: POST name: resumeservice description: Resume Service call: koyeb-services.resumeservice with: id: rest.id skip_build: rest.skip_build use_cache: rest.use_cache outputParameters: - type: object mapping: $. - path: /v1/v1/services/{id}/scale name: v1-services-id-scale description: REST surface for v1-services-id-scale. operations: - method: GET name: getservicescaling description: Get Service Scaling call: koyeb-services.getservicescaling with: id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: deleteservicescaling description: Delete Service Scaling call: koyeb-services.deleteservicescaling with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updateservicescaling description: Update Service Scaling call: koyeb-services.updateservicescaling with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: koyeb-services-mcp port: 9090 transport: http description: MCP adapter for Koyeb Rest API — Services. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-service-events description: List Service events hints: readOnly: true destructive: false idempotent: true call: koyeb-services.listserviceevents with: service_id: tools.service_id types: tools.types limit: tools.limit offset: tools.offset order: tools.order outputParameters: - type: object mapping: $. - name: list-services description: List Services hints: readOnly: true destructive: false idempotent: true call: koyeb-services.listservices with: app_id: tools.app_id limit: tools.limit offset: tools.offset name: tools.name types: tools.types statuses: tools.statuses regions: tools.regions project_id: tools.project_id outputParameters: - type: object mapping: $. - name: create-service description: Create Service hints: readOnly: false destructive: false idempotent: false call: koyeb-services.createservice with: service: tools.service dry_run: tools.dry_run outputParameters: - type: object mapping: $. - name: autocomplete-definition description: Autocomplete definition hints: readOnly: false destructive: false idempotent: false call: koyeb-services.autocomplete with: body: tools.body outputParameters: - type: object mapping: $. - name: get-service description: Get Service hints: readOnly: true destructive: false idempotent: true call: koyeb-services.getservice with: id: tools.id outputParameters: - type: object mapping: $. - name: delete-service description: Delete Service hints: readOnly: false destructive: true idempotent: true call: koyeb-services.deleteservice with: id: tools.id outputParameters: - type: object mapping: $. - name: update-service description: Update Service hints: readOnly: false destructive: false idempotent: true call: koyeb-services.updateservice with: id: tools.id service: tools.service update_mask: tools.update_mask dry_run: tools.dry_run outputParameters: - type: object mapping: $. - name: update-service-2 description: Update Service hints: readOnly: false destructive: false idempotent: true call: koyeb-services.updateservice2 with: id: tools.id service: tools.service update_mask: tools.update_mask dry_run: tools.dry_run outputParameters: - type: object mapping: $. - name: pause-service description: Pause Service hints: readOnly: false destructive: false idempotent: false call: koyeb-services.pauseservice with: id: tools.id outputParameters: - type: object mapping: $. - name: redeploy-service description: ReDeploy Service hints: readOnly: false destructive: false idempotent: false call: koyeb-services.redeploy with: id: tools.id info: tools.info outputParameters: - type: object mapping: $. - name: resume-service description: Resume Service hints: readOnly: false destructive: false idempotent: false call: koyeb-services.resumeservice with: id: tools.id skip_build: tools.skip_build use_cache: tools.use_cache outputParameters: - type: object mapping: $. - name: get-service-scaling description: Get Service Scaling hints: readOnly: true destructive: false idempotent: true call: koyeb-services.getservicescaling with: id: tools.id outputParameters: - type: object mapping: $. - name: delete-service-scaling description: Delete Service Scaling hints: readOnly: false destructive: true idempotent: true call: koyeb-services.deleteservicescaling with: id: tools.id outputParameters: - type: object mapping: $. - name: update-service-scaling description: Update Service Scaling hints: readOnly: false destructive: false idempotent: true call: koyeb-services.updateservicescaling with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.