Alasco · Agentic Access

Alasco Agentic Access

x-agentic-access generated

Alasco exposes 178 API operations that an AI agent could call, of which 70 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: 108 read, 44 write, and 26 physical.

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.

CompanyAi Enterprise SoftwareReal EstateConstructionPropTechFinancial ManagementCost ManagementCapital ExpenditureESGSustainability
Operations: 178 Acting: 70 Human-in-the-loop: 0 Method: generated

By consequence

read 108 write 44 physical 26

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
POST /assets/{id}/submit-invoice/ physical conditional
POST /change_orders/{change_order_id}/documents/ physical conditional
POST /change_orders/{change_order_id}/documents/ physical conditional
POST /invoices/add-paid-invoice/ physical conditional
POST /invoices/add-paid-invoice/ physical conditional
DELETE /invoices/{id}/ physical conditional
DELETE /invoices/{id}/ physical conditional
POST /invoices/{id}/register-payment/ physical conditional
POST /invoices/{id}/register-payment/ physical conditional
POST /invoices/{id}/update-new/ physical conditional
POST /invoices/{id}/update-new/ physical conditional
POST /invoices/{id}/update-paid-invoice/ physical conditional
POST /invoices/{id}/update-paid-invoice/ physical conditional
POST /invoices/{invoice_id}/documents/ physical conditional
POST /invoices/{invoice_id}/documents/ physical conditional
POST /invoices/{invoice_id}/tags/assign/ physical conditional
POST /invoices/{invoice_id}/tags/assign/ physical conditional
POST /invoices/{invoice_id}/tags/unassign/ physical conditional
POST /invoices/{invoice_id}/tags/unassign/ physical conditional
POST /projects/{id}/submit-invoice/ physical conditional
POST /tags/ physical conditional
POST /tags/ physical conditional
DELETE /tags/{id}/ physical conditional
PATCH /tags/{id}/ physical conditional
DELETE /tags/{id}/ physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-17'
method: generated
source: openapi/alasco-capex-openapi.json, openapi/alasco-esg-openapi.json, openapi/alasco-fincon-openapi.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: 178
  by_action_class:
    connected: 108
    acting: 70
  by_consequence:
    read: 108
    physical: 26
    write: 44
  human_in_the_loop_required: 0
operations:
- path: /assets/
  method: get
  operationId: get_assets_assets__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /assets/{id}/
  method: get
  operationId: get_asset_details_assets__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /assets/{id}/submit-invoice/
  method: post
  operationId: submit_invoice_assets__id__submit_invoice__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /change_orders/
  method: get
  operationId: get_change_orders_change_orders__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/
  method: get
  operationId: get_change_order_documents_change_orders__change_order_id__documents__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/
  method: post
  operationId: create_change_order_document_change_orders__change_order_id__documents__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /change_orders/{change_order_id}/documents/{document_id}/
  method: get
  operationId: get_change_order_document_change_orders__change_order_id__documents__document_id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/{document_id}/download-annotated/
  method: get
  operationId: download_annotated_change_order_document_change_orders__change_order_id__documents__document_id__download_annotated__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/{document_id}/download/
  method: get
  operationId: download_change_order_document_change_orders__change_order_id__documents__document_id__download__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{id}/
  method: get
  operationId: get_change_order_details_change_orders__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracting_entities/
  method: get
  operationId: get_contracting_entities_contracting_entities__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracting_entities/
  method: post
  operationId: create_contracting_entity_contracting_entities__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contracting_entities/{contracting_entity_id}/contracts/
  method: get
  operationId: get_contracts_by_contracting_entity_contracting_entities__contracting_entity_id__contracts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracting_entities/{id}/
  method: get
  operationId: get_contracting_entity_details_contracting_entities__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracting_entities/{id}/
  method: patch
  operationId: update_contracting_entity_contracting_entities__id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contractors/
  method: get
  operationId: get_contractors_contractors__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contractors/
  method: post
  operationId: create_contractor_contractors__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contractors/{contractor_id}/contracts/
  method: get
  operationId: get_contracts_by_contractor_contractors__contractor_id__contracts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contractors/{id}/
  method: get
  operationId: get_contractor_details_contractors__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contractors/{id}/
  method: patch
  operationId: update_contractor_contractors__id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contractors/{id}/download-tax-waiver/
  method: get
  operationId: download_tax_waiver_contractors__id__download_tax_waiver__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contractors/{id}/upload-tax-waiver/
  method: post
  operationId: upload_tax_waiver_contractors__id__upload_tax_waiver__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contracts/
  method: get
  operationId: get_contracts_contracts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/
  method: post
  operationId: create_contract_contracts__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contracts/{contract_id}/change_orders/
  method: get
  operationId: get_change_orders_by_contract_contracts__contract_id__change_orders__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/contract_terms/
  method: get
  operationId: get_contract_terms_contracts__contract_id__contract_terms__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/custom_fields/
  method: get
  operationId: get_custom_fields_by_contract_contracts__contract_id__custom_fields__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/documents/
  method: get
  operationId: get_contract_documents_contracts__contract_id__documents__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/documents/
  method: post
  operationId: create_contract_document_contracts__contract_id__documents__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contracts/{contract_id}/documents/{document_id}/
  method: get
  operationId: get_contract_document_contracts__contract_id__documents__document_id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/documents/{document_id}/download/
  method: get
  operationId: download_contract_document_contracts__contract_id__documents__document_id__download__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{contract_id}/invoices/
  method: get
  operationId: get_invoices_by_contract_contracts__contract_id__invoices__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{id}/
  method: get
  operationId: get_contract_details_contracts__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contracts/{id}/
  method: patch
  operationId: update_contract_contracts__id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/
  method: get
  operationId: get_invoices_invoices__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/add-paid-invoice/
  method: post
  operationId: add_paid_invoice_invoices_add_paid_invoice__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{id}/
  method: delete
  operationId: delete_paid_invoice_invoices__id___delete
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{id}/
  method: get
  operationId: get_invoice_details_invoices__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{id}/register-payment/
  method: post
  operationId: register_payment_invoices__id__register_payment__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{id}/update-new/
  method: post
  operationId: update_new_invoices__id__update_new__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{id}/update-paid-invoice/
  method: post
  operationId: update_paid_invoice_invoices__id__update_paid_invoice__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{invoice_id}/documents/
  method: get
  operationId: get_invoice_documents_invoices__invoice_id__documents__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{invoice_id}/documents/
  method: post
  operationId: create_invoice_document_invoices__invoice_id__documents__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{invoice_id}/documents/{document_id}/
  method: get
  operationId: get_invoice_document_invoices__invoice_id__documents__document_id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{invoice_id}/documents/{document_id}/download-annotated/
  method: get
  operationId: download_annotated_invoice_document_invoices__invoice_id__documents__document_id__download_annotated__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{invoice_id}/documents/{document_id}/download/
  method: get
  operationId: download_invoice_document_invoices__invoice_id__documents__document_id__download__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{invoice_id}/tags/
  method: get
  operationId: get_tags_by_invoice_invoices__invoice_id__tags__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /invoices/{invoice_id}/tags/assign/
  method: post
  operationId: assign_tag_invoices__invoice_id__tags_assign__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /invoices/{invoice_id}/tags/unassign/
  method: post
  operationId: unassign_tag_invoices__invoice_id__tags_unassign__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /measures/
  method: get
  operationId: get_measures_measures__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /measures/{id}/
  method: get
  operationId: get_measure_measures__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /measures/{id}/contracts/
  method: get
  operationId: get_contracts_by_measure_measures__id__contracts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tags/
  method: get
  operationId: get_tags_tags__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tags/
  method: post
  operationId: create_tag_tags__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tags/{id}/
  method: delete
  operationId: delete_tag_tags__id___delete
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tags/{id}/
  method: patch
  operationId: update_tag_tags__id___patch
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /buildings/
  method: get
  operationId: get_buildings_buildings__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /buildings/{building_uuid}/analysis-result/
  method: get
  operationId: get_analysis_result_buildings__building_uuid__analysis_result__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /buildings/{building_uuid}/custom-data/
  method: get
  operationId: get_custom_data_buildings__building_uuid__custom_data__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /buildings/{building_uuid}/utility-meters/
  method: get
  operationId: get_utility_meters_buildings__building_uuid__utility_meters__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /buildings/{building_uuid}/utility-meters/{meter_uuid}/readings/
  method: post
  operationId: create_utility_meter_reading_buildings__building_uuid__utility_meters__meter_uuid__readings__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /consumption-intervals/
  method: post
  operationId: create_consumption_interval_consumption_intervals__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /consumption-intervals/bulk-partial/
  method: post
  operationId: bulk_create_consumption_intervals_partial_consumption_intervals_bulk_partial__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /consumption-intervals/bulk/
  method: post
  operationId: bulk_create_consumption_intervals_consumption_intervals_bulk__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /consumption/annual/
  method: get
  operationId: get_annual_consumption_consumption_annual__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /consumption/annual/{annual_consumption_id}/
  method: patch
  operationId: update_annual_consumption_consumption_annual__annual_consumption_id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /file-events/
  method: get
  operationId: get_file_events_file_events__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /files/
  method: delete
  operationId: delete_file_files__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/
  method: post
  operationId: upload_file_files__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/metadata/
  method: get
  operationId: get_file_metadata_files_metadata__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /files/metadata/
  method: patch
  operationId: patch_file_metadata_files_metadata__patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /files/{file_id}/
  method: get
  operationId: get_file_files__file_id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /files/{file_id}/external-id/
  method: post
  operationId: create_file_external_id_files__file_id__external_id__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /meter-readings/
  method: post
  operationId: create_utility_meter_reading_with_external_id_meter_readings__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /meter-readings/bulk/
  method: post
  operationId: bulk_create_utility_meter_readings_meter_readings_bulk__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /raw-audit/
  method: get
  operationId: get_events_raw_audit__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /raw-user-audit/
  method: get
  operationId: get_user_events_raw_user_audit__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /tenant-consumption-links/
  method: delete
  operationId: delete_tenant_consumption_link_tenant_consumption_links__delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tenant-consumption-links/
  method: post
  operationId: create_tenant_consumption_link_tenant_consumption_links__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tenants/
  method: post
  operationId: upsert_tenant_tenants__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tenants/{external_tenant_id}/attachments/
  method: post
  operationId: create_tenant_attachment_tenants__external_tenant_id__attachments__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /utility-data-batch-info/
  method: post
  operationId: add_utility_data_batch_info_utility_data_batch_info__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /utility-meters/
  method: post
  operationId: add_utility_meter_utility_meters__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /utility-meters/bulk-import-partial/
  method: post
  operationId: bulk_add_utility_meter_import_partial_utility_meters_bulk_import_partial__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /utility-meters/import/
  method: post
  operationId: add_utility_meter_import_utility_meters_import__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /utility-meters/{meter_external_id}/
  method: patch
  operationId: update_utility_meter_utility_meters__meter_external_id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /budget_shifts/
  method: get
  operationId: get_budget_shifts_budget_shifts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/
  method: get
  operationId: get_change_orders_change_orders__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/
  method: get
  operationId: get_change_order_documents_change_orders__change_order_id__documents__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/
  method: post
  operationId: create_change_order_document_change_orders__change_order_id__documents__post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /change_orders/{change_order_id}/documents/{document_id}/
  method: get
  operationId: get_change_order_document_change_orders__change_order_id__documents__document_id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/{document_id}/download-annotated/
  method: get
  operationId: download_annotated_change_order_document_change_orders__change_order_id__documents__document_id__download_annotated__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{change_order_id}/documents/{document_id}/download/
  method: get
  operationId: download_change_order_document_change_orders__change_order_id__documents__document_id__download__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /change_orders/{id}/
  method: get
  operationId: get_change_order_details_change_orders__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/
  method: get
  operationId: get_contacts_contacts__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/
  method: post
  operationId: create_contact_contacts__post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{id}/
  method: get
  operationId: get_contact_details_contacts__id___get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{id}/
  method: patch
  operationId: update_contact_contacts__id___patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contract_units/
  method: get
  operationId: get_contract_units_contract_units__get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /contract_units/
  method: post
  operationId: create_contract_unit

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