canonical: https://jentic.com/apis/googleapis.com/runtimeconfig

# Google Cloud Runtime Configuration API

The Cloud Runtime Configuration API exposes the Runtime Configurator, which lets services dynamically configure and share variables across Google Cloud workloads. It supports configs as containers, variables as named values, and waiters that block until a condition over those variables is met or a timeout elapses. The API also provides a watch endpoint that returns when a single variable changes, plus IAM endpoints to control who can read or update each config.

## For AI agents

Read and write dynamic configuration variables on Google Cloud, watch them for changes, and coordinate startup with waiters that resolve when conditions are met.

## Scope

Does not store secrets, manage Compute Engine metadata, or trigger workflow execution - use for sharing dynamic runtime configuration values, watchers, and waiters only.

## Capabilities

- Create and delete configs that group related runtime variables
- Set, get, list, and delete named variables inside a config
- Watch a single variable so the call returns when its value changes or a timeout elapses
- Define waiters that block until a count condition over variables is satisfied or fails
- Bind IAM policies on configs to control who can read or update runtime variables
- Test IAM permissions on a config before attempting a privileged change

## Use cases

### Coordinated startup of distributed services

A startup agent uses a waiter that blocks until N expected service variables are written, ensuring downstream services only begin after their dependencies have registered. The Runtime Configurator handles the timeout and success or failure semantics, so the orchestrator does not need to poll variables itself.

Example prompt: POST /v1beta1/{+parent}/waiters with success.cardinality.number=5 and a 10-minute timeout, then poll the waiter until done.

### Feature flag rollout

A release agent stores feature flags as runtime variables. Services watch each variable through the watch endpoint and react when the agent sets the value to enabled or disabled. The watch call returns as soon as the value changes, providing near-real-time flag propagation without polling.

Example prompt: Have services call POST /v1beta1/{+name}:watch on feature/checkout-flow; the agent issues PUT /v1beta1/{+name} to flip the value when ready.

### IAM-scoped config access for multi-team projects

A platform team partitions runtime variables by config and binds IAM principals per config so each team only reads and writes its own. setIamPolicy and getIamPolicy on each config govern those grants, and testIamPermissions lets agents check rights before attempting privileged operations.

Example prompt: POST /v1beta1/{+resource}:setIamPolicy on each config with the team's group bound to roles/runtimeconfig.admin.

### Agent-driven runtime flags through Jentic

An AI agent built on Jentic flips runtime configuration values on behalf of operators. It searches for the variable update operation by intent, loads the schema, executes the change, and reports back. OAuth tokens stay isolated in your Jentic One instance so raw secrets never enter agent context.

Example prompt: Search Jentic for 'set runtime configurator variable', load the PUT variable schema, execute against projects/my-prod/configs/orders/variables/feature/checkout-flow with value=enabled.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1beta1/{+parent}/configs | Create a config |
| POST | /v1beta1/{+parent}/variables | Create a variable inside a config |
| GET | /v1beta1/{+name} | Get a config, variable, or waiter |
| PUT | /v1beta1/{+name} | Update a variable value |
| DELETE | /v1beta1/{+name} | Delete a config, variable, or waiter |
| POST | /v1beta1/{+name}:watch | Watch a variable for changes |
| POST | /v1beta1/{+parent}/waiters | Create a waiter |
| POST | /v1beta1/{+resource}:setIamPolicy | Set the IAM policy on a config |

## Key resources

- **Configs** — Containers that group related variables and waiters.
- **Variables** — Named values that can be created, read, updated, watched, and deleted.
- **Waiters** — Long-poll resources that resolve when a count condition over variables is satisfied or a timeout elapses.
- **IAM Policy** — Per-config IAM bindings that govern read and write access to variables.

## Why Jentic

- **Setup:** Wiring the Cloud Runtime Configuration API by hand means configuring Google OAuth 2.0, refreshing scoped access tokens, and threading config, variable, and waiter resource names through the v1beta1 endpoints on runtimeconfig.googleapis.com. Through Jentic you install once, import the Cloud Runtime Configuration API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** This API puts the config and variable in the URL path (/v1beta1/{+name} and /v1beta1/{+parent}/variables), so a rule can pin your agent to one runtime config: it can read and watch variables there and nothing else. You choose the operations it may call, so state-changing ones like deleting a variable or setting an IAM policy are not included unless you add them.
- **Credential handling:** Your Google OAuth credential is stored once, encrypted, by your own Jentic One instance and a scoped access token is injected at execution time. The credential never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'set a runtime configurator variable' or 'watch a runtime variable', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without reading the discovery document.

## Related APIs

- **Cloud KMS API** — Stores secrets and keys when configuration values are sensitive.
- **Cloud Monitoring API** — Pairs runtime variable changes with metrics about what happened next.
- **Cloud Logging API** — Captures audit logs of variable updates for traceability.
- **Cloud IAM API** — Manages the principals that the Runtime Configurator IAM policies reference.

## FAQ

### What authentication does the Runtime Configuration API use?

It uses Google OAuth 2.0 with the cloud-platform or cloudruntimeconfig scopes, declared as Oauth2 and Oauth2c. Through Jentic, OAuth tokens are stored encrypted in the vault and exchanged for short-lived access tokens at execution time so raw refresh tokens never reach the agent.

### Can I watch a runtime variable for changes through the API?

Yes. POST /v1beta1/{+name}:watch performs a long-poll request that returns as soon as the named variable changes value or a server-side timeout elapses. This avoids client-side polling and gives near-real-time propagation of feature flags and rollout signals.

### What are the rate limits for the Runtime Configuration API?

Google Cloud applies per-project read and write quotas to the Runtime Configurator, with watch and waiter calls counted against a separate concurrent-long-poll quota. The default per-minute quota is 600 read requests per project, raisable through the Cloud Console for sustained usage.

### How do I create a waiter through Jentic?

Search Jentic for 'create runtime configurator waiter', load the schema for POST /v1beta1/{+parent}/waiters, and execute with the cardinality success condition and timeout you need. Jentic returns the waiter resource, which the agent polls until status reports done.

### Is the Runtime Configuration API free?

The API is free to call within Google Cloud quotas, and stored variables and waiters incur no per-byte charge inside published limits. Costs scale only with very large variable bodies above the per-config size limits.

### How do I scope variable access to one team only?

Place each team's variables in its own config and bind a team-specific IAM principal to the config with POST /v1beta1/{+resource}:setIamPolicy at the role roles/runtimeconfig.admin or .viewer. Other principals can be denied entirely at the config level rather than on each variable.

### Can I limit what my agent is allowed to do with the Cloud Runtime Configuration API?

Yes. Because this API carries the config and variable in the URL path (/v1beta1/{+name} and /v1beta1/{+parent}/variables), your self-hosted Jentic One instance lets you write a rule that pins the agent to a single runtime config so it can only read and watch variables there. You decide which operations the agent may call, so state-changing ones like deleting a variable (DELETE /v1beta1/{+name}) or setting an IAM policy (POST /v1beta1/{+resource}:setIamPolicy) are excluded unless you explicitly add them. The Google OAuth credential stays in your own instance, and a scoped token is injected only for the operations you allow.
