naftiko: 1.0.0-alpha2 info: label: API Reference — Usage description: 'API Reference — Usage. 7 operations. Lead operation: Retrieve usage rate detail for an invoice item. Self-contained Naftiko capability covering one Zuora business surface.' tags: - Zuora - Usage created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ZUORA_API_KEY: ZUORA_API_KEY capability: consumes: - type: http namespace: v1-usage baseUri: https://rest.zuora.com description: API Reference — Usage business capability. Self-contained, no shared references. resources: - name: v1-invoices-invoice-item-invoice-item-id-usage-rate-detail path: /v1/invoices/invoice-item/{invoice-item-id}/usage-rate-detail operations: - name: getusageratedetailbyinvoiceitem method: GET description: Retrieve usage rate detail for an invoice item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: invoice-item-id in: path type: string description: Invoice item ID. For example, `402880e57f725d85017f7267c4ad002b`. Available through Data Source export. required: true - name: v1-object-usage path: /v1/object/usage operations: - name: objectpostusage method: POST description: 'CRUD: Create a usage record' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: CreateRequest in: body type: string required: true - name: v1-object-usage-id path: /v1/object/usage/{id} operations: - name: objectgetusage method: GET description: 'CRUD: Retrieve a usage record' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fields in: query type: string description: Object fields to return - name: id in: path type: string description: Object id required: true - name: objectputusage method: PUT description: 'CRUD: Update a usage record' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Object id required: true - name: ModifyRequest in: body type: string required: true - name: objectdeleteusage method: DELETE description: 'CRUD: Delete a usage record' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Object id required: true - name: v1-usage path: /v1/usage operations: - name: postusage method: POST description: Upload a usage file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: file in: formData type: file description: The usage data to import. The supported formats are excel, csv, and zip. required: true - name: v1-usage-accounts-account-key path: /v1/usage/accounts/{account-key} operations: - name: getusage method: GET description: Retrieve a usage record outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: account-key in: path type: string description: Account number or account ID. required: true exposes: - type: rest namespace: v1-usage-rest port: 8080 description: REST adapter for API Reference — Usage. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/invoices/invoice-item/{invoice-item-id}/usage-rate-detail name: v1-invoices-invoice-item-invoice-item-id-usage-rate-detail description: REST surface for v1-invoices-invoice-item-invoice-item-id-usage-rate-detail. operations: - method: GET name: getusageratedetailbyinvoiceitem description: Retrieve usage rate detail for an invoice item call: v1-usage.getusageratedetailbyinvoiceitem with: invoice-item-id: rest.invoice-item-id outputParameters: - type: object mapping: $. - path: /v1/v1/object/usage name: v1-object-usage description: REST surface for v1-object-usage. operations: - method: POST name: objectpostusage description: 'CRUD: Create a usage record' call: v1-usage.objectpostusage with: CreateRequest: rest.CreateRequest outputParameters: - type: object mapping: $. - path: /v1/v1/object/usage/{id} name: v1-object-usage-id description: REST surface for v1-object-usage-id. operations: - method: GET name: objectgetusage description: 'CRUD: Retrieve a usage record' call: v1-usage.objectgetusage with: fields: rest.fields id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: objectputusage description: 'CRUD: Update a usage record' call: v1-usage.objectputusage with: id: rest.id ModifyRequest: rest.ModifyRequest outputParameters: - type: object mapping: $. - method: DELETE name: objectdeleteusage description: 'CRUD: Delete a usage record' call: v1-usage.objectdeleteusage with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/usage name: v1-usage description: REST surface for v1-usage. operations: - method: POST name: postusage description: Upload a usage file call: v1-usage.postusage with: file: rest.file outputParameters: - type: object mapping: $. - path: /v1/v1/usage/accounts/{account-key} name: v1-usage-accounts-account-key description: REST surface for v1-usage-accounts-account-key. operations: - method: GET name: getusage description: Retrieve a usage record call: v1-usage.getusage with: account-key: rest.account-key outputParameters: - type: object mapping: $. - type: mcp namespace: v1-usage-mcp port: 9090 transport: http description: MCP adapter for API Reference — Usage. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: retrieve-usage-rate-detail-invoice description: Retrieve usage rate detail for an invoice item hints: readOnly: true destructive: false idempotent: true call: v1-usage.getusageratedetailbyinvoiceitem with: invoice-item-id: tools.invoice-item-id outputParameters: - type: object mapping: $. - name: crud-create-usage-record description: 'CRUD: Create a usage record' hints: readOnly: false destructive: false idempotent: false call: v1-usage.objectpostusage with: CreateRequest: tools.CreateRequest outputParameters: - type: object mapping: $. - name: crud-retrieve-usage-record description: 'CRUD: Retrieve a usage record' hints: readOnly: true destructive: false idempotent: true call: v1-usage.objectgetusage with: fields: tools.fields id: tools.id outputParameters: - type: object mapping: $. - name: crud-update-usage-record description: 'CRUD: Update a usage record' hints: readOnly: false destructive: false idempotent: true call: v1-usage.objectputusage with: id: tools.id ModifyRequest: tools.ModifyRequest outputParameters: - type: object mapping: $. - name: crud-delete-usage-record description: 'CRUD: Delete a usage record' hints: readOnly: false destructive: true idempotent: true call: v1-usage.objectdeleteusage with: id: tools.id outputParameters: - type: object mapping: $. - name: upload-usage-file description: Upload a usage file hints: readOnly: false destructive: false idempotent: false call: v1-usage.postusage with: file: tools.file outputParameters: - type: object mapping: $. - name: retrieve-usage-record description: Retrieve a usage record hints: readOnly: true destructive: false idempotent: true call: v1-usage.getusage with: account-key: tools.account-key outputParameters: - type: object mapping: $.