Projects

$envless->projects->update()

Rename a project or change its slug

php
/**
 * @param ProjectPatch $patch
 * @return ProjectResource
 */
public function update(
    string $slug,
    array $patch,
    ?string $product = null,
    int|float|null $timeout = null,
): array

Partial update of name and slug. Send only the fields you want changed. Uniqueness for a new slug is checked inside the project own product, and product: may still be needed just to resolve which project you meant.

The new slug is validated as sent rather than slugified, so it must already match ^[a-z0-9]+(?:-[a-z0-9]+)*$ or you get 400. There is no product field in the patch: projects cannot be moved between products over the API, and icons are not settable here either.

Example

php
use Envless\Envless;

$envless = new Envless();

$project = $envless->projects->update('api', [
    'name' => 'API Gateway',
    'slug' => 'api-gateway',
], product: 'billing');

echo $project['slug'], PHP_EOL;

Parameters

ParameterTypeRequiredDescription
$slugstringYesCurrent project slug, or the project uniqueId.
$patchProjectPatchYesThe fields below, as one array.
$patch['name']stringNoNew project name.
$patch['slug']stringNoNew slug, which must already be in valid slug form.
$productstringNoProduct slug used to disambiguate 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

ProjectResource reflecting the stored record after the patch.

Worth knowing

  • A 409 project.slug_conflict means another project in the same product already owns the new slug.
  • A missing or ambiguous project carries project.not_found or project.ambiguous_product, but the update itself answers 400, 404 and 409 with the generic request.invalid, request.not_found and request.conflict, so read message for the reason.

Required scopes

projects:write

Underlying endpoint

PATCH /projects/{slug}

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

In TypeScript

envless.projects.update()

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