naftiko: 1.0.0-alpha2 info: label: Tiger Cloud API — Services description: 'Tiger Cloud API — Services. 16 operations. Lead operation: List All Services. Self-contained Naftiko capability covering one Timescaledb business surface.' tags: - Timescaledb - Services created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TIMESCALEDB_API_KEY: TIMESCALEDB_API_KEY capability: consumes: - type: http namespace: timescaledb-services baseUri: https://console.cloud.tigerdata.com/public/api/v1 description: Tiger Cloud API — Services business capability. Self-contained, no shared references. resources: - name: projects-project_id-services path: /projects/{project_id}/services operations: - name: getservices method: GET description: List All Services outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createservice method: POST description: Create a Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id path: /projects/{project_id}/services/{service_id} operations: - name: getservice method: GET description: Get a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteservice method: DELETE description: Delete a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects-project_id-services-service_id-attachToVPC path: /projects/{project_id}/services/{service_id}/attachToVPC operations: - name: attachservicetovpc method: POST description: Attach Service to VPC outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-detachFromVPC path: /projects/{project_id}/services/{service_id}/detachFromVPC operations: - name: detachservicefromvpc method: POST description: Detach Service from VPC outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-disablePooler path: /projects/{project_id}/services/{service_id}/disablePooler operations: - name: disablepooler method: POST description: Disable Connection Pooler for a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects-project_id-services-service_id-enablePooler path: /projects/{project_id}/services/{service_id}/enablePooler operations: - name: enablepooler method: POST description: Enable Connection Pooler for a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects-project_id-services-service_id-forkService path: /projects/{project_id}/services/{service_id}/forkService operations: - name: forkservice method: POST description: Fork a Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-logs path: /projects/{project_id}/services/{service_id}/logs operations: - name: getservicelogs method: GET description: Get service logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: node in: query type: integer description: Specific service node to fetch logs from (for multi-node services) - name: page in: query type: integer description: Page number for pagination (0-based) - name: until in: query type: string description: Fetch logs before this timestamp (RFC3339 format, e.g., 2024-01-15T10:00:00Z) - name: since in: query type: string description: Fetch logs after this timestamp (RFC3339 format, e.g., 2024-01-15T09:00:00Z). - name: cursor in: query type: string description: Opaque pagination cursor returned as lastCursor in a previous response. When provided, returns the next page of logs older than the cursor position. - name: projects-project_id-services-service_id-resize path: /projects/{project_id}/services/{service_id}/resize operations: - name: resizeservice method: POST description: Resize a Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-setEnvironment path: /projects/{project_id}/services/{service_id}/setEnvironment operations: - name: setenvironment method: POST description: Set Environment for a Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-setHA path: /projects/{project_id}/services/{service_id}/setHA operations: - name: sethareplica method: POST description: Change HA configuration for a Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: projects-project_id-services-service_id-start path: /projects/{project_id}/services/{service_id}/start operations: - name: startservice method: POST description: Start a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects-project_id-services-service_id-stop path: /projects/{project_id}/services/{service_id}/stop operations: - name: stopservice method: POST description: Stop a Service outputRawFormat: json outputParameters: - name: result type: object value: $. - name: projects-project_id-services-service_id-updatePassword path: /projects/{project_id}/services/{service_id}/updatePassword operations: - name: updatepassword method: POST description: Update Service Password outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: timescaledb-services-rest port: 8080 description: REST adapter for Tiger Cloud API — Services. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/projects/{project-id}/services name: projects-project-id-services description: REST surface for projects-project_id-services. operations: - method: GET name: getservices description: List All Services call: timescaledb-services.getservices outputParameters: - type: object mapping: $. - method: POST name: createservice description: Create a Service call: timescaledb-services.createservice with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id} name: projects-project-id-services-service-id description: REST surface for projects-project_id-services-service_id. operations: - method: GET name: getservice description: Get a Service call: timescaledb-services.getservice outputParameters: - type: object mapping: $. - method: DELETE name: deleteservice description: Delete a Service call: timescaledb-services.deleteservice outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/attachtovpc name: projects-project-id-services-service-id-attachtovpc description: REST surface for projects-project_id-services-service_id-attachToVPC. operations: - method: POST name: attachservicetovpc description: Attach Service to VPC call: timescaledb-services.attachservicetovpc with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/detachfromvpc name: projects-project-id-services-service-id-detachfromvpc description: REST surface for projects-project_id-services-service_id-detachFromVPC. operations: - method: POST name: detachservicefromvpc description: Detach Service from VPC call: timescaledb-services.detachservicefromvpc with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/disablepooler name: projects-project-id-services-service-id-disablepooler description: REST surface for projects-project_id-services-service_id-disablePooler. operations: - method: POST name: disablepooler description: Disable Connection Pooler for a Service call: timescaledb-services.disablepooler outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/enablepooler name: projects-project-id-services-service-id-enablepooler description: REST surface for projects-project_id-services-service_id-enablePooler. operations: - method: POST name: enablepooler description: Enable Connection Pooler for a Service call: timescaledb-services.enablepooler outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/forkservice name: projects-project-id-services-service-id-forkservice description: REST surface for projects-project_id-services-service_id-forkService. operations: - method: POST name: forkservice description: Fork a Service call: timescaledb-services.forkservice with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/logs name: projects-project-id-services-service-id-logs description: REST surface for projects-project_id-services-service_id-logs. operations: - method: GET name: getservicelogs description: Get service logs call: timescaledb-services.getservicelogs with: node: rest.node page: rest.page until: rest.until since: rest.since cursor: rest.cursor outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/resize name: projects-project-id-services-service-id-resize description: REST surface for projects-project_id-services-service_id-resize. operations: - method: POST name: resizeservice description: Resize a Service call: timescaledb-services.resizeservice with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/setenvironment name: projects-project-id-services-service-id-setenvironment description: REST surface for projects-project_id-services-service_id-setEnvironment. operations: - method: POST name: setenvironment description: Set Environment for a Service call: timescaledb-services.setenvironment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/setha name: projects-project-id-services-service-id-setha description: REST surface for projects-project_id-services-service_id-setHA. operations: - method: POST name: sethareplica description: Change HA configuration for a Service call: timescaledb-services.sethareplica with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/start name: projects-project-id-services-service-id-start description: REST surface for projects-project_id-services-service_id-start. operations: - method: POST name: startservice description: Start a Service call: timescaledb-services.startservice outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/stop name: projects-project-id-services-service-id-stop description: REST surface for projects-project_id-services-service_id-stop. operations: - method: POST name: stopservice description: Stop a Service call: timescaledb-services.stopservice outputParameters: - type: object mapping: $. - path: /v1/projects/{project-id}/services/{service-id}/updatepassword name: projects-project-id-services-service-id-updatepassword description: REST surface for projects-project_id-services-service_id-updatePassword. operations: - method: POST name: updatepassword description: Update Service Password call: timescaledb-services.updatepassword with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: timescaledb-services-mcp port: 9090 transport: http description: MCP adapter for Tiger Cloud API — Services. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-services description: List All Services hints: readOnly: true destructive: false idempotent: true call: timescaledb-services.getservices outputParameters: - type: object mapping: $. - name: create-service description: Create a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.createservice with: body: tools.body outputParameters: - type: object mapping: $. - name: get-service description: Get a Service hints: readOnly: true destructive: false idempotent: true call: timescaledb-services.getservice outputParameters: - type: object mapping: $. - name: delete-service description: Delete a Service hints: readOnly: false destructive: true idempotent: true call: timescaledb-services.deleteservice outputParameters: - type: object mapping: $. - name: attach-service-vpc description: Attach Service to VPC hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.attachservicetovpc with: body: tools.body outputParameters: - type: object mapping: $. - name: detach-service-vpc description: Detach Service from VPC hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.detachservicefromvpc with: body: tools.body outputParameters: - type: object mapping: $. - name: disable-connection-pooler-service description: Disable Connection Pooler for a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.disablepooler outputParameters: - type: object mapping: $. - name: enable-connection-pooler-service description: Enable Connection Pooler for a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.enablepooler outputParameters: - type: object mapping: $. - name: fork-service description: Fork a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.forkservice with: body: tools.body outputParameters: - type: object mapping: $. - name: get-service-logs description: Get service logs hints: readOnly: true destructive: false idempotent: true call: timescaledb-services.getservicelogs with: node: tools.node page: tools.page until: tools.until since: tools.since cursor: tools.cursor outputParameters: - type: object mapping: $. - name: resize-service description: Resize a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.resizeservice with: body: tools.body outputParameters: - type: object mapping: $. - name: set-environment-service description: Set Environment for a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.setenvironment with: body: tools.body outputParameters: - type: object mapping: $. - name: change-ha-configuration-service description: Change HA configuration for a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.sethareplica with: body: tools.body outputParameters: - type: object mapping: $. - name: start-service description: Start a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.startservice outputParameters: - type: object mapping: $. - name: stop-service description: Stop a Service hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.stopservice outputParameters: - type: object mapping: $. - name: update-service-password description: Update Service Password hints: readOnly: false destructive: false idempotent: false call: timescaledb-services.updatepassword with: body: tools.body outputParameters: - type: object mapping: $.