generated: '2026-07-15' method: generated source: openapi/hetzner-openapi.yml 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: 189 by_action_class: connected: 82 acting: 107 by_consequence: read: 82 write: 100 safety-critical: 7 human_in_the_loop_required: 7 operations: - path: /actions method: get operationId: get_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /actions/{id} method: get operationId: get_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates method: get operationId: list_certificates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates method: post operationId: create_certificate 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: /certificates/actions method: get operationId: list_certificates_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates/actions/{id} method: get operationId: get_certificates_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates/{id} method: get operationId: get_certificate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates/{id} method: put operationId: update_certificate 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: /certificates/{id} method: delete operationId: delete_certificate 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: /certificates/{id}/actions method: get operationId: list_certificate_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /certificates/{id}/actions/retry method: post operationId: retry_certificate 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: /certificates/{id}/actions/{action_id} method: get operationId: get_certificate_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /datacenters method: get operationId: list_datacenters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /datacenters/{id} method: get operationId: get_datacenter x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls method: get operationId: list_firewalls x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls method: post operationId: create_firewall 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: /firewalls/actions method: get operationId: list_firewalls_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls/actions/{id} method: get operationId: get_firewalls_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls/{id} method: get operationId: get_firewall x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls/{id} method: put operationId: update_firewall 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: /firewalls/{id} method: delete operationId: delete_firewall 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: /firewalls/{id}/actions method: get operationId: list_firewall_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /firewalls/{id}/actions/apply_to_resources method: post operationId: apply_firewall_to_resources 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: /firewalls/{id}/actions/remove_from_resources method: post operationId: remove_firewall_from_resources 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: /firewalls/{id}/actions/set_rules method: post operationId: set_firewall_rules 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: /firewalls/{id}/actions/{action_id} method: get operationId: get_firewall_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips method: get operationId: list_floating_ips x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips method: post operationId: create_floating_ip 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: /floating_ips/actions method: get operationId: list_floating_ips_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips/actions/{id} method: get operationId: get_floating_ips_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips/{id} method: get operationId: get_floating_ip x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips/{id} method: put operationId: update_floating_ip 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: /floating_ips/{id} method: delete operationId: delete_floating_ip 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: /floating_ips/{id}/actions method: get operationId: list_floating_ip_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /floating_ips/{id}/actions/assign method: post operationId: assign_floating_ip 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: /floating_ips/{id}/actions/change_dns_ptr method: post operationId: change_floating_ip_dns_ptr 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: /floating_ips/{id}/actions/change_protection method: post operationId: change_floating_ip_protection 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: /floating_ips/{id}/actions/unassign method: post operationId: unassign_floating_ip 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: /floating_ips/{id}/actions/{action_id} method: get operationId: get_floating_ip_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images method: get operationId: list_images x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images/actions method: get operationId: list_images_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images/actions/{id} method: get operationId: get_images_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images/{id} method: get operationId: get_image x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images/{id} method: put operationId: update_image 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: /images/{id} method: delete operationId: delete_image 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: /images/{id}/actions method: get operationId: list_image_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /images/{id}/actions/change_protection method: post operationId: change_image_protection 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: /images/{id}/actions/{action_id} method: get operationId: get_image_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /isos method: get operationId: list_isos x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /isos/{id} method: get operationId: get_iso x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancer_types method: get operationId: list_load_balancer_types x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancer_types/{id} method: get operationId: get_load_balancer_type x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers method: get operationId: list_load_balancers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers method: post operationId: create_load_balancer 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: /load_balancers/actions method: get operationId: list_load_balancers_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers/actions/{id} method: get operationId: get_load_balancers_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers/{id} method: get operationId: get_load_balancer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers/{id} method: put operationId: update_load_balancer 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: /load_balancers/{id} method: delete operationId: delete_load_balancer 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: /load_balancers/{id}/actions method: get operationId: list_load_balancer_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers/{id}/actions/add_service method: post operationId: add_load_balancer_service 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: /load_balancers/{id}/actions/add_target method: post operationId: add_load_balancer_target 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: /load_balancers/{id}/actions/attach_to_network method: post operationId: attach_load_balancer_to_network 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: /load_balancers/{id}/actions/change_algorithm method: post operationId: change_load_balancer_algorithm 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: /load_balancers/{id}/actions/change_dns_ptr method: post operationId: change_load_balancer_dns_ptr 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: /load_balancers/{id}/actions/change_protection method: post operationId: change_load_balancer_protection 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: /load_balancers/{id}/actions/change_type method: post operationId: change_load_balancer_type 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: /load_balancers/{id}/actions/delete_service method: post operationId: delete_load_balancer_service 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: /load_balancers/{id}/actions/detach_from_network method: post operationId: detach_load_balancer_from_network 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: /load_balancers/{id}/actions/disable_public_interface method: post operationId: disable_load_balancer_public_interface 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: /load_balancers/{id}/actions/enable_public_interface method: post operationId: enable_load_balancer_public_interface 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: /load_balancers/{id}/actions/remove_target method: post operationId: remove_load_balancer_target 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: /load_balancers/{id}/actions/update_service method: post operationId: update_load_balancer_service 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: /load_balancers/{id}/actions/{action_id} method: get operationId: get_load_balancer_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /load_balancers/{id}/metrics method: get operationId: get_load_balancer_metrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /locations method: get operationId: list_locations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /locations/{id} method: get operationId: get_location x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks method: get operationId: list_networks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks method: post operationId: create_network 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: /networks/actions method: get operationId: list_networks_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks/actions/{id} method: get operationId: get_networks_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks/{id} method: get operationId: get_network x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks/{id} method: put operationId: update_network 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: /networks/{id} method: delete operationId: delete_network 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: /networks/{id}/actions method: get operationId: list_network_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /networks/{id}/actions/add_route method: post operationId: add_network_route 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: /networks/{id}/actions/add_subnet method: post operationId: add_network_subnet 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: /networks/{id}/actions/change_ip_range method: post operationId: change_network_ip_range 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: /networks/{id}/actions/change_protection method: post operationId: change_network_protection 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: /networks/{id}/actions/delete_route method: post operationId: delete_network_route 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: /networks/{id}/actions/delete_subnet method: post operationId: delete_network_subnet 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: /networks/{id}/actions/{action_id} method: get operationId: get_network_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /placement_groups method: get operationId: list_placement_groups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /placement_groups method: post operationId: create_placement_group 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: /placement_groups/{id} method: get operationId: get_placement_group x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /placement_groups/{id} method: put operationId: update_placement_group 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: /placement_groups/{id} method: delete operationId: delete_placement_group 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: /pricing method: get operationId: get_pricing x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips method: get operationId: list_primary_ips x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips method: post operationId: create_primary_ip 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: /primary_ips/actions method: get operationId: list_primary_ips_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips/actions/{id} method: get operationId: get_primary_ips_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips/{id}/actions method: get operationId: list_primary_ip_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips/{id}/actions/{action_id} method: get operationId: get_primary_ip_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips/{id} method: get operationId: get_primary_ip x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /primary_ips/{id} method: put operationId: update_primary_ip 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: /primary_ips/{id} method: delete operationId: delete_primary_ip 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: /primary_ips/{id}/actions/assign method: post operationId: assign_primary_ip 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: /primary_ips/{id}/actions/change_dns_ptr method: post operationId: change_primary_ip_dns_ptr 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: /primary_ips/{id}/actions/change_protection method: post operationId: change_primary_ip_protection 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: /primary_ips/{id}/actions/unassign method: post operationId: unassign_primary_ip 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: /server_types method: get operationId: list_server_types x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /server_types/{id} method: get operationId: get_server_type x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers method: get operationId: list_servers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers method: post operationId: create_server 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: /servers/actions method: get operationId: list_servers_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers/actions/{id} method: get operationId: get_servers_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers/{id} method: get operationId: get_server x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers/{id} method: put operationId: update_server 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: /servers/{id} method: delete operationId: delete_server 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: /servers/{id}/actions method: get operationId: list_server_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers/{id}/actions/add_to_placement_group method: post operationId: add_server_to_placement_group 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: /servers/{id}/actions/attach_iso method: post operationId: attach_server_iso 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: /servers/{id}/actions/attach_to_network method: post operationId: attach_server_to_network 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: /servers/{id}/actions/change_alias_ips method: post operationId: change_server_alias_ips 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: /servers/{id}/actions/change_dns_ptr method: post operationId: change_server_dns_ptr 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: /servers/{id}/actions/change_protection method: post operationId: change_server_protection 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: /servers/{id}/actions/change_type method: post operationId: change_server_type 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: /servers/{id}/actions/create_image method: post operationId: create_server_image 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: /servers/{id}/actions/detach_from_network method: post operationId: detach_server_from_network 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: /servers/{id}/actions/detach_iso method: post operationId: detach_server_iso 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: /servers/{id}/actions/disable_backup method: post operationId: disable_server_backup 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: /servers/{id}/actions/disable_rescue method: post operationId: disable_server_rescue 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: /servers/{id}/actions/enable_backup method: post operationId: enable_server_backup 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: /servers/{id}/actions/enable_rescue method: post operationId: enable_server_rescue 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: /servers/{id}/actions/poweroff method: post operationId: poweroff_server 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: /servers/{id}/actions/poweron method: post operationId: poweron_server 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: /servers/{id}/actions/reboot method: post operationId: reboot_server 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: /servers/{id}/actions/rebuild method: post operationId: rebuild_server 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: /servers/{id}/actions/remove_from_placement_group method: post operationId: remove_server_from_placement_group 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: /servers/{id}/actions/request_console method: post operationId: request_server_console 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: /servers/{id}/actions/reset method: post operationId: reset_server 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: /servers/{id}/actions/reset_password method: post operationId: reset_server_password 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: /servers/{id}/actions/shutdown method: post operationId: shutdown_server 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: /servers/{id}/actions/{action_id} method: get operationId: get_server_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /servers/{id}/metrics method: get operationId: get_server_metrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ssh_keys method: get operationId: list_ssh_keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ssh_keys method: post operationId: create_ssh_key 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: /ssh_keys/{id} method: get operationId: get_ssh_key x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ssh_keys/{id} method: put operationId: update_ssh_key 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: /ssh_keys/{id} method: delete operationId: delete_ssh_key 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: /volumes method: get operationId: list_volumes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volumes method: post operationId: create_volume 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: /volumes/actions method: get operationId: list_volumes_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volumes/actions/{id} method: get operationId: get_volumes_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volumes/{id} method: get operationId: get_volume x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volumes/{id} method: put operationId: update_volume 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: /volumes/{id} method: delete operationId: delete_volume 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: /volumes/{id}/actions method: get operationId: list_volume_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /volumes/{id}/actions/attach method: post operationId: attach_volume 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: /volumes/{id}/actions/change_protection method: post operationId: change_volume_protection 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: /volumes/{id}/actions/detach method: post operationId: detach_volume 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: /volumes/{id}/actions/resize method: post operationId: resize_volume 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: /volumes/{id}/actions/{action_id} method: get operationId: get_volume_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones method: get operationId: list_zones x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones method: post operationId: create_zone 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: /zones/{id_or_name} method: get operationId: get_zone x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name} method: put operationId: update_zone 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: /zones/{id_or_name} method: delete operationId: delete_zone 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: /zones/{id_or_name}/zonefile method: get operationId: get_zone_zonefile x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/actions method: get operationId: list_zones_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/actions/{id} method: get operationId: get_zones_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name}/actions method: get operationId: list_zone_actions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name}/actions/{action_id} method: get operationId: get_zone_action x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name}/actions/change_primary_nameservers method: post operationId: change_zone_primary_nameservers 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: /zones/{id_or_name}/actions/change_protection method: post operationId: change_zone_protection 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: /zones/{id_or_name}/actions/change_ttl method: post operationId: change_zone_ttl 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: /zones/{id_or_name}/actions/import_zonefile method: post operationId: import_zone_zonefile 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: /zones/{id_or_name}/rrsets method: get operationId: list_zone_rrsets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name}/rrsets method: post operationId: create_zone_rrset 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type} method: get operationId: get_zone_rrset x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type} method: put operationId: update_zone_rrset 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type} method: delete operationId: delete_zone_rrset 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/change_protection method: post operationId: change_zone_rrset_protection 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/change_ttl method: post operationId: change_zone_rrset_ttl 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/set_records method: post operationId: set_zone_rrset_records 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/add_records method: post operationId: add_zone_rrset_records 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/remove_records method: post operationId: remove_zone_rrset_records 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: /zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/update_records method: post operationId: update_zone_rrset_records 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