def update(slug, patch = nil, timeout: nil, **fields)def update: (
String slug,
?(product_patch | Hash[Symbol | String, untyped])? patch,
?timeout: seconds?,
**untyped
) -> product_resourcePartial update: only the keys present in the patch are touched. A new slug is validated against the whole workspace rather than against the product being renamed, so any collision is reported as a conflict.
Flipping isPrivate to true also records a grant for the key owner, so an integration cannot lock itself out in one call. Flipping it back to false leaves every stored grant in place, and those grants start applying again the moment the product is made private.
A product beyond the plan allowance refuses every patch, including a rename. Delete something or upgrade the plan to get back under the cap.
Example
require "envless/sdk"
product = Envless.products.update("billing", isPrivate: true)
puts "#{product[:isPrivate]} #{product[:updatedAt]}"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | String | Yes | Product slug, or the product uniqueId when the value is UUID shaped. |
patch | product_patch | No | The fields below as one Hash, with Symbol or String keys, in place of the keywords. |
name: | String | No | New display name. |
slug: | String | No | New slug, unique across the workspace. |
isPrivate: | bool | No | Switches grant enforcement on or off for the product. |
timeout: | Integer | Float | Rational | No | Seconds each attempt of this call may take, redirects and the response body included, before it raises Envless::NetworkError with timeout? set. Overrides the client's timeout for this call, and 0 turns the limit off. |
Returns
product_resource reflecting the patched product.
Worth knowing
- An
iconkey of any value, includingnil, is rejected before the product is resolved, so an unknown slug plusiconreports the body error and not a missing product.
Required scopes
products:write
Underlying endpoint
PATCH /products/{slug}
Request and response schema, every error code, and a live playground.
In TypeScript
envless.products.update()
The same method in @goenvless/sdk, with the same request, retries and errors.