This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern
Before you enable this package
Keep the registered Google API hosts and bind PROJECT_ID and PARENT_RESOURCE. The Vertex AI paths also need ENDPOINT_ID, PUBLISHER and MODEL, and the regional host and location must match. Model Garden enablement is not included because Google publishes no API for it.
Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.
Capabilities (13)
Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/gcp.json and embeds a copy in the release binary.
Versions. This package is version 1.1.0. Its capabilities carry their own version numbers: 4 at version 1.0.0, 9 at version 1.1.0, as shown on each capability below.
Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.
On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.
Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.
gcp.projects.list v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://cloudresourcemanager.googleapis.com/v3/projects?parent=PARENT_RESOURCE- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-service-account-token- Data class
- internal
List projects.
List the projects that are direct children of the named parent (folders/FOLDER_ID or organizations/ORG_ID): project ids, numbers, display names, states and labels — the estate inventory. Google documents this as a strongly consistent view requiring resourcemanager.projects.list on the parent. PARENT_RESOURCE is a placeholder the deployment binds before enabling; pagination is the documented pageToken loop. The registered path covers the collection read only.
gcp.projects.get v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_ID- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-service-account-token- Data class
- internal
Get projects.
Retrieve one project by id or number (the documented GET /v3/{name=projects/*}): its display name, state, labels, parent and create time. This is the registered record read of the collection listed by gcp.projects.list. PROJECT_ID is a placeholder the deployment binds to a concrete project before enabling.
gcp.projects.iam-policy.get v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
POST https://cloudresourcemanager.googleapis.com/v3/projects/PROJECT_ID:getIamPolicy- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-service-account-token- Data class
- pii
Read project IAM policies.
Return the IAM access control policy for one project (the documented POST /v3/{resource=projects/*}:getIamPolicy). This is a POST-shaped read and is described as one: the method is a gRPC-transcoding custom action whose body carries only an optional GetPolicyOptions object, and the response is the Policy (bindings of members to roles, with any conditions) — nothing is created or changed at the provider, so the declared action is read at the minimum R0 tier.
The policy reveals which principals hold which roles on the project — security configuration that includes human principals' email addresses, hence the pii class — and the exact input a setIamPolicy write (not registered by this pack) would replace. PROJECT_ID is a placeholder the deployment binds to a concrete project before enabling.
gcp.billing.accounts.list v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://cloudbilling.googleapis.com/v1/billingAccounts- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-service-account-token- Data class
- financial
List billing accounts.
List the Cloud Billing accounts the credential has permission to view: account ids, display names, open/closed state and master accounts — billing-structure data. This is financial data at the read floor — a lower bound: an R0 financial read can still be a serious confidentiality risk. The registered path covers the collection read only — single-account reads and per-project billing info (projects/{id}/billingInfo) are not registered by this pack.
gcp.vertex.endpoints.list v1.1.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
List vertex endpoints.
List the Vertex AI endpoints in one project and location (projects.locations.endpoints.list), with their deployed models, traffic split and machine settings.
gcp.vertex.endpoint.get v1.1.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Get vertex endpoint.
Read one Vertex AI endpoint (projects.locations.endpoints.get). ENDPOINT_ID is a placeholder.
gcp.vertex.endpoint.create v1.1.0R2
- Kind
- tool
- Action
- create
- Endpoint
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Create vertex endpoint.
Create an empty Vertex AI endpoint (projects.locations.endpoints.create). The call returns a long-running operation. Deploying a model to the endpoint is the separate deploy-model capability.
gcp.vertex.endpoint.deploy-model v1.1.0R3
- Kind
- tool
- Actions
- create, pay
- Endpoint
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID:deployModel- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- financial
Deploy-model vertex endpoint.
Deploy a model to an endpoint (projects.locations.endpoints.deployModel), creating a DeployedModel on the machines the request body names. Google bills each deployed model by node hour even when it serves no predictions, until it is undeployed, so the capability declares pay at R3. The machine type and replica counts come from the request body. ENDPOINT_ID is a placeholder.
gcp.vertex.endpoint.undeploy-model v1.1.0R3
- Kind
- tool
- Action
- delete
- Endpoint
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID:undeployModel- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Undeploy-model vertex endpoint.
Undeploy a model from an endpoint (projects.locations.endpoints.undeployModel), removing the DeployedModel and freeing its resources. Predictions sent to it fail afterwards. ENDPOINT_ID is a placeholder.
gcp.vertex.endpoint.delete v1.1.0R3
- Kind
- tool
- Action
- delete
- Endpoint
DELETE https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Delete vertex endpoint.
Delete a Vertex AI endpoint (projects.locations.endpoints.delete). Google allows this only after every model has been undeployed from it. ENDPOINT_ID is a placeholder.
gcp.vertex.publisher-model.get v1.1.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://aiplatform.googleapis.com/v1/publishers/PUBLISHER/models/MODEL- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Get vertex publisher model.
Read one Model Garden publisher model (publishers.models.get), for example PUBLISHER google or anthropic, from the global Vertex AI host. This reads the catalog entry; it does not enable the model. PUBLISHER and MODEL are placeholders.
gcp.quotas.aiplatform.quota-infos.list v1.1.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://cloudquotas.googleapis.com/v1/projects/PROJECT_ID/locations/global/services/aiplatform.googleapis.com/quotaInfos- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
List quotas aiplatform quota infos.
List the project's Vertex AI quotas through the Cloud Quotas API (quotaInfos.list for service aiplatform.googleapis.com): each quota's dimensions, current limits and whether it can be adjusted.
gcp.quotas.quota-preference.create v1.1.0R2
- Kind
- tool
- Action
- create
- Endpoint
POST https://cloudquotas.googleapis.com/v1/projects/PROJECT_ID/locations/global/quotaPreferences- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-gcp-vertex-admin-token- Data class
- internal
Create quotas quota preference.
Ask for a new quota value (quotaPreferences.create): the body names the service, quota id, dimensions and preferred value. Google may grant an increase without further review, which raises how much the project can spend, so policy should raise this tier where quotas cap cost.
Credential reference
The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.
- Reference
secret-ref-gcp-service-account-token- Custody
- customer_vault
- Injection
- header (Authorization)
Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.
Complete credential requirements
Store an OAuth 2.0 access token for a dedicated, minimally privileged Google Cloud service account in the client's secret manager. The stored value is the complete Authorization header: 'Bearer <token>'. customer_vault is the supported production custody model; identity_federation and customer_broker are refused at startup, and inline is lab-only.
Token issuance runs outside the executor. An external process holds the service account's RSA private key and signs an RS256 JWT with these fields: iss is the service-account email; scope is https://www.googleapis.com/auth/cloud-platform.read-only plus https://www.googleapis.com/auth/cloud-billing.readonly; aud is https://oauth2.googleapis.com/token; iat and exp bound the assertion to at most one hour. billingAccounts.list accepts cloud-platform, cloud-billing, and cloud-billing.readonly scopes; cloud-platform.read-only alone does not authorize that operation.
The process sends the assertion to https://oauth2.googleapis.com/token using grant_type urn:ietf:params:oauth:grant-type:jwt-bearer and stores the returned token as the complete header value. The documented response has expires_in 3600. Renew before expiry by repeating the grant; the executor injects the stored value unchanged and performs no token lifecycle.
Disabling or deleting the service-account key or account blocks future token minting. Google documents invalid_grant on JWT exchanges when the signing key is deleted, disabled, or expired. This does not revoke an issued access token: it remains valid until expiry, with no documented per-token revocation. Treat its 3600-second lifetime as the exposure window.
Grant roles/browser, or a custom role containing exactly resourcemanager.projects.get, resourcemanager.projects.list, and resourcemanager.projects.getIamPolicy, at the reviewed parent. Add billing.viewer only on billing accounts in scope; grant nothing broader.
Keep the value only in executor memory for a call, never in logs, traces, diagnostics, or crash dumps. Do not enable the pack if the deployment cannot meet those requirements.
Resources
gcp-projects(api, pii):https://cloudresourcemanager.googleapis.com/v3/projectsgcp-billing-accounts(api, financial):https://cloudbilling.googleapis.com/v1/billingAccountsgcp-vertex-endpoints(api, financial):https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointsgcp-vertex-model-garden(api, internal):https://aiplatform.googleapis.com/v1/publishersgcp-aiplatform-quotas(api, internal):https://cloudquotas.googleapis.com/v1/projects/PROJECT_ID/locations/global/services/aiplatform.googleapis.com
Technical package and review record
Complete provider requirements and exclusions
Every endpoint here is on shared Google API hosts — cloudresourcemanager.googleapis.com and cloudbilling.googleapis.com — which stay real: they are the documented authorities for these APIs, not tenant placeholders. PROJECT_ID and PARENT_RESOURCE are placeholders the deployment binds before enabling: PARENT_RESOURCE takes the documented form folders/FOLDER_ID or organizations/ORG_ID (projects.list lists direct children of the named parent, and the caller needs resourcemanager.projects.list on that parent), PROJECT_ID a concrete project id or number.
The token-minting host oauth2.googleapis.com is likewise a real shared host, but minting is the external process's call, not a capability: the executor injects the minted value and never calls the token endpoint itself, so no capability allowlists it.
Approval classification: all four capabilities sit at R0, the read floor. projects.getIamPolicy is a POST by HTTP shape (a gRPC-transcoding custom action with a body carrying only GetPolicyOptions) but a read by effect — it returns the IAM policy bound to the project and changes nothing; it is registered as read with the POST shape stated plainly in the description.
The returned policy reveals which principals hold which roles on the project — security configuration that includes human principals' email addresses, so it registers at the pii class — and the exact input a later setIamPolicy (not registered) would rewrite.
Billing account list is financial at the read floor — a lower bound: an R0 financial read can still be a serious confidentiality risk.
Documented exclusions: this pack does not register projects create/delete/undelete/patch/move, setIamPolicy on any resource, testIamPermissions, organizations or folders listing (projects.list with an organization parent covers the projects directly parented by the organization — projects beneath folders are not returned — and the organizations.search and folders.list methods are not registered), billing account updates (projects.updateBillingInfo, which links or unlinks billing and is a money-relevant write), or the Cloud Billing Budgets and Cloud Asset Inventory APIs.
The two list reads describe collection reads only; projects.get is a record read and is registered as one.
Vertex AI administration (added in 1.1.0): nine capabilities cover Vertex AI endpoints (list, get, create, deploy a model, undeploy a model, delete), one Model Garden catalog read, and Vertex AI quotas through the Cloud Quotas API (list quotas, request a new value). The endpoint capabilities use the regional host us-central1-aiplatform.googleapis.com with locations/us-central1 in the path. For another region, substitute both the host and the location, and the egress allowlist with them. PROJECT_ID, ENDPOINT_ID, PUBLISHER and MODEL are placeholders. The Model Garden read uses the global host aiplatform.googleapis.com and the quota capabilities cloudquotas.googleapis.com with locations/global.
These nine capabilities name a separate reference, secret-ref-gcp-vertex-admin-token. Google's discovery documents list only the aiplatform or cloud-platform scopes for the Vertex AI methods, and only cloud-platform for Cloud Quotas, so the read-only token above cannot call them. Mint the admin token for a second service account by the same JWT process, with scope https://www.googleapis.com/auth/cloud-platform, and limit that account with IAM to the aiplatform.endpoints.* and cloudquotas.quotas.* permissions the enabled capabilities need.
Tiers sit at the floor of the declared actions. Deploying a model declares pay because deployed models bill by node hour until undeployed. Undeploying and deleting are R3. A quota request is R2 by the action floor. Model Garden enablement is not registered: Google documents enabling a partner model as a Console step that needs the Consumer Procurement Entitlement Manager role and the Cloud Commerce Consumer Procurement API, and the retrieved references publish no REST operation for it that this review could check. Every other method of the Vertex AI and Cloud Quotas APIs is excluded, among them the prediction and generateContent calls, endpoints.patch, endpoints.update and mutateDeployedModel, model upload, the Model Garden deploy method, tuning and batch prediction jobs, quotaInfos.get, quotaPreferences get, list and patch, and the quota adjuster settings.
Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.
The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.
Review block
This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.
Review completed: 2026-10-22
13 sources, retrieved 2026-09-21, 2026-10-22
- https://docs.cloud.google.com/resource-manager/reference/rest/v3/projects/list (retrieved 2026-09-21)
- https://docs.cloud.google.com/resource-manager/reference/rest/v3/projects/get (retrieved 2026-09-21)
- https://docs.cloud.google.com/resource-manager/reference/rest/v3/projects/getIamPolicy (retrieved 2026-09-21)
- https://cloud.google.com/billing/docs/reference/rest/v1/billingAccounts/list (retrieved 2026-09-21)
- https://developers.google.com/identity/protocols/oauth2/service-account (retrieved 2026-09-21)
- https://docs.cloud.google.com/vertex-ai/docs/reference/rest (retrieved 2026-10-22)
- https://aiplatform.googleapis.com/$discovery/rest?version=v1 (retrieved 2026-10-22)
- https://cloud.google.com/vertex-ai/pricing (retrieved 2026-10-22)
- https://docs.cloud.google.com/vertex-ai/docs/predictions/undeploy-model (retrieved 2026-10-22)
- https://docs.cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models (retrieved 2026-10-22)
- https://docs.cloud.google.com/docs/quotas/reference/rest/v1/projects.locations.services.quotaInfos/list (retrieved 2026-10-22)
- https://docs.cloud.google.com/docs/quotas/reference/rest/v1/projects.locations.quotaPreferences/create (retrieved 2026-10-22)
- https://cloudquotas.googleapis.com/$discovery/rest?version=v1 (retrieved 2026-10-22)
Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.
Release identity
SHA-256 of the pack file bytes: a7121577225712a5d2adfb03b5b0f51b23ccfec0fb8db89439928be71c75946d
Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.