generated: '2026-08-04' method: generated source: openapi/crusoe-cloud-api-gateway-v1-openapi.json, openapi/crusoe-cloud-api-gateway-v1alpha5-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: 464 by_action_class: connected: 266 acting: 198 by_consequence: read: 266 write: 180 physical: 14 safety-critical: 4 human_in_the_loop_required: 4 operations: - path: /capacities method: get operationId: listSliceCapacities x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/supported-locations method: get operationId: listSupportedLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/supported-providers method: get operationId: listSupportedProviders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/tokens method: post operationId: createCcrToken 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: /compute/images method: get operationId: listImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /compute/images/{image_id} method: get operationId: getImage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /featureflags method: get operationId: getFeatureFlags x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/role-bindings method: get operationId: listRoleBindings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/roles method: get operationId: listRoles x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/users/{user_id}/role-bindings method: post operationId: applyRoleBindings 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: /locations method: get operationId: listLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/entities method: get operationId: getOrganizations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/entities method: put operationId: updateOrganization 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: /organizations/projects method: get operationId: listProjects x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/projects method: post operationId: createProject 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: /organizations/projects method: put operationId: updateProject 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: /organizations/projects/{project_id} method: delete operationId: deleteProject 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: /organizations/projects/{project_id} method: get operationId: getProject x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations method: get operationId: listSCIMIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations method: post operationId: createSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id} method: delete operationId: deleteSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id} method: get operationId: getSCIMIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations/{integration_id} method: patch operationId: updateSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id}/tokens method: get operationId: listSCIMIntegrationTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations/{integration_id}/tokens method: post operationId: createSCIMIntegrationToken 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: /organizations/{org_id}/scim/integrations/{integration_id}/tokens/{access_key_id} method: delete operationId: deleteSCIMIntegrationToken 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: /organizations/{org_id}/storage/s3/keys method: get operationId: listS3Keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/storage/s3/keys method: post operationId: createS3Key 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: /organizations/{org_id}/storage/s3/keys/{access_key_id} method: delete operationId: deleteS3Key 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: /organizations/{org_id}/usage method: get operationId: getUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/audit-logs method: get operationId: getAuditLogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/costs method: get operationId: getBillingCosts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/export-productline method: get operationId: getBillingExportProductline x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/options method: get operationId: getBillingOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/mfa method: get operationId: getMFA x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/mfa method: patch operationId: updateMFA 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: /organizations/{organization_id}/quotas method: get operationId: listOrgQuotas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations method: get operationId: getReservations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/gpu-tracking method: get operationId: getReservationsGPUTracking x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/gpu-tracking/latest method: get operationId: getLatestGPUTracking x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/{reservation_id} method: get operationId: getReservation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/sso/providers method: get operationId: listSSOProviders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/sso/providers method: post operationId: createSSOProvider 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: /organizations/{organization_id}/sso/providers/{provider_id} method: delete operationId: deleteSSOProvider 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: /organizations/{organization_id}/usage/export method: get operationId: getUsageExport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/usage/options method: get operationId: getUsageOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories method: get operationId: listCcrRepositories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories method: post operationId: createCcrRepository 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/{project_id}/ccr/repositories/{repository_id} method: delete operationId: deleteCcrRepository 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/{project_id}/ccr/repositories/{repository_id} method: get operationId: getCcrRepository x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id} method: patch operationId: updateCcrRepositoryCredentials 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/{project_id}/ccr/repositories/{repository_id}/images method: delete operationId: deleteCcrImage 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/{project_id}/ccr/repositories/{repository_id}/images method: get operationId: listCcrImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id}/manifests method: delete operationId: deleteCcrManifest 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/{project_id}/ccr/repositories/{repository_id}/manifests method: get operationId: listCcrManifests x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id}/usage method: get operationId: getCcrRepositoryUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images method: get operationId: listCustomImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images method: post operationId: customImagePost 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/{project_id}/compute/custom-images/operations method: get operationId: listCustomImagesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/operations/{operation_id} method: get operationId: getCustomImagesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/{image_id} method: delete operationId: customImageDelete 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/{project_id}/compute/custom-images/{image_id} method: get operationId: getCustomImage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/{image_id} method: patch operationId: customImagePatch 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/{project_id}/compute/custom-images/{image_id}/edit-tags method: patch operationId: customImageEditTags 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/{project_id}/compute/instance-groups method: get operationId: listInstanceGroups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-groups method: post operationId: createInstanceGroup 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/{project_id}/compute/instance-groups/{instance_group_id} method: delete operationId: deleteInstanceGroup 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/{project_id}/compute/instance-groups/{instance_group_id} method: get operationId: getInstanceGroup x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-groups/{instance_group_id} method: patch operationId: patchInstanceGroup 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/{project_id}/compute/instance-templates method: get operationId: listInstanceTemplates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-templates method: post operationId: createInstanceTemplate 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/{project_id}/compute/instance-templates/{instance_template_id} method: delete operationId: deleteInstanceTemplate 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/{project_id}/compute/instance-templates/{instance_template_id} method: get operationId: getInstanceTemplate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/bulk-instances method: post operationId: bulkCreateInstance 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/{project_id}/compute/vms/instances method: get operationId: listInstances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances method: post operationId: createInstance 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/{project_id}/compute/vms/instances/operations method: get operationId: listComputeVMsInstancesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/operations/{operation_id} method: get operationId: getComputeVMsInstancesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/{vm_id} method: delete operationId: deleteInstance 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/{project_id}/compute/vms/instances/{vm_id} method: get operationId: getInstance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/{vm_id} method: patch operationId: updateInstance 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/{project_id}/compute/vms/instances/{vm_id}/attach-disks method: post operationId: updateInstanceAttachDisks 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/{project_id}/compute/vms/instances/{vm_id}/detach-disks method: post operationId: updateInstanceDetachDisks 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/{project_id}/compute/vms/types method: get operationId: getVMTypes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials method: get operationId: listFoundryCredentials x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials method: post operationId: createFoundryCredential 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/{project_id}/foundry/credentials/{id} method: delete operationId: deleteFoundryCredential 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/{project_id}/foundry/credentials/{id} method: get operationId: getFoundryCredential x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials/{id} method: patch operationId: updateFoundryCredential 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/{project_id}/foundry/deployed-models method: get operationId: listFoundryDeployedModels x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/activity method: get operationId: getFoundryDeployedModelsActivity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/progress method: get operationId: getFoundryDeployedModelsProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/progress/stream method: get operationId: streamFoundryDeployedModelsProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/rename method: post operationId: renameFoundryDeployedModel 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}/foundry/deployed-models/update method: post operationId: updateFoundryDeployedModel 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}/foundry/loras method: get operationId: listFoundryLoras x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/loras method: post operationId: createFoundryLora 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}/foundry/loras/{id} method: delete operationId: deleteFoundryLora 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}/foundry/loras/{id} method: get operationId: getFoundryLora x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments method: get operationId: listFoundryDeployments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments method: post operationId: createFoundryDeployment 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}/foundry/selfserve/deployments/{id} method: delete operationId: deleteFoundryDeployment 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}/foundry/selfserve/deployments/{id} method: get operationId: getFoundryDeployment x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id} method: patch operationId: updateFoundryDeployment 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}/foundry/selfserve/deployments/{id}/activity method: get operationId: getFoundryDeploymentActivity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id}/progress method: get operationId: getFoundryDeploymentProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id}/progress/stream method: get operationId: streamFoundryDeploymentProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/flavors method: get operationId: listFoundryFlavors x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/autocluster-operations method: get operationId: listAutoClusterOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/autocluster-operations/{operation_id} method: get operationId: getAutoClusterOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters method: get operationId: listClusters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters method: post operationId: createCluster 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/{project_id}/kubernetes/clusters/operations method: get operationId: listKubernetesClustersOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/operations/{operation_id} method: get operationId: getKubernetesClustersOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id} method: delete operationId: deleteCluster 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/{project_id}/kubernetes/clusters/{cluster_id} method: get operationId: getCluster x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id} method: patch operationId: updateCluster 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/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config method: get operationId: getAutoClustersConfig x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config method: patch operationId: updateAutoClustersConfig 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/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate method: post operationId: remediateVM 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/{project_id}/kubernetes/clusters/{cluster_id}/get-credentials method: post operationId: getClusterCredentials 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/{project_id}/kubernetes/clusters/{cluster_id}/support/settings method: get operationId: getSupportSettings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings method: patch operationId: updateSupportSettings 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/{project_id}/kubernetes/nodepools method: get operationId: listNodePools x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools method: post operationId: createNodePool 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/{project_id}/kubernetes/nodepools/operations method: get operationId: listKubernetesNodePoolsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/operations/{operation_id} method: get operationId: getKubernetesNodePoolsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id} method: delete operationId: deleteNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id} method: get operationId: getNodePool x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id} method: patch operationId: updateNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate method: post operationId: cancelNodePoolRotate 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/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate method: get operationId: getNodePoolRotateStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate method: post operationId: rotateNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id}/vms method: get operationId: listKubernetesNodePoolVMs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/versions method: get operationId: listKubernetesVersions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/scrape method: get operationId: scrapeMetrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries method: get operationId: queryTimeseriesSimplified x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/api/v1/query method: get operationId: queryTimeseries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/api/v1/query-range method: get operationId: queryTimeseriesRange x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/query-parameters method: get operationId: queryTimeseriesWithParameters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-networks method: get operationId: listIBNetworks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-networks/{ib_network_id} method: get operationId: getIBNetwork x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-partitions method: get operationId: listIBPartitions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-partitions method: post operationId: createIBPartition 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/{project_id}/networking/ib-partitions/{ib_partition_id} method: delete operationId: deleteIBPartition 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/{project_id}/networking/ib-partitions/{ib_partition_id} method: get operationId: getIBPartition x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers method: get operationId: listLoadBalancers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers method: post operationId: createLoadBalancer 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/{project_id}/networking/internal-load-balancers/operations method: get operationId: listNetworkingLoadBalancersOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/operations/{operation_id} method: get operationId: getNetworkingLoadBalancersOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: delete operationId: deleteLoadBalancer 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/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: get operationId: getLoadBalancer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: patch operationId: patchLoadBalancer 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/{project_id}/networking/load-balancers method: get operationId: listExternalLoadBalancers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers method: post operationId: createExternalLoadBalancer 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/{project_id}/networking/load-balancers/operations method: get operationId: listExternalLoadBalancerOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/operations/{operation_id} method: get operationId: getExternalLoadBalancerOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/{load_balancer_id} method: delete operationId: deleteExternalLoadBalancer 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/{project_id}/networking/load-balancers/{load_balancer_id} method: get operationId: getExternalLoadBalancer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/{load_balancer_id} method: patch operationId: updateExternalLoadBalancer 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/{project_id}/networking/nvlink-domains method: get operationId: listNvlinkDomains x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules method: get operationId: listVPCFirewallRules x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules method: post operationId: createVPCFirewallRule 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/{project_id}/networking/vpc-firewall-rules/operations method: get operationId: listNetworkingVPCFirewallRulesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/operations/{operation_id} method: get operationId: getNetworkingVPCFirewallRulesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: delete operationId: deleteVPCFirewallRule 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/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: get operationId: getVPCFirewallRule x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: patch operationId: patchVPCFirewallRule 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/{project_id}/networking/vpc-networks method: get operationId: listVPCNetworks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks method: post operationId: createVPCNetwork 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/{project_id}/networking/vpc-networks/operations method: get operationId: listNetworkingVPCNetworksOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/operations/{operation_id} method: get operationId: getNetworkingVPCNetworksOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/{vpc_network_id} method: delete operationId: deleteVPCNetwork 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/{project_id}/networking/vpc-networks/{vpc_network_id} method: get operationId: getVPCNetwork x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/{vpc_network_id} method: patch operationId: patchVPCNetwork 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/{project_id}/networking/vpc-subnets method: get operationId: listVPCSubnets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets method: post operationId: createVPCSubnet 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/{project_id}/networking/vpc-subnets/operations method: get operationId: listNetworkingVPCSubnetsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/operations/{operation_id} method: get operationId: getNetworkingVPCSubnetsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: delete operationId: deleteVPCSubnet 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/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: get operationId: getVPCSubnet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: patch operationId: patchVPCSubnet 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/{project_id}/quotas method: get operationId: listProjectQuotas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters method: get operationId: listSlurmClusters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters method: post operationId: createSlurmCluster 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/{project_id}/slurm/clusters/operations method: get operationId: listSlurmClusterOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters/operations/{operation_id} method: get operationId: getSlurmClusterOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters/{slurm_cluster_id} method: delete operationId: deleteSlurmCluster 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/{project_id}/slurm/clusters/{slurm_cluster_id} method: get operationId: getSlurmCluster x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets method: get operationId: listSlurmNodesets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets method: post operationId: createSlurmNodeset 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/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations method: get operationId: listSlurmNodesetsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations/{operation_id} method: get operationId: getSlurmNodesetOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: delete operationId: deleteSlurmNodeset 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/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: get operationId: getSlurmNodeset x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: patch operationId: updateSlurmNodeset 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/{project_id}/storage/disks method: get operationId: listDisks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks method: post operationId: createDisk 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/{project_id}/storage/disks/operations method: get operationId: listStorageDisksOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/operations/{operation_id} method: get operationId: getStorageDisksOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/{disk_id} method: delete operationId: deleteDisk 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/{project_id}/storage/disks/{disk_id} method: get operationId: getDisk x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/{disk_id} method: patch operationId: resizeDisk 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/{project_id}/storage/s3/buckets method: get operationId: listS3Buckets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets method: post operationId: createS3Bucket 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/{project_id}/storage/s3/buckets/count method: get operationId: getS3BucketsCount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/quota method: get operationId: getS3BucketsQuotaRequest x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/{bucket_name} method: delete operationId: deleteS3Bucket 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/{project_id}/storage/s3/buckets/{bucket_name} method: get operationId: getS3Bucket x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/{bucket_name} method: patch operationId: updateS3BucketTags 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/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock method: post operationId: enableS3BucketObjectLock 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: /projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning method: post operationId: enableS3BucketVersioning 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: /projects/{project_id}/storage/snapshots method: get operationId: listDiskSnapshots x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots method: post operationId: createDiskSnapshot 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/{project_id}/storage/snapshots/operations method: get operationId: listStorageSnapshotsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/operations/{operation_id} method: get operationId: getStorageSnapshotsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/{snapshot_id} method: delete operationId: deleteDiskSnapshot 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/{project_id}/storage/snapshots/{snapshot_id} method: get operationId: getDiskSnapshot x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/{snapshot_id} method: patch operationId: renameDiskSnapshot 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: /storage/object-storage/supported-locations method: get operationId: listS3SupportedLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/identities method: get operationId: getUserIdentity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/identities method: put operationId: updateUserIdentity 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: /users/limited-usage-api-key method: delete operationId: deleteLimitedUsageAPIKey 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: /users/limited-usage-api-key method: get operationId: getLimitedUsageAPIKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/limited-usage-api-key method: post operationId: createLimitedUsageAPIKey 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: /users/ssh-keys method: delete operationId: deleteSSHKey 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: /users/ssh-keys method: get operationId: getSSHKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/ssh-keys method: post operationId: createSSHKey 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: /users/sso-enforcement method: patch operationId: updateUserSSOEnforcement 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: /users/tokens method: delete operationId: deleteToken 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: /users/tokens method: get operationId: getTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/tokens method: post operationId: createToken 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: /capacities method: get operationId: listSliceCapacities x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/supported-locations method: get operationId: listSupportedLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/supported-providers method: get operationId: listSupportedProviders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ccr/tokens method: post operationId: createCcrToken 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: /compute/images method: get operationId: listImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /compute/images/{image_id} method: get operationId: getImage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /featureflags method: get operationId: getFeatureFlags x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/role-bindings method: get operationId: listRoleBindings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/roles method: get operationId: listRoles x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /iam/users/{user_id}/role-bindings method: post operationId: applyRoleBindings 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: /locations method: get operationId: listLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/entities method: get operationId: getOrganizations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/entities method: put operationId: updateOrganization 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: /organizations/projects method: get operationId: listProjects x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/projects method: post operationId: createProject 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: /organizations/projects method: put operationId: updateProject 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: /organizations/projects/{project_id} method: delete operationId: deleteProject 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: /organizations/projects/{project_id} method: get operationId: getProject x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations method: get operationId: listSCIMIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations method: post operationId: createSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id} method: delete operationId: deleteSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id} method: get operationId: getSCIMIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations/{integration_id} method: patch operationId: updateSCIMIntegration 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: /organizations/{org_id}/scim/integrations/{integration_id}/tokens method: get operationId: listSCIMIntegrationTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/scim/integrations/{integration_id}/tokens method: post operationId: createSCIMIntegrationToken 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: /organizations/{org_id}/scim/integrations/{integration_id}/tokens/{access_key_id} method: delete operationId: deleteSCIMIntegrationToken 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: /organizations/{org_id}/storage/s3/keys method: get operationId: listS3Keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{org_id}/storage/s3/keys method: post operationId: createS3Key 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: /organizations/{org_id}/storage/s3/keys/{access_key_id} method: delete operationId: deleteS3Key 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: /organizations/{org_id}/usage method: get operationId: getUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/audit-logs method: get operationId: getAuditLogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/costs method: get operationId: getBillingCosts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/export-productline method: get operationId: getBillingExportProductline x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/billing/options method: get operationId: getBillingOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/mfa method: get operationId: getMFA x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/mfa method: patch operationId: updateMFA 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: /organizations/{organization_id}/quotas method: get operationId: listOrgQuotas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations method: get operationId: getReservations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/gpu-tracking method: get operationId: getReservationsGPUTracking x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/gpu-tracking/latest method: get operationId: getLatestGPUTracking x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/reservations/{reservation_id} method: get operationId: getReservation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/sso/providers method: get operationId: listSSOProviders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/sso/providers method: post operationId: createSSOProvider 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: /organizations/{organization_id}/sso/providers/{provider_id} method: delete operationId: deleteSSOProvider 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: /organizations/{organization_id}/usage/export method: get operationId: getUsageExport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /organizations/{organization_id}/usage/options method: get operationId: getUsageOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories method: get operationId: listCcrRepositories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories method: post operationId: createCcrRepository 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/{project_id}/ccr/repositories/{repository_id} method: delete operationId: deleteCcrRepository 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/{project_id}/ccr/repositories/{repository_id} method: get operationId: getCcrRepository x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id} method: patch operationId: updateCcrRepositoryCredentials 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/{project_id}/ccr/repositories/{repository_id}/images method: delete operationId: deleteCcrImage 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/{project_id}/ccr/repositories/{repository_id}/images method: get operationId: listCcrImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id}/manifests method: delete operationId: deleteCcrManifest 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/{project_id}/ccr/repositories/{repository_id}/manifests method: get operationId: listCcrManifests x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/ccr/repositories/{repository_id}/usage method: get operationId: getCcrRepositoryUsage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images method: get operationId: listCustomImages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images method: post operationId: customImagePost 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/{project_id}/compute/custom-images/operations method: get operationId: listCustomImagesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/operations/{operation_id} method: get operationId: getCustomImagesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/{image_id} method: delete operationId: customImageDelete 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/{project_id}/compute/custom-images/{image_id} method: get operationId: getCustomImage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/custom-images/{image_id} method: patch operationId: customImagePatch 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/{project_id}/compute/custom-images/{image_id}/edit-tags method: patch operationId: customImageEditTags 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/{project_id}/compute/instance-groups method: get operationId: listInstanceGroups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-groups method: post operationId: createInstanceGroup 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/{project_id}/compute/instance-groups/{instance_group_id} method: delete operationId: deleteInstanceGroup 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/{project_id}/compute/instance-groups/{instance_group_id} method: get operationId: getInstanceGroup x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-groups/{instance_group_id} method: patch operationId: patchInstanceGroup 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/{project_id}/compute/instance-templates method: get operationId: listInstanceTemplates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/instance-templates method: post operationId: createInstanceTemplate 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/{project_id}/compute/instance-templates/{instance_template_id} method: delete operationId: deleteInstanceTemplate 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/{project_id}/compute/instance-templates/{instance_template_id} method: get operationId: getInstanceTemplate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/bulk-instances method: post operationId: bulkCreateInstance 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/{project_id}/compute/vms/instances method: get operationId: listInstances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances method: post operationId: createInstance 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/{project_id}/compute/vms/instances/operations method: get operationId: listComputeVMsInstancesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/operations/{operation_id} method: get operationId: getComputeVMsInstancesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/{vm_id} method: delete operationId: deleteInstance 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/{project_id}/compute/vms/instances/{vm_id} method: get operationId: getInstance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/compute/vms/instances/{vm_id} method: patch operationId: updateInstance 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/{project_id}/compute/vms/instances/{vm_id}/attach-disks method: post operationId: updateInstanceAttachDisks 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/{project_id}/compute/vms/instances/{vm_id}/detach-disks method: post operationId: updateInstanceDetachDisks 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/{project_id}/compute/vms/types method: get operationId: getVMTypes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials method: get operationId: listFoundryCredentials x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials method: post operationId: createFoundryCredential 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/{project_id}/foundry/credentials/{id} method: delete operationId: deleteFoundryCredential 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/{project_id}/foundry/credentials/{id} method: get operationId: getFoundryCredential x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/credentials/{id} method: patch operationId: updateFoundryCredential 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/{project_id}/foundry/deployed-models method: get operationId: listFoundryDeployedModels x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/activity method: get operationId: getFoundryDeployedModelsActivity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/progress method: get operationId: getFoundryDeployedModelsProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/progress/stream method: get operationId: streamFoundryDeployedModelsProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/deployed-models/rename method: post operationId: renameFoundryDeployedModel 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}/foundry/deployed-models/update method: post operationId: updateFoundryDeployedModel 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}/foundry/loras method: get operationId: listFoundryLoras x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/loras method: post operationId: createFoundryLora 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}/foundry/loras/{id} method: delete operationId: deleteFoundryLora 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}/foundry/loras/{id} method: get operationId: getFoundryLora x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments method: get operationId: listFoundryDeployments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments method: post operationId: createFoundryDeployment 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}/foundry/selfserve/deployments/{id} method: delete operationId: deleteFoundryDeployment 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}/foundry/selfserve/deployments/{id} method: get operationId: getFoundryDeployment x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id} method: patch operationId: updateFoundryDeployment 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}/foundry/selfserve/deployments/{id}/activity method: get operationId: getFoundryDeploymentActivity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id}/progress method: get operationId: getFoundryDeploymentProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/deployments/{id}/progress/stream method: get operationId: streamFoundryDeploymentProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/foundry/selfserve/flavors method: get operationId: listFoundryFlavors x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/autocluster-operations method: get operationId: listAutoClusterOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/autocluster-operations/{operation_id} method: get operationId: getAutoClusterOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters method: get operationId: listClusters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters method: post operationId: createCluster 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/{project_id}/kubernetes/clusters/operations method: get operationId: listKubernetesClustersOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/operations/{operation_id} method: get operationId: getKubernetesClustersOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id} method: delete operationId: deleteCluster 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/{project_id}/kubernetes/clusters/{cluster_id} method: get operationId: getCluster x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id} method: patch operationId: updateCluster 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/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config method: get operationId: getAutoClustersConfig x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config method: patch operationId: updateAutoClustersConfig 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/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate method: post operationId: remediateVM 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/{project_id}/kubernetes/clusters/{cluster_id}/get-credentials method: post operationId: getClusterCredentials 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/{project_id}/kubernetes/clusters/{cluster_id}/support/settings method: get operationId: getSupportSettings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/clusters/{cluster_id}/support/settings method: patch operationId: updateSupportSettings 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/{project_id}/kubernetes/nodepools method: get operationId: listNodePools x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools method: post operationId: createNodePool 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/{project_id}/kubernetes/nodepools/operations method: get operationId: listKubernetesNodePoolsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/operations/{operation_id} method: get operationId: getKubernetesNodePoolsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id} method: delete operationId: deleteNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id} method: get operationId: getNodePool x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id} method: patch operationId: updateNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate method: post operationId: cancelNodePoolRotate 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/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate method: get operationId: getNodePoolRotateStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate method: post operationId: rotateNodePool 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/{project_id}/kubernetes/nodepools/{node_pool_id}/vms method: get operationId: listKubernetesNodePoolVMs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/kubernetes/versions method: get operationId: listKubernetesVersions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/scrape method: get operationId: scrapeMetrics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries method: get operationId: queryTimeseriesSimplified x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/api/v1/query method: get operationId: queryTimeseries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/api/v1/query-range method: get operationId: queryTimeseriesRange x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/metrics/timeseries/query-parameters method: get operationId: queryTimeseriesWithParameters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-networks method: get operationId: listIBNetworks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-networks/{ib_network_id} method: get operationId: getIBNetwork x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-partitions method: get operationId: listIBPartitions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/ib-partitions method: post operationId: createIBPartition 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/{project_id}/networking/ib-partitions/{ib_partition_id} method: delete operationId: deleteIBPartition 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/{project_id}/networking/ib-partitions/{ib_partition_id} method: get operationId: getIBPartition x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers method: get operationId: listLoadBalancers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers method: post operationId: createLoadBalancer 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/{project_id}/networking/internal-load-balancers/operations method: get operationId: listNetworkingLoadBalancersOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/operations/{operation_id} method: get operationId: getNetworkingLoadBalancersOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: delete operationId: deleteLoadBalancer 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/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: get operationId: getLoadBalancer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/internal-load-balancers/{load_balancer_id} method: patch operationId: patchLoadBalancer 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/{project_id}/networking/load-balancers method: get operationId: listExternalLoadBalancers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers method: post operationId: createExternalLoadBalancer 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/{project_id}/networking/load-balancers/operations method: get operationId: listExternalLoadBalancerOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/operations/{operation_id} method: get operationId: getExternalLoadBalancerOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/{load_balancer_id} method: delete operationId: deleteExternalLoadBalancer 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/{project_id}/networking/load-balancers/{load_balancer_id} method: get operationId: getExternalLoadBalancer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/load-balancers/{load_balancer_id} method: patch operationId: updateExternalLoadBalancer 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/{project_id}/networking/nvlink-domains method: get operationId: listNvlinkDomains x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules method: get operationId: listVPCFirewallRules x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules method: post operationId: createVPCFirewallRule 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/{project_id}/networking/vpc-firewall-rules/operations method: get operationId: listNetworkingVPCFirewallRulesOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/operations/{operation_id} method: get operationId: getNetworkingVPCFirewallRulesOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: delete operationId: deleteVPCFirewallRule 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/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: get operationId: getVPCFirewallRule x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-firewall-rules/{vpc_firewall_rule_id} method: patch operationId: patchVPCFirewallRule 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/{project_id}/networking/vpc-networks method: get operationId: listVPCNetworks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks method: post operationId: createVPCNetwork 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/{project_id}/networking/vpc-networks/operations method: get operationId: listNetworkingVPCNetworksOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/operations/{operation_id} method: get operationId: getNetworkingVPCNetworksOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/{vpc_network_id} method: delete operationId: deleteVPCNetwork 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/{project_id}/networking/vpc-networks/{vpc_network_id} method: get operationId: getVPCNetwork x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-networks/{vpc_network_id} method: patch operationId: patchVPCNetwork 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/{project_id}/networking/vpc-subnets method: get operationId: listVPCSubnets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets method: post operationId: createVPCSubnet 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/{project_id}/networking/vpc-subnets/operations method: get operationId: listNetworkingVPCSubnetsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/operations/{operation_id} method: get operationId: getNetworkingVPCSubnetsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: delete operationId: deleteVPCSubnet 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/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: get operationId: getVPCSubnet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id} method: patch operationId: patchVPCSubnet 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/{project_id}/quotas method: get operationId: listProjectQuotas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters method: get operationId: listSlurmClusters x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters method: post operationId: createSlurmCluster 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/{project_id}/slurm/clusters/operations method: get operationId: listSlurmClusterOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters/operations/{operation_id} method: get operationId: getSlurmClusterOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/clusters/{slurm_cluster_id} method: delete operationId: deleteSlurmCluster 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/{project_id}/slurm/clusters/{slurm_cluster_id} method: get operationId: getSlurmCluster x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets method: get operationId: listSlurmNodesets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets method: post operationId: createSlurmNodeset 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/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations method: get operationId: listSlurmNodesetsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/operations/{operation_id} method: get operationId: getSlurmNodesetOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: delete operationId: deleteSlurmNodeset 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/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: get operationId: getSlurmNodeset x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/slurm/{slurm_cluster_id}/nodesets/{nodeset_id} method: patch operationId: updateSlurmNodeset 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/{project_id}/storage/disks method: get operationId: listDisks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks method: post operationId: createDisk 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/{project_id}/storage/disks/operations method: get operationId: listStorageDisksOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/operations/{operation_id} method: get operationId: getStorageDisksOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/{disk_id} method: delete operationId: deleteDisk 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/{project_id}/storage/disks/{disk_id} method: get operationId: getDisk x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/disks/{disk_id} method: patch operationId: resizeDisk 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/{project_id}/storage/s3/buckets method: get operationId: listS3Buckets x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets method: post operationId: createS3Bucket 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/{project_id}/storage/s3/buckets/count method: get operationId: getS3BucketsCount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/quota method: get operationId: getS3BucketsQuotaRequest x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/{bucket_name} method: delete operationId: deleteS3Bucket 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/{project_id}/storage/s3/buckets/{bucket_name} method: get operationId: getS3Bucket x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/s3/buckets/{bucket_name} method: patch operationId: updateS3BucketTags 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/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-object-lock method: post operationId: enableS3BucketObjectLock 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: /projects/{project_id}/storage/s3/buckets/{bucket_name}/actions/enable-versioning method: post operationId: enableS3BucketVersioning 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: /projects/{project_id}/storage/snapshots method: get operationId: listDiskSnapshots x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots method: post operationId: createDiskSnapshot 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/{project_id}/storage/snapshots/operations method: get operationId: listStorageSnapshotsOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/operations/{operation_id} method: get operationId: getStorageSnapshotsOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/{snapshot_id} method: delete operationId: deleteDiskSnapshot 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/{project_id}/storage/snapshots/{snapshot_id} method: get operationId: getDiskSnapshot x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{project_id}/storage/snapshots/{snapshot_id} method: patch operationId: renameDiskSnapshot 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: /storage/object-storage/supported-locations method: get operationId: listS3SupportedLocations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/identities method: get operationId: getUserIdentity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/identities method: put operationId: updateUserIdentity 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: /users/limited-usage-api-key method: delete operationId: deleteLimitedUsageAPIKey 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: /users/limited-usage-api-key method: get operationId: getLimitedUsageAPIKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/limited-usage-api-key method: post operationId: createLimitedUsageAPIKey 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: /users/ssh-keys method: delete operationId: deleteSSHKey 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: /users/ssh-keys method: get operationId: getSSHKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/ssh-keys method: post operationId: createSSHKey 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: /users/sso-enforcement method: patch operationId: updateUserSSOEnforcement 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: /users/tokens method: delete operationId: deleteToken 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: /users/tokens method: get operationId: getTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/tokens method: post operationId: createToken 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