Environments

$envless->environments->update()

Rename an environment or change its slug

php
/**
 * @param EnvironmentPatch $patch
 * @return EnvironmentResource
 */
public function update(
    string $project,
    string $environment,
    array $patch,
    ?string $product = null,
    int|float|null $timeout = null,
): array

Partially updates the name, the slug or both, addressed by the environment current slug. Unlike create, the new slug is validated as-is rather than slugified, so an uppercase or spaced value returns 400 instead of being cleaned up for you.

This route returns the updated environment with the same fields get returns, exposed and updatedAt included. exposed is read-only here: putting it in the patch is silently ignored, so use expose and unexpose for that. Changing the slug changes the address every later call has to use.

Example

php
use Envless\Envless;

$envless = new Envless();

$environment = $envless->environments->update('api', 'production', [
    'name' => 'Production EU',
]);

echo "{$environment['slug']} {$environment['updatedAt']}", PHP_EOL;

Parameters

ParameterTypeRequiredDescription
$projectstringYesProject slug or uniqueId that owns the environment.
$environmentstringYesCurrent environment slug; ids are not accepted.
$patchEnvironmentPatchYesThe fields below, as one array.
$patch['name']stringNoNew display name, 2 to 50 characters.
$patch['slug']stringNoNew lowercase hyphenated slug, validated as-is and unique within the project.
$productstringNoProduct slug that disambiguates an ambiguous project slug.
$timeoutint|floatNoSeconds each attempt of this call may take, the response body included, before it throws Envless\Exception\NetworkException with isTimeout() true. Overrides the client's timeout for this call, and 0 turns the limit off.

Returns

EnvironmentResource reflecting the stored values, including exposed and updatedAt.

Worth knowing

  • A slug another environment in the project already owns fails with environment.slug_conflict.

Required scopes

environments:write

Underlying endpoint

PATCH /projects/{slug}/environments/{environmentSlug}

Request and response schema, every error code, and a live playground.

In TypeScript

envless.environments.update()

The same method in @goenvless/sdk, with the same request, retries and errors.