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_contract_units__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: /contract_units/{contract_unit_id}/contracts/ method: get operationId: get_contracts_by_contract_unit_contract_units__contract_unit_id__contracts__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contract_units/{id}/ method: get operationId: get_contract_unit_details_contract_units__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contract_units/{id}/ method: patch operationId: patch_contract_unit_contract_units__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: /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/{contracting_entity_id}/projects/ method: get operationId: get_projects_by_contracting_entity_contracting_entities__contracting_entity_id__projects__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: /cost_element_tree_templates/ method: get operationId: get_cost_element_tree_templates_cost_element_tree_templates__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /cost_element_tree_templates/{id}/ method: get operationId: get_cost_element_tree_template_cost_element_tree_templates__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /cost_element_tree_templates/{id}/cost_elements/ method: get operationId: get_cost_elements_by_tree_template_cost_element_tree_templates__id__cost_elements__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /cost_elements/ method: get operationId: get_cost_elements_cost_elements__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /cost_elements/{id} method: get operationId: get_cost_element_cost_elements__id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /custom_field_definitions/ method: get operationId: get_custom_field_definitions_custom_field_definitions__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /custom_field_definitions/{id}/ method: get operationId: get_custom_field_definition_details_custom_field_definitions__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - 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: /projects/ method: get operationId: get_projects_projects__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/ method: post operationId: create_project_projects__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: /projects/{id}/ method: get operationId: get_project_details_projects__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{id}/ method: patch operationId: update_project_projects__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: /projects/{id}/submit-invoice/ method: post operationId: submit_invoice_projects__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: /projects/{project_id}/custom_fields/ method: get operationId: get_custom_fields_by_project_projects__project_id__custom_fields__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/ method: get operationId: get_properties_properties__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/ method: post operationId: create_property_properties__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: /properties/{id}/ method: get operationId: get_property_details_properties__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/{id}/ method: patch operationId: update_property_properties__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: /properties/{property_id}/projects/ method: get operationId: get_projects_by_property_properties__property_id__projects__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/cash_outflow/cost_elements/ method: get operationId: get_cash_outflow_cost_element_view_reporting_cash_outflow_cost_elements__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/contract_units/ method: get operationId: get_contract_unit_financials_reporting_contract_units__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/contracts/ method: get operationId: get_contract_financials_reporting_contracts__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/cost_elements/ method: get operationId: get_cost_element_financials_reporting_cost_elements__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/cost_elements/contract_units/ method: get operationId: get_cost_element_contract_unit_financials_reporting_cost_elements_contract_units__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/cost_elements/contracts/ method: get operationId: get_cost_element_contract_financials_reporting_cost_elements_contracts__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/outright_sales/ method: get operationId: get_outright_sales_reporting_outright_sales__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/outright_sales/{id}/ method: get operationId: get_outright_sale_details_reporting_outright_sales__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/projects/ method: get operationId: get_project_financials_reporting_projects__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/rent_units/ method: get operationId: get_rent_units_reporting_rent_units__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/rent_units/{id}/ method: get operationId: get_rent_unit_details_reporting_rent_units__id___get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/sales_units/ method: get operationId: get_sales_units_reporting_sales_units__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /reporting/sales_units/{id}/ method: get operationId: get_sales_unit_details_reporting_sales_units__id___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