Katana · Agentic Access

Katana Agentic Access

x-agentic-access generated

Katana exposes 226 API operations that an AI agent could call, of which 139 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 87 read and 139 safety-critical.

139 operations are classed safety-critical and should require human-in-the-loop approval at runtime.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

CompanyEnterpriseInventoryManufacturingERPSupply ChainWarehouse ManagementOrder Management
Operations: 226 Acting: 139 Human-in-the-loop: 139 Method: generated

By consequence

read 87 safety-critical 139

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
PATCH /batch_stocks/{id} safety-critical required
POST /batches safety-critical required
POST /bin_locations safety-critical required
PATCH /bin_locations/{id} safety-critical required
DELETE /bin_locations/{id} safety-critical required
POST /bin_transfer_rows safety-critical required
PATCH /bin_transfer_rows/{id} safety-critical required
DELETE /bin_transfer_rows/{id} safety-critical required
POST /bin_transfers safety-critical required
PATCH /bin_transfers/{id} safety-critical required
DELETE /bin_transfers/{id} safety-critical required
PATCH /bin_transfers/{id}/status safety-critical required
POST /bom_rows safety-critical required
POST /bom_rows/batch/create safety-critical required
PATCH /bom_rows/{id} safety-critical required
DELETE /bom_rows/{id} safety-critical required
POST /custom_field_definitions safety-critical required
PATCH /custom_field_definitions/{id} safety-critical required
DELETE /custom_field_definitions/{id} safety-critical required
POST /customer_addresses safety-critical required
PATCH /customer_addresses/{id} safety-critical required
DELETE /customer_addresses/{id} safety-critical required
POST /customers safety-critical required
PATCH /customers/{id} safety-critical required
DELETE /customers/{id} safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-19'
method: generated
source: openapi/katana-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 226
  by_action_class:
    connected: 87
    acting: 139
  by_consequence:
    read: 87
    safety-critical: 139
  human_in_the_loop_required: 139
operations:
- path: /additional_costs
  method: get
  operationId: AdditionalCostController.getAdditionalCosts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /batch_stocks/{id}
  method: patch
  operationId: BatchStockController.updateBatchStock
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /batch_stocks
  method: get
  operationId: BatchStockController.getBatchStock
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /batches
  method: post
  operationId: BatchController.createBatch
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_inventory
  method: get
  operationId: BinInventoryController.findAndPaginate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bin_locations/{id}
  method: patch
  operationId: BinLocationController.updateBinLocation
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_locations/{id}
  method: delete
  operationId: BinLocationController.deleteBinLocation
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_locations
  method: post
  operationId: BinLocationController.createBinLocation
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_locations
  method: get
  operationId: BinLocationController.findBinLocations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bin_transfer_rows/{id}
  method: patch
  operationId: BinTransferRowController.updateById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfer_rows/{id}
  method: get
  operationId: BinTransferRowController.findById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bin_transfer_rows/{id}
  method: delete
  operationId: BinTransferRowController.deleteById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfer_rows
  method: post
  operationId: BinTransferRowController.create
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfer_rows
  method: get
  operationId: BinTransferRowController.findAndPaginate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bin_transfers/{id}/status
  method: patch
  operationId: BinTransferController.updateStatus
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfers/{id}
  method: patch
  operationId: BinTransferController.updateById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfers/{id}
  method: get
  operationId: BinTransferController.findById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bin_transfers/{id}
  method: delete
  operationId: BinTransferController.deleteById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfers
  method: post
  operationId: BinTransferController.create
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bin_transfers
  method: get
  operationId: BinTransferController.findAndPaginate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /bom_rows/batch/create
  method: post
  operationId: BomRowController.createBomRowsBatch
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bom_rows/{id}
  method: patch
  operationId: BomRowController.updateBomRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bom_rows/{id}
  method: delete
  operationId: BomRowController.deleteBomRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bom_rows
  method: post
  operationId: BomRowController.createBomRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /bom_rows
  method: get
  operationId: BomRowController.getBomRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /custom_field_definitions/{id}
  method: patch
  operationId: CustomFieldDefinitionController.update
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /custom_field_definitions/{id}
  method: get
  operationId: CustomFieldDefinitionController.getById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /custom_field_definitions/{id}
  method: delete
  operationId: CustomFieldDefinitionController.deleteById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /custom_field_definitions
  method: post
  operationId: CustomFieldDefinitionController.create
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /custom_field_definitions
  method: get
  operationId: CustomFieldDefinitionController.getAll
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /custom_fields_collections
  method: get
  operationId: ItemsCustomFieldsCollectionController.getAllCollections
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customer_addresses/{id}
  method: patch
  operationId: CustomerAddressController.updateCustomerAddress
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customer_addresses/{id}
  method: delete
  operationId: CustomerAddressController.deleteCustomerAddress
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customer_addresses
  method: post
  operationId: CustomerAddressController.createCustomerAddress
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customer_addresses
  method: get
  operationId: CustomerAddressController.getAllCustomerAddresses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/{id}
  method: patch
  operationId: CustomerController.updateVariant
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customers/{id}
  method: delete
  operationId: CustomerController.deleteCustomer
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customers
  method: post
  operationId: CustomerController.createCustomer
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /customers
  method: get
  operationId: CustomerController.getAllCustomers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /demand_forecasts
  method: post
  operationId: DemandForecastController.updateDemandForecast
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /demand_forecasts
  method: get
  operationId: DemandForecastController.findDemandForecast
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /demand_forecasts
  method: delete
  operationId: DemandForecastController.clearDemandForecast
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /factory
  method: get
  operationId: FactoryController.getFactory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /inventory
  method: get
  operationId: InventoryController.getInventories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /inventory_movements
  method: get
  operationId: InventoryController.getInventoryMovements
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /inventory_reorder_points
  method: post
  operationId: InventorySafetyStockLevelController.createInventoryReorderPoint
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /inventory_safety_stock_levels
  method: post
  operationId: InventorySafetyStockLevelController.createInventorySafetyStockLevel
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /locations/{id}
  method: get
  operationId: LocationController.getLocation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /locations
  method: get
  operationId: LocationController.getAllLocations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_make_to_order
  method: post
  operationId: MakeToOrderMOController.createMTO
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_operation_rows/{id}
  method: patch
  operationId: ManufacturingOrderOperationRowController.updateManufacturingOrderOperationRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_operation_rows/{id}
  method: get
  operationId: ManufacturingOrderOperationRowController.retrieveManufacturingOrderOperationRow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_operation_rows/{id}
  method: delete
  operationId: ManufacturingOrderOperationRowController.deleteManufacturingOrderOperationRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_operation_rows
  method: post
  operationId: ManufacturingOrderOperationRowController.createManufacturingOrderOperationRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_operation_rows
  method: get
  operationId: ManufacturingOrderOperationRowController.getManufacturingOrderOperationRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_production_ingredients/{id}
  method: patch
  operationId: ManufacturingOrderProductionIngredientController.updateManufacturingOrderProductionIngredient
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_production_ingredients
  method: get
  operationId: ManufacturingOrderProductionIngredientController.find
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_productions/{id}
  method: patch
  operationId: ManufacturingOrderProductionController.update
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_productions/{id}
  method: get
  operationId: ManufacturingOrderProductionController.findById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_productions/{id}
  method: delete
  operationId: ManufacturingOrderProductionController.deleteManufacturingOrderProduction
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_productions
  method: post
  operationId: ManufacturingOrderProductionController.completePartially
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_productions
  method: get
  operationId: ManufacturingOrderProductionController.find
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_recipe_rows/{id}
  method: patch
  operationId: ManufacturingOrderRecipeRowController.updateManufacturingRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_recipe_rows/{id}
  method: get
  operationId: ManufacturingOrderRecipeRowController.findManufacturingOrderRecipeRowById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_recipe_rows/{id}
  method: delete
  operationId: ManufacturingOrderRecipeRowController.deleteManufacturingOrderRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_recipe_rows
  method: post
  operationId: ManufacturingOrderRecipeRowController.createManufacturingOrderRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_recipe_rows
  method: get
  operationId: ManufacturingOrderRecipeRowController.findManufacturingOrderRecipeRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_order_rerank
  method: post
  operationId: MakeToOrderMOController.rerank
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_order_unlink
  method: post
  operationId: MakeToOrderMOController.unlink
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_orders/{id}
  method: patch
  operationId: ManufacturingOrderController.updateManufacturingOrder
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_orders/{id}
  method: get
  operationId: ManufacturingOrderController.getManufacturingOrder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /manufacturing_orders/{id}
  method: delete
  operationId: ManufacturingOrderController.deleteManufacturingOrder
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_orders
  method: post
  operationId: ManufacturingOrderController.createManufacturingOrder
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /manufacturing_orders
  method: get
  operationId: ManufacturingOrderController.getManufacturingOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /materials/{id}
  method: patch
  operationId: MaterialController.updateMaterial
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /materials/{id}
  method: get
  operationId: MaterialController.getMaterial
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /materials/{id}
  method: delete
  operationId: MaterialController.deleteManufacturingOrder
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /materials
  method: post
  operationId: MaterialController.createMaterial
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /materials
  method: get
  operationId: MaterialController.getAllMaterials
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /negative_stock
  method: get
  operationId: NegativeStockLatestMovementController.getAllNegativeStockLatestMovements
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /operators
  method: get
  operationId: OperatorsController.find
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /outsourced_purchase_order_recipe_rows/{id}
  method: patch
  operationId: PurchaseOrderRecipeRowController.updatePurchaseOrderRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /outsourced_purchase_order_recipe_rows/{id}
  method: get
  operationId: PurchaseOrderRecipeRowController.getPurchaseOrderRecipeRow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /outsourced_purchase_order_recipe_rows/{id}
  method: delete
  operationId: PurchaseOrderRecipeRowController.deletePurchaseOrderRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /outsourced_purchase_order_recipe_rows
  method: post
  operationId: PurchaseOrderRecipeRowController.createPurchaseOrderRecipeRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /outsourced_purchase_order_recipe_rows
  method: get
  operationId: PurchaseOrderRecipeRowController.getPurchaseOrderRecipeRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /po_additional_cost_rows/{id}
  method: patch
  operationId: PoAdditionalCostRowController.updatePoAdditionalCostRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /po_additional_cost_rows/{id}
  method: get
  operationId: PoAdditionalCostRowController.getPoAdditionalCostRow
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /po_additional_cost_rows/{id}
  method: delete
  operationId: PoAdditionalCostRowController.deletePoAdditionalCostRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /po_additional_cost_rows
  method: post
  operationId: PoAdditionalCostRowController.createPoAdditionalCostRow
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /po_additional_cost_rows
  method: get
  operationId: PoAdditionalCostRowController.getPoAdditionalCostRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /price_list_customers/{id}
  method: patch
  operationId: PriceListCustomerController.updateById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /price_list_customers/{id}
  method: get
  operationId: PriceListCustomerController.findById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /price_list_customers/{id}
  method: delete
  operationId: PriceListCustomerController.deleteById
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: r

# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/katana/refs/heads/main/agentic-access/katana-agentic-access.yml