naftiko: 1.0.0-alpha2 info: label: Kubecost Cloud Cost API — Model description: 'Kubecost Cloud Cost API — Model. 3 operations. Lead operation: Kubecost Query cloud cost data. Self-contained Naftiko capability covering one Kubecost business surface.' tags: - Kubecost - Model created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KUBECOST_API_KEY: KUBECOST_API_KEY capability: consumes: - type: http namespace: cloud-cost-model baseUri: http://{kubecost-address} description: Kubecost Cloud Cost API — Model business capability. Self-contained, no shared references. resources: - name: model-cloudCost path: /model/cloudCost operations: - name: getcloudcost method: GET description: Kubecost Query cloud cost data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: window in: query type: string description: Duration of time over which to query. Accepts daily intervals (e.g. 3d) or RFC3339 date pairs. required: true - name: aggregate in: query type: string description: Field by which to aggregate results. Supported values include invoiceEntityID, accountID, provider, service, and label:. Supports multi-aggregation via co - name: accumulate in: query type: boolean description: If true, sum the entire range into a single set. - name: filterInvoiceEntityIDs in: query type: string description: Filter by invoice entity ID (comma-separated). - name: filterAccountIDs in: query type: string description: Filter by account ID (comma-separated). - name: filterProviders in: query type: string description: Filter by provider (comma-separated). - name: filterServices in: query type: string description: Filter by service (comma-separated). - name: filterLabels in: query type: string description: Filter by label in the format label:value. - name: model-cloudCost-top path: /model/cloudCost/top operations: - name: getcloudcosttop method: GET description: Kubecost Query top cloud costs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: window in: query type: string required: true - name: aggregate in: query type: string - name: accumulate in: query type: boolean - name: filterProviders in: query type: string - name: filterServices in: query type: string - name: limit in: query type: integer description: Maximum number of results to return. - name: model-cloudCost-view path: /model/cloudCost/view operations: - name: getcloudcostview method: GET description: Kubecost Query cloud cost view data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: window in: query type: string required: true - name: aggregate in: query type: string - name: accumulate in: query type: boolean - name: filterInvoiceEntityIDs in: query type: string - name: filterAccountIDs in: query type: string - name: filterProviders in: query type: string - name: filterServices in: query type: string exposes: - type: rest namespace: cloud-cost-model-rest port: 8080 description: REST adapter for Kubecost Cloud Cost API — Model. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/model/cloudcost name: model-cloudcost description: REST surface for model-cloudCost. operations: - method: GET name: getcloudcost description: Kubecost Query cloud cost data call: cloud-cost-model.getcloudcost with: window: rest.window aggregate: rest.aggregate accumulate: rest.accumulate filterInvoiceEntityIDs: rest.filterInvoiceEntityIDs filterAccountIDs: rest.filterAccountIDs filterProviders: rest.filterProviders filterServices: rest.filterServices filterLabels: rest.filterLabels outputParameters: - type: object mapping: $. - path: /v1/model/cloudcost/top name: model-cloudcost-top description: REST surface for model-cloudCost-top. operations: - method: GET name: getcloudcosttop description: Kubecost Query top cloud costs call: cloud-cost-model.getcloudcosttop with: window: rest.window aggregate: rest.aggregate accumulate: rest.accumulate filterProviders: rest.filterProviders filterServices: rest.filterServices limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/model/cloudcost/view name: model-cloudcost-view description: REST surface for model-cloudCost-view. operations: - method: GET name: getcloudcostview description: Kubecost Query cloud cost view data call: cloud-cost-model.getcloudcostview with: window: rest.window aggregate: rest.aggregate accumulate: rest.accumulate filterInvoiceEntityIDs: rest.filterInvoiceEntityIDs filterAccountIDs: rest.filterAccountIDs filterProviders: rest.filterProviders filterServices: rest.filterServices outputParameters: - type: object mapping: $. - type: mcp namespace: cloud-cost-model-mcp port: 9090 transport: http description: MCP adapter for Kubecost Cloud Cost API — Model. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: kubecost-query-cloud-cost-data description: Kubecost Query cloud cost data hints: readOnly: true destructive: false idempotent: true call: cloud-cost-model.getcloudcost with: window: tools.window aggregate: tools.aggregate accumulate: tools.accumulate filterInvoiceEntityIDs: tools.filterInvoiceEntityIDs filterAccountIDs: tools.filterAccountIDs filterProviders: tools.filterProviders filterServices: tools.filterServices filterLabels: tools.filterLabels outputParameters: - type: object mapping: $. - name: kubecost-query-top-cloud-costs description: Kubecost Query top cloud costs hints: readOnly: true destructive: false idempotent: true call: cloud-cost-model.getcloudcosttop with: window: tools.window aggregate: tools.aggregate accumulate: tools.accumulate filterProviders: tools.filterProviders filterServices: tools.filterServices limit: tools.limit outputParameters: - type: object mapping: $. - name: kubecost-query-cloud-cost-view description: Kubecost Query cloud cost view data hints: readOnly: true destructive: false idempotent: true call: cloud-cost-model.getcloudcostview with: window: tools.window aggregate: tools.aggregate accumulate: tools.accumulate filterInvoiceEntityIDs: tools.filterInvoiceEntityIDs filterAccountIDs: tools.filterAccountIDs filterProviders: tools.filterProviders filterServices: tools.filterServices outputParameters: - type: object mapping: $.