Environments provide isolated execution contexts for running agent code, tools, and services securely.
CreateEnvironment
Creates an environment.
Request body
The request body contains data with the following structure:
Optional. The source environment to copy/fork from. Format: `environments/{environment_id}` or `{environment_id}`. When specified, `sources` and `env` must be empty.
network EnvironmentNetworkEgressAllowlist or enum (string) (optional)
Network configuration for the environment.
Possible Types
object
Outbound networking configuration for the sandbox. When specified, restricts which external domains the sandbox can reach. Omit entirely to allow all outbound traffic with no header injection.
allowlist array (AllowlistEntry) (optional)
List of allowed outbound domains. Only requests to listed domains are permitted. Use [{'domain': '*'}] to allow all domains while still injecting headers on specific ones.
Fields
Optional. Reference to a server-managed Credential resource by ID.
Domain to allow outbound requests to. Supports wildcards (e.g. '*.googleapis.com'). Use '*' to allow all domains.
Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.
string
Turns all network off.
Possible values
-
disabledTurns all network off.
sources array (Source) (optional)
Sources to be mounted into the environment.
Fields
The inline content if `type` is `INLINE`.
Optional encoding for inline content (e.g. `base64`).
The source of the environment. For Cloud Storage, this is the Cloud Storage path. For GitHub, this is the GitHub path.
Where the source should appear in the environment.
No description provided.
Possible values:
-
gcsA Cloud Storage bucket.
-
inlineInline content.
-
repositoryA generic repository. The protocol prefix in the source URL identifies the provider (e.g., github://, gcs://).
Response
If successful, the response body contains data with the following structure:
Output only. The time at which the environment was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
Output only. The number of files in the environment, output only.
Required. Output only. The ID of the environment.
Output only. The time at which the environment was last accessed in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
network EnvironmentNetworkEgressAllowlist or enum (string) (optional)
Network configuration for the environment.
Possible Types
object
Outbound networking configuration for the sandbox. When specified, restricts which external domains the sandbox can reach. Omit entirely to allow all outbound traffic with no header injection.
allowlist array (AllowlistEntry) (optional)
List of allowed outbound domains. Only requests to listed domains are permitted. Use [{'domain': '*'}] to allow all domains while still injecting headers on specific ones.
Fields
Optional. Reference to a server-managed Credential resource by ID.
Domain to allow outbound requests to. Supports wildcards (e.g. '*.googleapis.com'). Use '*' to allow all domains.
Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.
string
Turns all network off.
Possible values
-
disabledTurns all network off.
Output only. The total size of the environment files in bytes, output only.
sources array (Source) (optional)
Sources to be mounted into the environment.
Fields
The inline content if `type` is `INLINE`.
Optional encoding for inline content (e.g. `base64`).
The source of the environment. For Cloud Storage, this is the Cloud Storage path. For GitHub, this is the GitHub path.