1. Docs
  2. Reference
  3. REST API Docs
  4. Environments

Environments

    Pulumi ESC (Environments, Secrets, and Configuration) provides a centralized way to manage infrastructure configuration. The Environments API allows you to create, manage, and use environments for your Pulumi deployments.

    See Pulumi ESC for conceptual documentation and getting-started guides.

    List Environments

    GET /api/esc/environments

    Returns a paginated list of all Pulumi ESC environments accessible to the authenticated user across all organizations they belong to. Each entry includes the organization, project, environment name, and creation/modification timestamps. Use the organization query parameter to filter results to a specific organization. Use continuationToken for pagination through large result sets.

    Request Parameters

    • continuationToken string query optional
      Continuation token for paginated results
    • includeReferrerMetadata boolean query optional
      Whether to include referrer metadata. Defaults to false.
    • maxResults integer query optional
      Maximum number of results for pagination
    • organization string query optional
      Filter results to this organization name

    Responses

    200 OK
    • environments array[OrgEnvironment] required
      The list of environments
    • id string required
      The unique identifier of the environment.
    • organization string required
      The login name of the organization that owns this environment.
    • project string optional
      The project name that contains this environment, if project-scoped.
    • name string required
      The name of the environment.
    • created string required
      The ISO 8601 timestamp when the environment was created.
    • modified string required
      The ISO 8601 timestamp when the environment was last modified.
    • ownedBy UserInfo required
      The user with ownership of this environment
    • tags map[string]string required
      User-defined key-value tags associated with the environment for organization and filtering.
    • deletedAt string optional
      The ISO 8601 timestamp when the environment was soft-deleted, or null if not deleted.
    • links EnvironmentLinks optional
      Hypermedia links related to the environment.
    • referrerMetadata EnvironmentReferrerMetadata required
      Metadata about what refers to this environment.
    • settings EnvironmentSettings required
      Configuration settings for the environment, such as deletion protection.
    • nextToken string optional
      Token for fetching the next page of results
    Errors: 400 Invalid continuation token

    List Org Environments

    GET /api/esc/environments/{orgName}

    Returns a paginated list of all Pulumi ESC environments within a specific organization. Each entry includes the project, environment name, and creation/modification timestamps. Results are scoped to the organization specified in the URL path. Use continuationToken for pagination through large result sets.

    Request Parameters

    • orgName string path required
      The organization name
    • continuationToken string query optional
      Continuation token for paginated results
    • includeReferrerMetadata boolean query optional
      Whether to include referrer metadata. Defaults to false.
    • maxResults integer query optional
      Maximum number of results for pagination
    • roleID string query optional
      The custom role to use for listing environments

    Responses

    200 OK
    • environments array[OrgEnvironment] required
      The list of environments
    • id string required
      The unique identifier of the environment.
    • organization string required
      The login name of the organization that owns this environment.
    • project string optional
      The project name that contains this environment, if project-scoped.
    • name string required
      The name of the environment.
    • created string required
      The ISO 8601 timestamp when the environment was created.
    • modified string required
      The ISO 8601 timestamp when the environment was last modified.
    • ownedBy UserInfo required
      The user with ownership of this environment
    • tags map[string]string required
      User-defined key-value tags associated with the environment for organization and filtering.
    • deletedAt string optional
      The ISO 8601 timestamp when the environment was soft-deleted, or null if not deleted.
    • links EnvironmentLinks optional
      Hypermedia links related to the environment.
    • referrerMetadata EnvironmentReferrerMetadata required
      Metadata about what refers to this environment.
    • settings EnvironmentSettings required
      Configuration settings for the environment, such as deletion protection.
    • nextToken string optional
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Create Environment

    POST /api/esc/environments/{orgName}

    Creates a new Pulumi ESC (Environments, Secrets, and Configuration) environment within the specified organization. The request body must include the project name and the environment name. Environment names must be unique within a project and may only contain alphanumeric characters, hyphens, underscores, and periods. The newly created environment starts with an empty YAML definition that can be updated via the UpdateEnvironment endpoint.

    Request Parameters

    • orgName string path required
      The organization name

    Request Body

    • project string required
      The project name for the environment.
    • name string required
      The name of the environment.

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Read Environment

    GET /api/esc/environments/{orgName}/{projectName}/{envName}

    Returns the YAML definition of a Pulumi ESC environment. The response is in application/x-yaml format and includes the environment’s imports, values, provider configurations, and function invocations. Secrets remain in their encrypted form (use DecryptEnvironment to see plaintext secrets, or OpenEnvironment to fully resolve all dynamic values). When a version path parameter is provided, returns the definition for that specific revision.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Update Environment

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}

    Validates and updates the YAML definition of a Pulumi ESC environment. The request body must contain the complete environment definition in application/x-yaml format, including imports, values, provider configurations, and function invocations. Each successful update creates a new immutable revision in the environment’s version history. Supports optimistic concurrency control via ETag/If-Match headers; returns 409 if the environment has been modified since it was last read.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      The list of diagnostics produced by the environment operation.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Delete Environment

    DELETE /api/esc/environments/{orgName}/{projectName}/{envName}

    Permanently deletes a Pulumi ESC environment and all of its revision history, tags, and associated configuration. This operation is blocked if deletion protection is enabled on the environment (see PatchEnvironmentSettings). Enterprise and Business Critical edition organizations may be able to restore deleted environments within a retention window. Returns 409 if the environment is deletion-protected or has been modified since it was last read.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read, or it's deletion-protected

    Head Environment

    HEAD /api/esc/environments/{orgName}/{projectName}/{envName}

    Returns the ETag header for a Pulumi ESC environment without returning the full definition body. This is used for lightweight existence checks and for obtaining the current ETag value for optimistic concurrency control. The ETag should be included in subsequent update requests via the If-Match header to prevent concurrent modification conflicts. Returns 404 if the environment does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/check

    Checks a Pulumi ESC environment definition for errors without applying changes. This validates the YAML definition including imports, provider configurations, function invocations (fn::open, fn::secret, etc.), and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. The response includes any diagnostics or validation errors found in the environment definition. Supports optimistic concurrency control via ETag headers.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      List of diagnostics
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      The environment function summary
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Clone Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/clone

    Creates a duplicate of a Pulumi ESC environment in a new project and/or under a new name. The request body specifies the destination project and environment name, along with options to control what is preserved during the clone: preserveAccess retains permission settings, preserveHistory retains the full revision history, preserveEnvironmentTags retains environment-level tags, and preserveRevisionTags retains version-specific tags. Environments cannot be renamed directly, so cloning is the mechanism for moving or renaming environments.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • project string optional
      Target project for the cloned environment. If omitted, uses the source project.
    • name string required
      Name for the newly cloned environment.
    • version integer optional
      Specific version of the source environment to clone. If omitted, clones the latest version.
    • preserveHistory boolean optional
      Whether to copy the revision history from the source environment.
    • preserveAccess boolean optional
      Whether to copy access control settings from the source environment.
    • preserveEnvironmentTags boolean optional
      Whether to copy environment-level tags from the source environment.
    • preserveRevisionTags boolean optional
      Whether to copy revision-level tags from the source environment.

    Responses

    204 No Content
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Decrypt Environment

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/decrypt

    Reads the YAML definition for a Pulumi ESC environment with all static secrets decrypted and shown in plaintext. Unlike the standard ReadEnvironment endpoint which returns secrets in their encrypted form, this endpoint resolves fn::secret values to their plaintext representations. The response is returned in application/x-yaml format. This does not resolve dynamic provider values (fn::open); use OpenEnvironment for full resolution. Requires environment open permission.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Decrypt Environment Secrets

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/decrypt-secrets

    Decrypts encrypted secret values in a Pulumi ESC environment definition. Takes an environment definition containing encrypted secrets and returns the same definition with those values decrypted to plaintext. This is useful for inspecting or migrating environment definitions that contain fn::secret values. Requires environment open permission. Returns 413 if the request content exceeds the maximum allowed size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • ciphertexts array[string] required
      The list of encrypted ciphertext values to decrypt.

    Responses

    200 OK
    • plaintexts array[string] required
      The list of decrypted plaintext values.
    Errors: 400 Invalid input 404 Organization or Environment not found 413 Request Content Too Large

    Create Environment Draft

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/drafts

    Creates a new draft change request for a Pulumi ESC environment. Drafts allow proposing changes to an environment definition that can be reviewed and approved before being applied. This is part of the approvals workflow for environments. Returns a ChangeRequestRef containing the draft identifier. Requires the Approvals feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    Errors: 400 Bad request 404 draft 409 the environment has changed since it was read

    Read Environment Draft

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}

    Reads the YAML definition for a draft version of a Pulumi ESC environment. Drafts are proposed changes created as part of the approvals workflow. The draft is identified by the changeRequestID path parameter. An optional revision query parameter can target a specific base revision. The response is returned in application/x-yaml format. Requires the Approvals feature to be enabled.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID
    • revision integer query optional
      The environment revision number to target

    Responses

    200 OK
    Errors: 400 Invalid input

    Update Environment Draft

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}

    Updates the YAML definition of an existing draft change request for a Pulumi ESC environment. The draft is identified by the changeRequestID path parameter. The request body contains the updated YAML definition. Returns a ChangeRequestRef on success. Requires the Approvals feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID

    Responses

    200 OK
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    Errors: 400 Bad request 404 draft 409 the environment has changed since it was read

    Open Environment Draft

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}/open

    Opens a draft version of a Pulumi ESC environment, fully resolving all dynamic values, provider integrations, and secrets for the proposed changes. The duration parameter specifies how long the open session remains valid using Go duration format (e.g., ‘2h’, ‘30m’). An optional revision parameter can target a specific base revision. Returns an OpenEnvironmentResponse containing the session ID for subsequent reads. Requires the Approvals feature.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)
    • revision integer query optional
      The environment revision number to target

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 Change Request 409 the environment has changed since it was read

    Encrypt Environment Secrets

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/encrypt-secrets

    Encrypts plaintext secret values in a Pulumi ESC environment definition. Takes an environment definition containing plaintext secrets and returns the same definition with those values encrypted using the environment’s encryption key. This is useful for preparing environment definitions that contain sensitive values before storing or updating them. Returns 413 if the request content exceeds the maximum allowed size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • plaintexts array[string] required
      The list of plaintext values to encrypt.

    Responses

    200 OK
    • ciphertexts array[string] required
      The encrypted values, in order of the plaintexts from the request.
    Errors: 400 Invalid input 404 Organization or Environment not found 413 Request Content Too Large

    List Webhooks

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/hooks

    Returns a list of all webhooks configured for a Pulumi ESC environment. Each webhook entry includes its name, destination URL, event filters, format, and active status. Webhooks enable external services to be notified of environment events such as updates and opens.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 successful operation

    Create Webhook

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/hooks

    Creates a new webhook for a Pulumi ESC environment. Webhooks allow external services to be notified when environment events occur, such as updates or opens. The request body specifies the webhook configuration including the destination URL, event filters, and format. Returns 400 if the organization name in the request body does not match the URL path parameter. Returns 409 if a webhook with the same name already exists.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    Schema: Webhook
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).

    Responses

    201 Created
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 400 Organization name from request body doesn't match URL. 409 Webhook already exists

    Get Webhook

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}

    Returns the configuration and status of a single webhook for a Pulumi ESC environment. The webhook is identified by its name in the URL path. The response includes the webhook’s destination URL, event filters, format, and active status. Returns 404 if the webhook does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 OK
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 404 Webhook

    Update Webhook

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}

    Updates the configuration of an existing webhook on a Pulumi ESC environment. The webhook is identified by its name in the URL path. The request body contains the updated webhook configuration including destination URL, event filters, format, and active status. Returns the updated WebhookResponse on success. Returns 400 if an invalid format is specified.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Request Body

    Schema: Webhook
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).

    Responses

    200 OK
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 400 'pulumi_deployments' format can only be used on stack or environment webhooks. 404 Webhook

    Delete Webhook

    DELETE /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}

    Deletes a webhook from a Pulumi ESC environment. The webhook is identified by its name in the URL path. After deletion, the external service will no longer receive notifications for environment events. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    204 No Content

    Get Webhook Deliveries

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}/deliveries

    Returns a list of recent delivery attempts for a specific webhook on a Pulumi ESC environment. Each delivery record includes the HTTP status code, response body, timestamp, and whether the delivery was successful. This is useful for debugging webhook integration issues and verifying that events are being received.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 successful operation

    Redeliver Webhook Event

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}/deliveries/{event}/redeliver

    Triggers the Pulumi Service to redeliver a specific event to a webhook on a Pulumi ESC environment. This is useful for resending events that the webhook endpoint failed to process on the initial delivery attempt (e.g., due to temporary downtime or errors). The event is identified by its delivery event ID in the URL path. Returns the new WebhookDelivery record for the redelivery.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name
    • event string path required
      The webhook delivery event ID to redeliver

    Responses

    200 OK
    • id string required
      The unique identifier of the delivery.
    • kind string required
      The kind of webhook event.
    • payload string required
      The JSON payload that was sent.
    • timestamp integer required
      The time the delivery was sent, as a Unix epoch timestamp.
    • duration integer required
      The duration of the delivery request in milliseconds.
    • requestUrl string required
      The URL the webhook was delivered to.
    • requestHeaders string required
      The HTTP headers sent with the request.
    • responseCode integer required
      The HTTP response status code.
    • responseHeaders string required
      The HTTP response headers.
    • responseBody string required
      The HTTP response body.
    Errors: 404 Webhook

    Ping Webhook

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/hooks/{hookName}/ping

    Sends a test ping event to a webhook on a Pulumi ESC environment to verify that the webhook endpoint is reachable and functioning correctly. This bypasses the normal message queue and issues the request directly to the webhook URL. Returns the WebhookDelivery record containing the HTTP status code and response from the target endpoint.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 OK
    • id string required
      The unique identifier of the delivery.
    • kind string required
      The kind of webhook event.
    • payload string required
      The JSON payload that was sent.
    • timestamp integer required
      The time the delivery was sent, as a Unix epoch timestamp.
    • duration integer required
      The duration of the delivery request in milliseconds.
    • requestUrl string required
      The URL the webhook was delivered to.
    • requestHeaders string required
      The HTTP headers sent with the request.
    • responseCode integer required
      The HTTP response status code.
    • responseHeaders string required
      The HTTP response headers.
    • responseBody string required
      The HTTP response body.
    Errors: 404 Organization or Environment not found

    Get Environment Metadata

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/metadata

    Returns metadata for a Pulumi ESC environment, including the calling user’s effective permission level (read, open, write, admin), creation and modification timestamps, the environment’s project, and other administrative information. This is useful for determining what actions the current user can perform on the environment before attempting those operations.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • id string required
      Environment metadata follows other Pulumi Cloud “Metadata” fields and contains read-only information about the environment
    • ownedBy UserInfo required
      The user with ownership of this environment
    • name string required
      The user’s display name.
    • githubLogin string required
      The user’s login name.
    • avatarUrl string required
      The URL of the user’s avatar image.
    • email string optional
      IMPORTANT: The email address of the user is only included on a few admin-only APIs. For nearly all APIs that return a UserInfo object, this will not be provided. considered sensitive information.
    • activeChangeRequest ChangeRequestRef optional
      ActiveChangeRequest contains information about any active change request for this environment. Will be nil if there is no active change request.
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    • gatedActions array[string] optional
      GatedActions indicates which actions on this environment require change request approval.
    • openRequestNeeded boolean optional
      OpenRequestNeeded indicates whether an open request is currently needed in order to open the environment.
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Open Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/open

    Opens a Pulumi ESC environment, fully resolving all dynamic values, provider integrations (fn::open), interpolation expressions, and secrets. This initiates an access session that evaluates the complete environment definition including all imports. The duration parameter specifies how long the session remains valid using Go duration format (e.g., ‘2h45m’, ‘300ms’). Returns an OpenEnvironmentResponse containing the session ID and any diagnostics. Use the session ID with ReadOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Read Open Environment

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/open/{openSessionID}

    Reads the fully resolved values from an open environment session that was created via the OpenEnvironment endpoint. The openSessionID path parameter must match a valid, non-expired session. The optional property query parameter accepts a dot-separated path to retrieve a specific nested value instead of the entire resolved environment (e.g., ‘aws.credentials.accessKeyId’). The response contains all resolved configuration values with secrets decrypted and provider-sourced values fully evaluated.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • openSessionID string path required
      The session ID returned from the open environment operation
    • property string query optional
      A dot-separated path to a specific property to retrieve from the environment

    Responses

    200 OK
    Errors: 400 invalid query parameter 404 path 409 the environment has changed since it was read

    Create Open Environment Request

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/open/request

    Creates an open request for a Pulumi ESC environment that has gated opens enabled. When an environment has open gates configured, opening the environment requires an approval workflow. This endpoint initiates that process by creating an open request, and also creates corresponding open requests for each imported environment that has open gates. Requires the Approvals feature to be enabled for the organization. Returns 400 if the environment does not have gated opens.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • grantExpirationSeconds integer required
      Time from application of the request until the resulting grant expires
    • accessDurationSeconds integer required
      Total duration that the resulting grant can be used to access the environment open endpoint (after first open)

    Responses

    200 OK
    • changeRequests array[CreateEnvironmentOpenRequestResult] required
      List of change requests
    • projectName string required
      The project name
    • environmentName string required
      The environment name
    • changeRequestId string required
      The change request identifier
    • latestRevisionNumber integer required
      The latest revision number
    • etag string required
      The entity tag for concurrency control
    Errors: 400 unable to create open request, please check whether opens are gated 404 open request 409 the environment has changed since it was read

    Read Open Environment Request

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/open/request/{changeRequestID}

    Reads the details of an open environment request that was created as part of the gated opens approval workflow. The request is identified by the changeRequestID path parameter. The response includes the request’s status, the requesting user, and approval details. An optional revision query parameter can target a specific environment revision. Requires the Approvals feature to be enabled.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID
    • revision integer query optional
      The environment revision number to target

    Responses

    200 OK
    • grantExpirationSeconds integer required
      Time from application of the request until the resulting grant expires
    • accessDurationSeconds integer required
      Total duration that the resulting grant can be used to access the environment open endpoint (after first open)
    Errors: 400 invalid query parameter 404 open request 409 the environment has changed since it was read

    Update Open Environment Request

    PUT /api/esc/environments/{orgName}/{projectName}/{envName}/open/request/{changeRequestID}

    Updates an existing open environment request that was created as part of the gated opens approval workflow. The request is identified by the changeRequestID path parameter. The request body contains the updated open request details, such as approval status. Returns a ChangeRequestRef on success. Requires the Approvals feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID

    Request Body

    • grantExpirationSeconds integer required
      Time from application of the request until the resulting grant expires
    • accessDurationSeconds integer required
      Total duration that the resulting grant can be used to access the environment open endpoint (after first open)

    Responses

    200 OK
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    Errors: 400 Bad request 404 open request 409 the environment has changed since it was read

    Reassign Environment Ownership

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/ownership

    Changes the ownership of the specified environment to the provided user. Returns the identity of the previous owner.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    Schema: UserInfo
    • name string required
      The user’s display name.
    • githubLogin string required
      The user’s login name.
    • avatarUrl string required
      The URL of the user’s avatar image.
    • email string optional
      IMPORTANT: The email address of the user is only included on a few admin-only APIs. For nearly all APIs that return a UserInfo object, this will not be provided. considered sensitive information.

    Responses

    200 OK
    Schema: UserInfo
    • name string required
      The user’s display name.
    • githubLogin string required
      The user’s login name.
    • avatarUrl string required
      The URL of the user’s avatar image.
    • email string optional
      IMPORTANT: The email address of the user is only included on a few admin-only APIs. For nearly all APIs that return a UserInfo object, this will not be provided. considered sensitive information.

    List Environment Referrers

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/referrers

    Returns a paginated list of entities that reference a Pulumi ESC environment, including other environments that import it and Pulumi stacks that use it in their configuration. The count parameter limits results (range 1-500). Set allRevisions to true to include references across all revisions, and latestStackVersionOnly to true to return only the latest stack version for each referring stack. Use continuationToken for pagination.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • allRevisions boolean query optional
      Whether to include all revisions
    • continuationToken string query optional
      Continuation token for paginated results
    • count integer query optional
      Maximum number of results to return
    • latestStackVersionOnly boolean query optional
      Whether to return only the latest stack version

    Responses

    200 OK
    • referrers map[string]array required
      Map of referrer types to their referrer details
    • continuationToken string optional
      Continuation token for pagination
    Errors: 400 count must be in the range [1, 500] 404 environment

    Rotate Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/rotate

    Triggers secret rotation for a Pulumi ESC environment. This evaluates all fn::rotate declarations in the environment definition and rotates the corresponding secrets in their external systems (e.g., rotating database passwords, API keys, or cloud credentials). Requires the secret rotation feature to be enabled for the organization. Returns 409 if the environment has been modified since it was last read.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • paths array[string] required
      The paths of the secrets to rotate.

    Responses

    200 OK
    • id string required
      The unique identifier for this rotation operation.
    • diagnostics array[EnvironmentDiagnostic] optional
      Diagnostics generated during the rotation operation.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • secretRotationEvent SecretRotationEvent required
      Details of the secret rotation event.
    • id string required
      The unique identifier for this rotation event.
    • environmentId string required
      The ID of the environment being rotated.
    • created string required
      The timestamp when this rotation event was created.
    • preRotationRevision integer required
      The environment revision before the rotation.
    • postRotationRevision integer optional
      The environment revision after the rotation, if completed.
    • userID string required
      The ID of the user who initiated the rotation.
    • completed string optional
      The timestamp when the rotation completed.
    • status string required
      The current status of the rotation event.
    • scheduledActionID string optional
      The ID of the scheduled action that triggered this rotation, if any.
    • errorMessage string optional
      An error message if the rotation failed.
    • rotations array[SecretRotation] required
      The individual secret rotations within this event.
    Errors: 400 Bad request 403 Secret rotation is not enabled for this organization 409 the environment has changed since it was read

    List Environment Secret Rotation History

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/rotate/history

    Returns the secret rotation history for a Pulumi ESC environment. Each entry represents a rotation event where secrets defined with fn::rotate were cycled to new values in their external systems. The response includes timestamps, outcomes, and the rotators involved. Requires the secret rotation feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • events array[SecretRotationEvent] required
      The list of secret rotation events
    • id string required
      The unique identifier for this rotation event.
    • environmentId string required
      The ID of the environment being rotated.
    • created string required
      The timestamp when this rotation event was created.
    • preRotationRevision integer required
      The environment revision before the rotation.
    • postRotationRevision integer optional
      The environment revision after the rotation, if completed.
    • userID string required
      The ID of the user who initiated the rotation.
    • completed string optional
      The timestamp when the rotation completed.
    • status string required
      The current status of the rotation event.
    • scheduledActionID string optional
      The ID of the scheduled action that triggered this rotation, if any.
    • errorMessage string optional
      An error message if the rotation failed.
    • rotations array[SecretRotation] required
      The individual secret rotations within this event.
    Errors: 403 Secret rotation is not enabled for the organization

    List Environment Schedule

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/schedules

    Returns all scheduled actions configured for a Pulumi ESC environment. Schedules automate recurring operations such as secret rotation. The response includes each schedule’s timing configuration, action type, and current status (active or paused).

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • schedules array[ScheduledAction] required
      The list of scheduled actions
    • id string required
      The unique identifier for this scheduled action.
    • orgID string required
      The organization ID that owns this scheduled action.
    • scheduleCron string optional
      A cron expression defining the recurring schedule.
    • scheduleOnce string optional
      A timestamp for a one-time scheduled execution.
    • nextExecution string required
      The timestamp of the next scheduled execution.
    • paused boolean required
      Whether the scheduled action is currently paused.
    • kind enum required
      The kind of action to be executed.
      Values: deployment, environment_rotation, scan, agent_automation
    • definition map[string]object required
      The action definition, which varies based on the action kind.
    • created string required
      The timestamp when this scheduled action was created.
    • modified string required
      The timestamp when this scheduled action was last modified.
    • lastExecuted string required
      The timestamp of the last execution, if any.
    Errors: 404 Organization or Environment not found

    Create Environment Schedule

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/schedules

    Creates a new scheduled action for a Pulumi ESC environment. Schedules can be used to automate recurring operations on environments, such as secret rotation. The request body specifies the schedule timing and the action to perform. Returns the created ScheduledAction on success. Requires the secret rotation feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • scheduleCron string optional
      The schedule cron
    • scheduleOnce string optional
      The schedule once
    • secretRotationRequest CreateEnvironmentSecretRotationScheduleRequest optional
      The secret rotation request
    • environmentPath string required
      Environment Path specifies a path to a rotated secret to be updated Leave the field blank to rotate ALL rotated secrets in an environment

    Responses

    200 OK
    • id string required
      The unique identifier for this scheduled action.
    • orgID string required
      The organization ID that owns this scheduled action.
    • scheduleCron string optional
      A cron expression defining the recurring schedule.
    • scheduleOnce string optional
      A timestamp for a one-time scheduled execution.
    • nextExecution string required
      The timestamp of the next scheduled execution.
    • paused boolean required
      Whether the scheduled action is currently paused.
    • kind enum required
      The kind of action to be executed.
      Values: deployment, environment_rotation, scan, agent_automation
    • definition map[string]object required
      The action definition, which varies based on the action kind.
    • created string required
      The timestamp when this scheduled action was created.
    • modified string required
      The timestamp when this scheduled action was last modified.
    • lastExecuted string required
      The timestamp of the last execution, if any.
    Errors: 400 Invalid input 403 Secret rotation feature is not enabled for the organization 404 Organization or Environment not found

    Read Environment Schedule

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}

    Returns the details of a specific scheduled action for a Pulumi ESC environment. The schedule is identified by the scheduleID path parameter. The response includes the schedule’s timing configuration (cron expression or one-time), the action to perform, and the current status (active or paused).

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Responses

    200 OK
    • id string required
      The unique identifier for this scheduled action.
    • orgID string required
      The organization ID that owns this scheduled action.
    • scheduleCron string optional
      A cron expression defining the recurring schedule.
    • scheduleOnce string optional
      A timestamp for a one-time scheduled execution.
    • nextExecution string required
      The timestamp of the next scheduled execution.
    • paused boolean required
      Whether the scheduled action is currently paused.
    • kind enum required
      The kind of action to be executed.
      Values: deployment, environment_rotation, scan, agent_automation
    • definition map[string]object required
      The action definition, which varies based on the action kind.
    • created string required
      The timestamp when this scheduled action was created.
    • modified string required
      The timestamp when this scheduled action was last modified.
    • lastExecuted string required
      The timestamp of the last execution, if any.

    Update Environment Schedule

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}

    Updates the configuration of a scheduled action for a Pulumi ESC environment. The schedule is identified by the scheduleID path parameter. The request body specifies the updated timing and action configuration. Changes take effect for future executions only; any currently running execution is not affected. Returns the updated ScheduledAction on success.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Request Body

    • scheduleCron string optional
      The schedule cron
    • scheduleOnce string optional
      The schedule once
    • secretRotationRequest CreateEnvironmentSecretRotationScheduleRequest optional
      The secret rotation request
    • environmentPath string required
      Environment Path specifies a path to a rotated secret to be updated Leave the field blank to rotate ALL rotated secrets in an environment

    Responses

    200 OK
    • id string required
      The unique identifier for this scheduled action.
    • orgID string required
      The organization ID that owns this scheduled action.
    • scheduleCron string optional
      A cron expression defining the recurring schedule.
    • scheduleOnce string optional
      A timestamp for a one-time scheduled execution.
    • nextExecution string required
      The timestamp of the next scheduled execution.
    • paused boolean required
      Whether the scheduled action is currently paused.
    • kind enum required
      The kind of action to be executed.
      Values: deployment, environment_rotation, scan, agent_automation
    • definition map[string]object required
      The action definition, which varies based on the action kind.
    • created string required
      The timestamp when this scheduled action was created.
    • modified string required
      The timestamp when this scheduled action was last modified.
    • lastExecuted string required
      The timestamp of the last execution, if any.
    Errors: 400 Bad request 404 EnvironmentSchedule

    Delete Environment Schedule

    DELETE /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}

    Permanently deletes a scheduled action from a Pulumi ESC environment. This removes the schedule and cancels any future executions. The schedule is identified by its scheduleID. Requires the secret rotation feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Responses

    200 OK
    Errors: 400 Bad Request 403 Secret rotation feature is not enabled for the organization 404 Organization or Environment not found

    List Environment Schedule History

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}/history

    Returns the execution history for a specific scheduled action on a Pulumi ESC environment. Each history entry includes the execution timestamp, outcome (success or failure), and any error details. This is useful for monitoring the reliability of automated operations like secret rotation.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Responses

    200 OK
    • scheduleHistoryEvents array[ScheduledActionHistoryEvent] required
      The list of scheduled action history events
    • id string required
      The unique identifier for this history event.
    • scheduledActionID string required
      The ID of the scheduled action this event belongs to.
    • executed string required
      The timestamp when the action was executed.
    • version integer required
      The version of the scheduled action at the time of execution.
    • result string required
      The result of the execution.
    Errors: 404 Organization or Environment not found

    Pause Environment Schedule

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}/pause

    Pauses a scheduled action on a Pulumi ESC environment, preventing any future executions until the schedule is resumed. The schedule’s configuration is preserved and can be reactivated via the ResumeEnvironmentSchedule endpoint. This is useful for temporarily disabling automated operations like secret rotation without deleting the schedule.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Responses

    200 OK
    Errors: 404 Organization or Environment not found

    Resume Environment Schedule

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/schedules/{scheduleID}/resume

    Resumes a previously paused scheduled action on a Pulumi ESC environment, re-enabling future executions. The schedule will continue from its next scheduled time according to its configured timing (cron expression or one-time schedule). The schedule is identified by the scheduleID path parameter.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • scheduleID string path required
      The schedule ID

    Responses

    200 OK
    Errors: 404 Organization or Environment not found

    Get Environment Settings

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/settings

    Returns the current settings for a Pulumi ESC environment, including whether deletion protection is enabled. Deletion protection prevents the environment from being deleted until the setting is explicitly disabled. Settings can be modified via the PatchEnvironmentSettings endpoint.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • deletionProtected boolean required
      Whether the environment is protected from deletion.
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Patch Environment Settings

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/settings

    Updates settings for a Pulumi ESC environment using a partial update (patch) approach. Currently supports toggling deletion protection via the deletionProtected field. When deletionProtected is set to true, the environment cannot be deleted until the setting is explicitly disabled. Only the fields included in the request body are modified; omitted fields retain their current values.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • deletionProtected boolean optional
      DeletionProtected indicates whether deletion protection should be enabled for this environment. Null means no change.

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    List Environment Tags

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/tags

    Returns a paginated list of user-defined tags for a Pulumi ESC environment. Tags are key-value pairs used for organizing and categorizing environments. Use the after parameter for cursor-based pagination and count to limit the number of results returned.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • after integer query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags map[string]EnvironmentTag required
      Map of tag names to their tag details
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 Invalid input 404 Organization or Environment not found

    Create Environment Tag

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/tags

    Adds a new user-defined tag to a Pulumi ESC environment. Tags are key-value pairs that provide contextual metadata for organizing and searching environments (e.g., region=us-east-1, team=platform). The tag name and value are provided in the request body. Returns the created EnvironmentTag on success. Returns 409 if a tag with the same name already exists on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • name string required
      The name
    • value string required
      The value

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 400 Invalid tag name or value 404 environment 409 Tag already exists

    Get Environment Tag

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/tags/{tagName}

    Returns a single user-defined tag for a Pulumi ESC environment, identified by the tag name in the URL path. The response includes the tag name, value, and metadata. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 404 tag

    Update Environment Tag

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/tags/{tagName}

    Modifies the value of an existing user-defined tag on a Pulumi ESC environment. The tag is identified by its name in the URL path. The request body contains the new value for the tag. Returns the updated EnvironmentTag on success. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Request Body

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 400 Invalid tag name or value 404 environment tag

    Delete Environment Tag

    DELETE /api/esc/environments/{orgName}/{projectName}/{envName}/tags/{tagName}

    Removes a user-defined tag from a Pulumi ESC environment. The tag is identified by its name in the URL path. Returns 204 on success with no response body. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Responses

    204 No Content
    Errors: 400 Invalid tag name or value 404 tag 409 the environment has changed since it was read

    List Environment Revisions

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions

    Returns a paginated list of revisions for a Pulumi ESC environment. Each revision represents an immutable snapshot of the environment definition created when the environment is updated. The response includes revision numbers, timestamps, and the identity of the user who made each change. Use the before parameter to fetch revisions before a specific revision number, and count to limit the number of results returned.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • before integer query optional
      Only return results before this revision
    • count integer query optional
      Maximum number of results to return

    Responses

    200 successful operation
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Environment

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}

    Returns the YAML definition of a Pulumi ESC environment. The response is in application/x-yaml format and includes the environment’s imports, values, provider configurations, and function invocations. Secrets remain in their encrypted form (use DecryptEnvironment to see plaintext secrets, or OpenEnvironment to fully resolve all dynamic values). When a version path parameter is provided, returns the definition for that specific revision.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/check

    Checks a Pulumi ESC environment definition for errors without applying changes. This validates the YAML definition including imports, provider configurations, function invocations (fn::open, fn::secret, etc.), and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. The response includes any diagnostics or validation errors found in the environment definition. Supports optimistic concurrency control via ETag headers.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      List of diagnostics
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      The environment function summary
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Decrypt Environment

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/decrypt

    Reads the YAML definition for a Pulumi ESC environment with all static secrets decrypted and shown in plaintext. Unlike the standard ReadEnvironment endpoint which returns secrets in their encrypted form, this endpoint resolves fn::secret values to their plaintext representations. The response is returned in application/x-yaml format. This does not resolve dynamic provider values (fn::open); use OpenEnvironment for full resolution. Requires environment open permission.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Responses

    200 OK
    Errors: 400 Invalid input 404 Organization or Environment not found

    Open Environment

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/open

    Opens a Pulumi ESC environment, fully resolving all dynamic values, provider integrations (fn::open), interpolation expressions, and secrets. This initiates an access session that evaluates the complete environment definition including all imports. The duration parameter specifies how long the session remains valid using Go duration format (e.g., ‘2h45m’, ‘300ms’). Returns an OpenEnvironmentResponse containing the session ID and any diagnostics. Use the session ID with ReadOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    List Environment Referrers

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/referrers

    Returns a paginated list of entities that reference a Pulumi ESC environment, including other environments that import it and Pulumi stacks that use it in their configuration. The count parameter limits results (range 1-500). Set allRevisions to true to include references across all revisions, and latestStackVersionOnly to true to return only the latest stack version for each referring stack. Use continuationToken for pagination.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • allRevisions boolean query optional
      Whether to include all revisions
    • continuationToken string query optional
      Continuation token for paginated results
    • count integer query optional
      Maximum number of results to return
    • latestStackVersionOnly boolean query optional
      Whether to return only the latest stack version

    Responses

    200 OK
    • referrers map[string]array required
      Map of referrer types to their referrer details
    • continuationToken string optional
      Continuation token for pagination
    Errors: 400 count must be in the range [1, 500] 404 environment 409 the environment has changed since it was read

    Retract Environment Revision

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/retract

    Retracts a specific revision of a Pulumi ESC environment, marking it as withdrawn. A retracted revision remains in the history but is no longer considered a valid version for use. The request body may include a reason for the retraction. The revision is identified by the version path parameter. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Request Body

    • replacement integer optional
      The revision number to use as a replacement, if any.
    • reason string optional
      The reason for retracting the revision.

    Responses

    204 No Content
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    List Revision Tags

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/{version}/tags

    Returns a paginated list of revision tags for a Pulumi ESC environment. Revision tags are named references pointing to specific revision numbers (e.g., ’latest’, ‘prod’, ‘stable’). They can be used in environment imports and Pulumi stack configuration to pin to a specific version. Use the after parameter for cursor-based pagination and count to limit results.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • after string query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags array[EnvironmentRevisionTag] required
      The list of revision tags
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    List Revision Tags

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/tags

    Returns a paginated list of revision tags for a Pulumi ESC environment. Revision tags are named references pointing to specific revision numbers (e.g., ’latest’, ‘prod’, ‘stable’). They can be used in environment imports and Pulumi stack configuration to pin to a specific version. Use the after parameter for cursor-based pagination and count to limit results.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • after string query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags array[EnvironmentRevisionTag] required
      The list of revision tags
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Create Revision Tag

    POST /api/esc/environments/{orgName}/{projectName}/{envName}/versions/tags

    Creates a new revision tag for a Pulumi ESC environment. Revision tags are named references that point to specific revision numbers, similar to Git tags. They allow pinning a stable reference to a known-good version of an environment. Tagged versions can be used in imports and Pulumi stack configuration (e.g., myproject/env@prod) to ensure stable references unaffected by subsequent changes. The built-in ’latest’ tag always points to the most recent revision.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Request Body

    • name string required
      The name
    • revision integer optional
      The revision

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 environment 409 the environment has changed since it was read

    Read Revision Tag

    GET /api/esc/environments/{orgName}/{projectName}/{envName}/versions/tags/{tagName}

    Returns the details of a specific revision tag for a Pulumi ESC environment. The tag is identified by its name in the URL path. The response includes the tag name and the revision number it points to. Returns 404 if the tag does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Responses

    200 OK
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    Errors: 400 Bad request 404 revision tag 409 the environment has changed since it was read

    Update Revision Tag

    PATCH /api/esc/environments/{orgName}/{projectName}/{envName}/versions/tags/{tagName}

    Updates an existing revision tag for a Pulumi ESC environment to point to a different revision number. The tag is identified by its name in the URL path. The request body specifies the new revision number. This allows advancing or rolling back a named reference (e.g., moving the ‘prod’ tag to a newer or older revision). Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Request Body

    • revision integer optional
      The revision number to associate with the tag.

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 revision tag 409 the environment has changed since it was read

    Delete Revision Tag

    DELETE /api/esc/environments/{orgName}/{projectName}/{envName}/versions/tags/{tagName}

    Deletes a named revision tag from a Pulumi ESC environment. The tag is identified by its name in the URL path. After deletion, any imports or stack configurations referencing this tag will fail to resolve. The built-in ’latest’ tag cannot be deleted. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 revision tag 409 the environment has changed since it was read

    List Deleted Environments

    GET /api/esc/environments/{orgName}/restore

    Returns a paginated list of soft-deleted Pulumi ESC environments within an organization that are still within the retention window and eligible for restoration. Use the continuationToken query parameter for pagination. Deleted environments can be restored via the RestoreEnvironment endpoint.

    Request Parameters

    • orgName string path required
      The organization name
    • continuationToken string query optional
      Continuation token for paginated results

    Responses

    200 OK
    • environments array[OrgEnvironment] required
      The list of environments
    • id string required
      The unique identifier of the environment.
    • organization string required
      The login name of the organization that owns this environment.
    • project string optional
      The project name that contains this environment, if project-scoped.
    • name string required
      The name of the environment.
    • created string required
      The ISO 8601 timestamp when the environment was created.
    • modified string required
      The ISO 8601 timestamp when the environment was last modified.
    • ownedBy UserInfo required
      The user with ownership of this environment
    • tags map[string]string required
      User-defined key-value tags associated with the environment for organization and filtering.
    • deletedAt string optional
      The ISO 8601 timestamp when the environment was soft-deleted, or null if not deleted.
    • links EnvironmentLinks optional
      Hypermedia links related to the environment.
    • referrerMetadata EnvironmentReferrerMetadata required
      Metadata about what refers to this environment.
    • settings EnvironmentSettings required
      Configuration settings for the environment, such as deletion protection.
    • nextToken string optional
      Token for fetching the next page of results
    Errors: 400 Invalid continuation token 404 not found

    Restore Environment

    PUT /api/esc/environments/{orgName}/restore

    Restores a previously deleted Pulumi ESC environment within an organization. The request body specifies the environment to restore by its project and name. The environment must have been deleted within the retention window and not yet permanently purged. Returns 204 on success with no response body. Returns 404 if the deleted environment cannot be found.

    Request Parameters

    • orgName string path required
      The organization name

    Request Body

    • deletionTimestamp string required
      The ISO 8601 timestamp of the environment’s deletion, used to identify which deleted version to restore.
    • project string required
      The project name for the environment.
    • name string required
      The name of the environment.

    Responses

    204 No Content
    Errors: 404 not found

    List All Environment Tags

    GET /api/esc/environments/{orgName}/tags

    Returns a map of all unique tag names and their distinct values across all Pulumi ESC environments in the organization. The response is a map where each key is a tag name and the value is a list of all distinct values for that tag across all environments. This is useful for building tag-based filtering or discovery UIs.

    Request Parameters

    • orgName string path required
      The organization name

    Responses

    200 successful operation
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check YAML

    POST /api/esc/environments/{orgName}/yaml/check

    Checks a raw YAML environment definition for errors without creating or modifying any environment. The YAML definition is provided in the request body and validated for correctness, including imports, provider configurations, function invocations, and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. This is useful for validating environment definitions before applying them.

    Request Parameters

    • orgName string path required
      The organization name
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      The list of diagnostics produced during environment evaluation.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      A summary of the functions used in the environment.
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Open YAML

    POST /api/esc/environments/{orgName}/yaml/open

    Opens an anonymous Pulumi ESC environment from a raw YAML definition provided in the request body, fully resolving all dynamic values, provider integrations, and secrets. Unlike OpenEnvironment, this does not require a pre-existing environment to be stored. The duration parameter specifies how long the session remains valid using Go duration format. Returns an OpenEnvironmentResponse containing the session ID. Use the session ID with ReadAnonymousOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Anonymous Open Environment

    GET /api/esc/environments/{orgName}/yaml/open/{openSessionID}

    Reads the fully resolved values from an anonymous open environment session that was created via the OpenYAML endpoint. The openSessionID path parameter must match a valid, non-expired session. The optional property query parameter accepts a dot-separated path to retrieve a specific nested value instead of the entire resolved environment (e.g., ‘aws.credentials.accessKeyId’). The response contains the resolved configuration values with secrets decrypted.

    Request Parameters

    • orgName string path required
      The organization name
    • openSessionID string path required
      The session ID returned from the open environment operation
    • property string query optional
      A dot-separated path to a specific property to retrieve from the environment

    Responses

    200 OK
    Errors: 400 invalid query parameter 404 path 409 the environment has changed since it was read

    List Providers

    GET /api/esc/providers

    Returns a list of all available Pulumi ESC providers. Providers are integrations that dynamically retrieve configuration and secrets from external sources (e.g., AWS, Azure, Google Cloud, HashiCorp Vault, 1Password) via the fn::open function in environment definitions. Optionally filter by organization using the orgName query parameter to see only providers available to that organization.

    Request Parameters

    • orgName string query optional
      Filter providers available to this organization

    Responses

    200 OK
    • providers array[string] required
      The list of provider names

    Get Provider Schema

    GET /api/esc/providers/{providerName}/schema

    Returns the JSON schema for a Pulumi ESC provider. Providers are integrations that dynamically retrieve configuration and secrets from external sources such as AWS, Azure, Google Cloud, HashiCorp Vault, and others via fn::open. The schema describes the provider’s input parameters, output structure, and configuration options. The provider is identified by name in the URL path.

    Request Parameters

    • providerName string path required
      The provider name

    Responses

    200 OK
    • name string required
      The name of the provider.
    • description string required
      A description of the provider.
    • inputs EscSchemaSchema required
      The input schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • outputs EscSchemaSchema required
      The output schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    Errors: 400 Bad request 404 provider 409 the environment has changed since it was read

    List Rotators

    GET /api/esc/rotators

    Returns a list of all available Pulumi ESC secret rotators. Rotators are integrations that automatically rotate secrets in external systems via the fn::rotate function in environment definitions. Optionally filter by organization using the orgName query parameter to see only rotators available to that organization.

    Request Parameters

    • orgName string query optional
      Filter rotators available to this organization

    Responses

    200 OK
    • rotators array[string] required
      The list of rotator names

    Get Rotator Schema

    GET /api/esc/rotators/{rotatorName}/schema

    Returns the JSON schema for a Pulumi ESC secret rotator. Rotators are integrations that automatically rotate secrets in external systems via fn::rotate. The schema describes the rotator’s input parameters, output structure, and configuration options. The rotator is identified by name in the URL path.

    Request Parameters

    • rotatorName string path required
      The rotator name

    Responses

    200 OK
    • name string required
      The name of the provider.
    • description string required
      A description of the provider.
    • inputs EscSchemaSchema required
      The input schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • outputs EscSchemaSchema required
      The output schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    Errors: 400 Bad request 404 rotator 409 the environment has changed since it was read

    List Environments

    Deprecated. Use ListEnvironments_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments

    Returns a paginated list of all Pulumi ESC environments accessible to the authenticated user across all organizations they belong to. Each entry includes the organization, project, environment name, and creation/modification timestamps. Use the organization query parameter to filter results to a specific organization. Use continuationToken for pagination through large result sets.

    Request Parameters

    • continuationToken string query optional
      Continuation token for paginated results
    • includeReferrerMetadata boolean query optional
      Whether to include referrer metadata. Defaults to false.
    • maxResults integer query optional
      Maximum number of results for pagination
    • organization string query optional
      Filter results to this organization name

    Responses

    200 OK
    • environments array[OrgEnvironment] required
      The list of environments
    • id string required
      The unique identifier of the environment.
    • organization string required
      The login name of the organization that owns this environment.
    • project string optional
      The project name that contains this environment, if project-scoped.
    • name string required
      The name of the environment.
    • created string required
      The ISO 8601 timestamp when the environment was created.
    • modified string required
      The ISO 8601 timestamp when the environment was last modified.
    • ownedBy UserInfo required
      The user with ownership of this environment
    • tags map[string]string required
      User-defined key-value tags associated with the environment for organization and filtering.
    • deletedAt string optional
      The ISO 8601 timestamp when the environment was soft-deleted, or null if not deleted.
    • links EnvironmentLinks optional
      Hypermedia links related to the environment.
    • referrerMetadata EnvironmentReferrerMetadata required
      Metadata about what refers to this environment.
    • settings EnvironmentSettings required
      Configuration settings for the environment, such as deletion protection.
    • nextToken string optional
      Token for fetching the next page of results
    Errors: 400 Invalid continuation token

    List Org Environments

    Deprecated. Use ListOrgEnvironments_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}

    Returns a paginated list of all Pulumi ESC environments within a specific organization. Each entry includes the project, environment name, and creation/modification timestamps. Results are scoped to the organization specified in the URL path. Use continuationToken for pagination through large result sets.

    Request Parameters

    • orgName string path required
      The organization name
    • continuationToken string query optional
      Continuation token for paginated results
    • includeReferrerMetadata boolean query optional
      Whether to include referrer metadata. Defaults to false.
    • maxResults integer query optional
      Maximum number of results for pagination
    • roleID string query optional
      The custom role to use for listing environments

    Responses

    200 OK
    • environments array[OrgEnvironment] required
      The list of environments
    • id string required
      The unique identifier of the environment.
    • organization string required
      The login name of the organization that owns this environment.
    • project string optional
      The project name that contains this environment, if project-scoped.
    • name string required
      The name of the environment.
    • created string required
      The ISO 8601 timestamp when the environment was created.
    • modified string required
      The ISO 8601 timestamp when the environment was last modified.
    • ownedBy UserInfo required
      The user with ownership of this environment
    • tags map[string]string required
      User-defined key-value tags associated with the environment for organization and filtering.
    • deletedAt string optional
      The ISO 8601 timestamp when the environment was soft-deleted, or null if not deleted.
    • links EnvironmentLinks optional
      Hypermedia links related to the environment.
    • referrerMetadata EnvironmentReferrerMetadata required
      Metadata about what refers to this environment.
    • settings EnvironmentSettings required
      Configuration settings for the environment, such as deletion protection.
    • nextToken string optional
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Environment

    Deprecated. Use ReadEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}

    Returns the YAML definition of a Pulumi ESC environment. The response is in application/x-yaml format and includes the environment’s imports, values, provider configurations, and function invocations. Secrets remain in their encrypted form (use DecryptEnvironment to see plaintext secrets, or OpenEnvironment to fully resolve all dynamic values). When a version path parameter is provided, returns the definition for that specific revision.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Create Environment

    Deprecated. Use CreateEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}

    Creates a new Pulumi ESC (Environments, Secrets, and Configuration) environment within the specified organization. The request body must include the project name and the environment name. Environment names must be unique within a project and may only contain alphanumeric characters, hyphens, underscores, and periods. The newly created environment starts with an empty YAML definition that can be updated via the UpdateEnvironment endpoint.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Request Body

    • project string required
      The project name for the environment.
    • name string required
      The name of the environment.

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Update Environment

    Deprecated. Use UpdateEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    PATCH /api/preview/environments/{orgName}/{envName}

    Validates and updates the YAML definition of a Pulumi ESC environment. The request body must contain the complete environment definition in application/x-yaml format, including imports, values, provider configurations, and function invocations. Each successful update creates a new immutable revision in the environment’s version history. Supports optimistic concurrency control via ETag/If-Match headers; returns 409 if the environment has been modified since it was last read.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      The list of diagnostics produced by the environment operation.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Delete Environment

    Deprecated. Use DeleteEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    DELETE /api/preview/environments/{orgName}/{envName}

    Permanently deletes a Pulumi ESC environment and all of its revision history, tags, and associated configuration. This operation is blocked if deletion protection is enabled on the environment (see PatchEnvironmentSettings). Enterprise and Business Critical edition organizations may be able to restore deleted environments within a retention window. Returns 409 if the environment is deletion-protected or has been modified since it was last read.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Head Environment

    Deprecated. Use HeadEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    HEAD /api/preview/environments/{orgName}/{envName}

    Returns the ETag header for a Pulumi ESC environment without returning the full definition body. This is used for lightweight existence checks and for obtaining the current ETag value for optimistic concurrency control. The ETag should be included in subsequent update requests via the If-Match header to prevent concurrent modification conflicts. Returns 404 if the environment does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check Environment

    Deprecated. Use CheckEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/check

    Checks a Pulumi ESC environment definition for errors without applying changes. This validates the YAML definition including imports, provider configurations, function invocations (fn::open, fn::secret, etc.), and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. The response includes any diagnostics or validation errors found in the environment definition. Supports optimistic concurrency control via ETag headers.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      List of diagnostics
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      The environment function summary
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Decrypt Environment

    Deprecated. Use DecryptEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/decrypt

    Reads the YAML definition for a Pulumi ESC environment with all static secrets decrypted and shown in plaintext. Unlike the standard ReadEnvironment endpoint which returns secrets in their encrypted form, this endpoint resolves fn::secret values to their plaintext representations. The response is returned in application/x-yaml format. This does not resolve dynamic provider values (fn::open); use OpenEnvironment for full resolution. Requires environment open permission.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    List Webhooks

    Deprecated. Use ListWebhooks_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/hooks

    Returns a list of all webhooks configured for a Pulumi ESC environment. Each webhook entry includes its name, destination URL, event filters, format, and active status. Webhooks enable external services to be notified of environment events such as updates and opens.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 successful operation

    Create Webhook

    Deprecated. Use CreateWebhook_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/hooks

    Creates a new webhook for a Pulumi ESC environment. Webhooks allow external services to be notified when environment events occur, such as updates or opens. The request body specifies the webhook configuration including the destination URL, event filters, and format. Returns 400 if the organization name in the request body does not match the URL path parameter. Returns 409 if a webhook with the same name already exists.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Request Body

    Schema: Webhook
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).

    Responses

    201 Created
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 400 Organization name from request body doesn't match URL. 409 Webhook already exists

    Get Webhook

    Deprecated. Use GetWebhook_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/hooks/{hookName}

    Returns the configuration and status of a single webhook for a Pulumi ESC environment. The webhook is identified by its name in the URL path. The response includes the webhook’s destination URL, event filters, format, and active status. Returns 404 if the webhook does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 OK
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 404 Webhook

    Update Webhook

    Deprecated. Use UpdateWebhook_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    PATCH /api/preview/environments/{orgName}/{envName}/hooks/{hookName}

    Updates the configuration of an existing webhook on a Pulumi ESC environment. The webhook is identified by its name in the URL path. The request body contains the updated webhook configuration including destination URL, event filters, format, and active status. Returns the updated WebhookResponse on success. Returns 400 if an invalid format is specified.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Request Body

    Schema: Webhook
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).

    Responses

    200 OK
    • hasSecret boolean required
      HasSecret is true if the webhook has a secret. This is used to determine whether to show that there is a secret in the UI.
    • organizationName string required
      The organization that owns this webhook.
    • projectName string optional
      The project name. Set when the webhook is scoped to a specific stack.
    • secretCiphertext string required
      SecretCiphertext is the ciphertext value of the webhook’s secret. It’s used to check whether the secret was changed by the PSP
    • stackName string optional
      The stack name. Set when the webhook is scoped to a specific stack.
    • envName string optional
      The environment name. Set when the webhook is scoped to a specific environment.
    • name string required
      The unique identifier name for the webhook within its scope.
    • displayName string required
      The human-readable display name shown in the UI.
    • payloadUrl string required
      The URL to which webhook payloads are delivered.
    • secret string optional
      Secret will be omitted when returned from the service.
    • active boolean required
      Whether the webhook is active and will receive deliveries.
    • format string optional
      The format of the webhook payload (e.g., ‘raw’, ‘slack’, ‘ms_teams’).
    • filters array[string] optional
      Specific event types this webhook subscribes to. If empty, all events are delivered.
    • groups array[string] optional
      Event groups this webhook subscribes to (e.g., ‘stacks’, ‘deployments’).
    Errors: 400 'pulumi_deployments' format can only be used on stack or environment webhooks. 404 Webhook

    Delete Webhook

    Deprecated. Use DeleteWebhook_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    DELETE /api/preview/environments/{orgName}/{envName}/hooks/{hookName}

    Deletes a webhook from a Pulumi ESC environment. The webhook is identified by its name in the URL path. After deletion, the external service will no longer receive notifications for environment events. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    204 No Content

    Get Webhook Deliveries

    Deprecated. Use GetWebhookDeliveries_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/hooks/{hookName}/deliveries

    Returns a list of recent delivery attempts for a specific webhook on a Pulumi ESC environment. Each delivery record includes the HTTP status code, response body, timestamp, and whether the delivery was successful. This is useful for debugging webhook integration issues and verifying that events are being received.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 successful operation

    Redeliver Webhook Event

    Deprecated. Use RedeliverWebhookEvent_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/hooks/{hookName}/deliveries/{event}/redeliver

    Triggers the Pulumi Service to redeliver a specific event to a webhook on a Pulumi ESC environment. This is useful for resending events that the webhook endpoint failed to process on the initial delivery attempt (e.g., due to temporary downtime or errors). The event is identified by its delivery event ID in the URL path. Returns the new WebhookDelivery record for the redelivery.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name
    • event string path required
      The webhook delivery event ID to redeliver

    Responses

    200 OK
    • id string required
      The unique identifier of the delivery.
    • kind string required
      The kind of webhook event.
    • payload string required
      The JSON payload that was sent.
    • timestamp integer required
      The time the delivery was sent, as a Unix epoch timestamp.
    • duration integer required
      The duration of the delivery request in milliseconds.
    • requestUrl string required
      The URL the webhook was delivered to.
    • requestHeaders string required
      The HTTP headers sent with the request.
    • responseCode integer required
      The HTTP response status code.
    • responseHeaders string required
      The HTTP response headers.
    • responseBody string required
      The HTTP response body.
    Errors: 404 Webhook

    Ping Webhook

    Deprecated. Use PingWebhook_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/hooks/{hookName}/ping

    Sends a test ping event to a webhook on a Pulumi ESC environment to verify that the webhook endpoint is reachable and functioning correctly. This bypasses the normal message queue and issues the request directly to the webhook URL. Returns the WebhookDelivery record containing the HTTP status code and response from the target endpoint.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • hookName string path required
      The webhook name

    Responses

    200 OK
    • id string required
      The unique identifier of the delivery.
    • kind string required
      The kind of webhook event.
    • payload string required
      The JSON payload that was sent.
    • timestamp integer required
      The time the delivery was sent, as a Unix epoch timestamp.
    • duration integer required
      The duration of the delivery request in milliseconds.
    • requestUrl string required
      The URL the webhook was delivered to.
    • requestHeaders string required
      The HTTP headers sent with the request.
    • responseCode integer required
      The HTTP response status code.
    • responseHeaders string required
      The HTTP response headers.
    • responseBody string required
      The HTTP response body.
    Errors: 404 Webhook

    Get Environment Metadata

    Deprecated. Use GetEnvironmentMetadata_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/metadata

    Returns metadata for a Pulumi ESC environment, including the calling user’s effective permission level (read, open, write, admin), creation and modification timestamps, the environment’s project, and other administrative information. This is useful for determining what actions the current user can perform on the environment before attempting those operations.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Responses

    200 OK
    • id string required
      Environment metadata follows other Pulumi Cloud “Metadata” fields and contains read-only information about the environment
    • ownedBy UserInfo required
      The user with ownership of this environment
    • name string required
      The user’s display name.
    • githubLogin string required
      The user’s login name.
    • avatarUrl string required
      The URL of the user’s avatar image.
    • email string optional
      IMPORTANT: The email address of the user is only included on a few admin-only APIs. For nearly all APIs that return a UserInfo object, this will not be provided. considered sensitive information.
    • activeChangeRequest ChangeRequestRef optional
      ActiveChangeRequest contains information about any active change request for this environment. Will be nil if there is no active change request.
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    • gatedActions array[string] optional
      GatedActions indicates which actions on this environment require change request approval.
    • openRequestNeeded boolean optional
      OpenRequestNeeded indicates whether an open request is currently needed in order to open the environment.
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Open Environment

    Deprecated. Use OpenEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/open

    Opens a Pulumi ESC environment, fully resolving all dynamic values, provider integrations (fn::open), interpolation expressions, and secrets. This initiates an access session that evaluates the complete environment definition including all imports. The duration parameter specifies how long the session remains valid using Go duration format (e.g., ‘2h45m’, ‘300ms’). Returns an OpenEnvironmentResponse containing the session ID and any diagnostics. Use the session ID with ReadOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Read Open Environment

    Deprecated. Use ReadOpenEnvironment_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/open/{openSessionID}

    Reads the fully resolved values from an open environment session that was created via the OpenEnvironment endpoint. The openSessionID path parameter must match a valid, non-expired session. The optional property query parameter accepts a dot-separated path to retrieve a specific nested value instead of the entire resolved environment (e.g., ‘aws.credentials.accessKeyId’). The response contains all resolved configuration values with secrets decrypted and provider-sourced values fully evaluated.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • openSessionID string path required
      The session ID returned from the open environment operation
    • property string query optional
      A dot-separated path to a specific property to retrieve from the environment

    Responses

    200 OK
    Errors: 400 invalid query parameter 404 path 409 the environment has changed since it was read

    List Environment Tags

    Deprecated. Use ListEnvironmentTags_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/tags

    Returns a paginated list of user-defined tags for a Pulumi ESC environment. Tags are key-value pairs used for organizing and categorizing environments. Use the after parameter for cursor-based pagination and count to limit the number of results returned.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • after integer query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags map[string]EnvironmentTag required
      Map of tag names to their tag details
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Create Environment Tag

    Deprecated. Use CreateEnvironmentTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/tags

    Adds a new user-defined tag to a Pulumi ESC environment. Tags are key-value pairs that provide contextual metadata for organizing and searching environments (e.g., region=us-east-1, team=platform). The tag name and value are provided in the request body. Returns the created EnvironmentTag on success. Returns 409 if a tag with the same name already exists on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name

    Request Body

    • name string required
      The name
    • value string required
      The value

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 400 Invalid tag name or value 404 environment 409 Tag already exists

    Get Environment Tag

    Deprecated. Use GetEnvironmentTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/tags/{tagName}

    Returns a single user-defined tag for a Pulumi ESC environment, identified by the tag name in the URL path. The response includes the tag name, value, and metadata. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 404 tag

    Update Environment Tag

    Deprecated. Use UpdateEnvironmentTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    PATCH /api/preview/environments/{orgName}/{envName}/tags/{tagName}

    Modifies the value of an existing user-defined tag on a Pulumi ESC environment. The tag is identified by its name in the URL path. The request body contains the new value for the tag. Returns the updated EnvironmentTag on success. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Request Body

    Responses

    200 OK
    • name string required
      The name of the tag.
    • value string required
      The value of the tag.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string required
      The login name of the user who last edited the tag.
    • editorName string required
      The display name of the user who last edited the tag.
    Errors: 400 Invalid tag name or value 404 environment tag 409 the environment has changed since it was read

    Delete Environment Tag

    Deprecated. Use DeleteEnvironmentTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    DELETE /api/preview/environments/{orgName}/{envName}/tags/{tagName}

    Removes a user-defined tag from a Pulumi ESC environment. The tag is identified by its name in the URL path. Returns 204 on success with no response body. Returns 404 if the tag does not exist on the environment.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The environment tag name

    Responses

    204 No Content
    Errors: 400 Invalid tag name or value 404 tag 409 the environment has changed since it was read

    List Environment Revisions

    Deprecated. Use ListEnvironmentRevisions_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions

    Returns a paginated list of revisions for a Pulumi ESC environment. Each revision represents an immutable snapshot of the environment definition created when the environment is updated. The response includes revision numbers, timestamps, and the identity of the user who made each change. Use the before parameter to fetch revisions before a specific revision number, and count to limit the number of results returned.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • before integer query optional
      Only return results before this revision
    • count integer query optional
      Maximum number of results to return

    Responses

    200 successful operation
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Environment

    Deprecated. Use ReadEnvironment_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/{version}

    Returns the YAML definition of a Pulumi ESC environment. The response is in application/x-yaml format and includes the environment’s imports, values, provider configurations, and function invocations. Secrets remain in their encrypted form (use DecryptEnvironment to see plaintext secrets, or OpenEnvironment to fully resolve all dynamic values). When a version path parameter is provided, returns the definition for that specific revision.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check Environment

    Deprecated. Use CheckEnvironment_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/versions/{version}/check

    Checks a Pulumi ESC environment definition for errors without applying changes. This validates the YAML definition including imports, provider configurations, function invocations (fn::open, fn::secret, etc.), and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. The response includes any diagnostics or validation errors found in the environment definition. Supports optimistic concurrency control via ETag headers.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      List of diagnostics
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      The environment function summary
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    Decrypt Environment

    Deprecated. Use DecryptEnvironment_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/{version}/decrypt

    Reads the YAML definition for a Pulumi ESC environment with all static secrets decrypted and shown in plaintext. Unlike the standard ReadEnvironment endpoint which returns secrets in their encrypted form, this endpoint resolves fn::secret values to their plaintext representations. The response is returned in application/x-yaml format. This does not resolve dynamic provider values (fn::open); use OpenEnvironment for full resolution. Requires environment open permission.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Responses

    200 OK
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Open Environment

    Deprecated. Use OpenEnvironment_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/versions/{version}/open

    Opens a Pulumi ESC environment, fully resolving all dynamic values, provider integrations (fn::open), interpolation expressions, and secrets. This initiates an access session that evaluates the complete environment definition including all imports. The duration parameter specifies how long the session remains valid using Go duration format (e.g., ‘2h45m’, ‘300ms’). Returns an OpenEnvironmentResponse containing the session ID and any diagnostics. Use the session ID with ReadOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 revision tag 409 the environment has changed since it was read

    List Environment Referrers

    Deprecated. Use ListEnvironmentReferrers_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/{version}/referrers

    Returns a paginated list of entities that reference a Pulumi ESC environment, including other environments that import it and Pulumi stacks that use it in their configuration. The count parameter limits results (range 1-500). Set allRevisions to true to include references across all revisions, and latestStackVersionOnly to true to return only the latest stack version for each referring stack. Use continuationToken for pagination.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • allRevisions boolean query optional
      Whether to include all revisions
    • continuationToken string query optional
      Continuation token for paginated results
    • count integer query optional
      Maximum number of results to return
    • latestStackVersionOnly boolean query optional
      Whether to return only the latest stack version

    Responses

    200 OK
    • referrers map[string]array required
      Map of referrer types to their referrer details
    • continuationToken string optional
      Continuation token for pagination
    Errors: 400 count must be in the range [1, 500] 404 environment 409 the environment has changed since it was read

    Retract Environment Revision

    Deprecated. Use RetractEnvironmentRevision_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/versions/{version}/retract

    Retracts a specific revision of a Pulumi ESC environment, marking it as withdrawn. A retracted revision remains in the history but is no longer considered a valid version for use. The request body may include a reason for the retraction. The revision is identified by the version path parameter. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number

    Request Body

    • replacement integer optional
      The revision number to use as a replacement, if any.
    • reason string optional
      The reason for retracting the revision.

    Responses

    204 No Content
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    List Revision Tags

    Deprecated. Use ListRevisionTags_esc_environments_versions2 instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/{version}/tags

    Returns a paginated list of revision tags for a Pulumi ESC environment. Revision tags are named references pointing to specific revision numbers (e.g., ’latest’, ‘prod’, ‘stable’). They can be used in environment imports and Pulumi stack configuration to pin to a specific version. Use the after parameter for cursor-based pagination and count to limit results.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • version string path required
      The revision version number
    • after string query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags array[EnvironmentRevisionTag] required
      The list of revision tags
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    List Revision Tags

    Deprecated. Use ListRevisionTags_esc_environments_versions instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/tags

    Returns a paginated list of revision tags for a Pulumi ESC environment. Revision tags are named references pointing to specific revision numbers (e.g., ’latest’, ‘prod’, ‘stable’). They can be used in environment imports and Pulumi stack configuration to pin to a specific version. Use the after parameter for cursor-based pagination and count to limit results.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • after string query optional
      Only return results after this value
    • count integer query optional
      Maximum number of results to return

    Responses

    200 OK
    • tags array[EnvironmentRevisionTag] required
      The list of revision tags
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    • nextToken string required
      Token for fetching the next page of results
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Revision Tag

    Deprecated. Use ReadRevisionTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/{envName}/versions/tags/{tagName}

    Returns the details of a specific revision tag for a Pulumi ESC environment. The tag is identified by its name in the URL path. The response includes the tag name and the revision number it points to. Returns 404 if the tag does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Responses

    200 OK
    • name string required
      The name of the tag.
    • revision integer required
      The revision number this tag points to.
    • created string required
      The timestamp when the tag was created.
    • modified string required
      The timestamp when the tag was last modified.
    • editorLogin string optional
      The login name of the user who last edited the tag.
    • editorName string optional
      The display name of the user who last edited the tag.
    Errors: 400 Bad request 404 revision tag 409 the environment has changed since it was read

    Create Revision Tag

    Deprecated. Use CreateRevisionTag_esc_environments_versions_tags instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/{envName}/versions/tags/{tagName}

    Creates a new revision tag for a Pulumi ESC environment. Revision tags are named references that point to specific revision numbers, similar to Git tags. They allow pinning a stable reference to a known-good version of an environment. Tagged versions can be used in imports and Pulumi stack configuration (e.g., myproject/env@prod) to ensure stable references unaffected by subsequent changes. The built-in ’latest’ tag always points to the most recent revision.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Request Body

    • name string required
      The name
    • revision integer optional
      The revision

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 environment 409 the environment has changed since it was read

    Update Revision Tag

    Deprecated. Use UpdateRevisionTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    PATCH /api/preview/environments/{orgName}/{envName}/versions/tags/{tagName}

    Updates an existing revision tag for a Pulumi ESC environment to point to a different revision number. The tag is identified by its name in the URL path. The request body specifies the new revision number. This allows advancing or rolling back a named reference (e.g., moving the ‘prod’ tag to a newer or older revision). Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Request Body

    • revision integer optional
      The revision number to associate with the tag.

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 revision tag 409 the environment has changed since it was read

    Delete Revision Tag

    Deprecated. Use DeleteRevisionTag_esc_environments instead.
    Preview. This endpoint is in preview and may change without notice.
    DELETE /api/preview/environments/{orgName}/{envName}/versions/tags/{tagName}

    Deletes a named revision tag from a Pulumi ESC environment. The tag is identified by its name in the URL path. After deletion, any imports or stack configurations referencing this tag will fail to resolve. The built-in ’latest’ tag cannot be deleted. Returns 204 on success with no response body.

    Request Parameters

    • orgName string path required
      The organization name
    • envName string path required
      The environment name
    • tagName string path required
      The revision tag name

    Responses

    204 No Content
    Errors: 400 Invalid revision tag 404 revision tag 409 the environment has changed since it was read

    List All Environment Tags

    Deprecated. Use ListAllEnvironmentTags_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/tags

    Returns a map of all unique tag names and their distinct values across all Pulumi ESC environments in the organization. The response is a map where each key is a tag name and the value is a list of all distinct values for that tag across all environments. This is useful for building tag-based filtering or discovery UIs.

    Request Parameters

    • orgName string path required
      The organization name

    Responses

    200 successful operation
    Errors: 400 Bad request 404 environment 409 the environment has changed since it was read

    Check YAML

    Deprecated. Use CheckYAML_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/yaml/check

    Checks a raw YAML environment definition for errors without creating or modifying any environment. The YAML definition is provided in the request body and validated for correctness, including imports, provider configurations, function invocations, and interpolation expressions. When the showSecrets query parameter is set to true, secret values are returned in plaintext in the response. This is useful for validating environment definitions before applying them.

    Request Parameters

    • orgName string path required
      The organization name
    • showSecrets boolean query optional
      Whether to show secret values in plaintext

    Responses

    200 OK
    • diagnostics array[EnvironmentDiagnostic] optional
      The list of diagnostics produced during environment evaluation.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    • exprs map[string]EscExpr optional
      Exprs contains the AST for each expression in the environment definition.
    • environmentFunctionSummary EnvironmentFunctionSummary required
      A summary of the functions used in the environment.
    • funcCounts map[string]integer required
      A map of function names to the number of times they are used.
    • rotationPaths array[string] required
      The list of paths that have rotation configured.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the environment.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • executionContext EscEvaluatedExecutionContext optional
      ExecutionContext contains the values + schema for the execution context passed to the root environment.
    • properties map[string]EscValue optional
      Properties contains the detailed values produced by the execution context.
    • schema EscSchemaSchema optional
      Schema contains the schema for Properties.
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Open YAML

    Deprecated. Use OpenYAML_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/environments/{orgName}/yaml/open

    Opens an anonymous Pulumi ESC environment from a raw YAML definition provided in the request body, fully resolving all dynamic values, provider integrations, and secrets. Unlike OpenEnvironment, this does not require a pre-existing environment to be stored. The duration parameter specifies how long the session remains valid using Go duration format. Returns an OpenEnvironmentResponse containing the session ID. Use the session ID with ReadAnonymousOpenEnvironment to retrieve the resolved values.

    Request Parameters

    • orgName string path required
      The organization name
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 environment 409 the environment has changed since it was read

    Read Anonymous Open Environment

    Deprecated. Use ReadAnonymousOpenEnvironment_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/{orgName}/yaml/open/{openSessionID}

    Reads the fully resolved values from an anonymous open environment session that was created via the OpenYAML endpoint. The openSessionID path parameter must match a valid, non-expired session. The optional property query parameter accepts a dot-separated path to retrieve a specific nested value instead of the entire resolved environment (e.g., ‘aws.credentials.accessKeyId’). The response contains the resolved configuration values with secrets decrypted.

    Request Parameters

    • orgName string path required
      The organization name
    • openSessionID string path required
      The session ID returned from the open environment operation
    • property string query optional
      A dot-separated path to a specific property to retrieve from the environment

    Responses

    200 OK
    Errors: 400 invalid query parameter 404 path 409 the environment has changed since it was read

    List Providers

    Deprecated. Use ListProviders_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/providers

    Returns a list of all available Pulumi ESC providers. Providers are integrations that dynamically retrieve configuration and secrets from external sources (e.g., AWS, Azure, Google Cloud, HashiCorp Vault, 1Password) via the fn::open function in environment definitions. Optionally filter by organization using the orgName query parameter to see only providers available to that organization.

    Request Parameters

    • orgName string query optional
      Filter providers available to this organization

    Responses

    200 OK
    • providers array[string] required
      The list of provider names

    Get Provider Schema

    Deprecated. Use GetProviderSchema_esc instead.
    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/environments/providers/{providerName}/schema

    Returns the JSON schema for a Pulumi ESC provider. Providers are integrations that dynamically retrieve configuration and secrets from external sources such as AWS, Azure, Google Cloud, HashiCorp Vault, and others via fn::open. The schema describes the provider’s input parameters, output structure, and configuration options. The provider is identified by name in the URL path.

    Request Parameters

    • providerName string path required
      The provider name

    Responses

    200 OK
    • name string required
      The name of the provider.
    • description string required
      A description of the provider.
    • inputs EscSchemaSchema required
      The input schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    • outputs EscSchemaSchema required
      The output schema for the provider.
    • _defs map[string]EscSchemaSchema optional
      Schema definitions that can be referenced by $ref.
    • _ref string optional
      A JSON reference to a schema definition.
    • anyOf array[EscSchemaSchema] optional
      A list of schemas, any of which the value must match.
    • oneOf array[EscSchemaSchema] optional
      A list of schemas, exactly one of which the value must match.
    • prefixItems array[EscSchemaSchema] optional
      Schemas for the leading items in an array.
    • items EscSchemaSchema optional
      The schema for array items.
    • additionalProperties EscSchemaSchema optional
      The schema for additional object properties.
    • properties map[string]EscSchemaSchema optional
      Schemas for named object properties.
    • type string required
      The type of the schema (e.g. string, number, object, array, boolean).
    • const object optional
      A constant value the instance must equal.
    • enum array[object] optional
      A list of allowed values.
    • multipleOf string optional
      The value must be a multiple of this number.
    • maximum string optional
      The maximum allowed value (inclusive).
    • exclusiveMaximum string optional
      The maximum allowed value (exclusive).
    • minimum string optional
      The minimum allowed value (inclusive).
    • exclusiveMinimum string optional
      The minimum allowed value (exclusive).
    • maxLength string optional
      The maximum allowed string length.
    • minLength string optional
      The minimum allowed string length.
    • pattern string optional
      A regular expression pattern the string must match.
    • maxItems string optional
      The maximum number of items in an array.
    • minItems string optional
      The minimum number of items in an array.
    • uniqueItems boolean optional
      Whether array items must be unique.
    • maxProperties string optional
      The maximum number of properties in an object.
    • minProperties string optional
      The minimum number of properties in an object.
    • required array[string] optional
      The list of required property names.
    • dependentRequired map[string]array optional
      A map of property names to lists of properties they depend on.
    • title string optional
      A short human-readable label for the schema (JSON Schema annotation).
    • description string optional
      A human-readable explanation of the schema’s purpose (JSON Schema annotation).
    • default object optional
      The default value for the schema.
    • deprecated boolean optional
      Whether the schema is deprecated.
    • examples array[object] optional
      Example values for the schema.
    • secret boolean optional
      Pulumi ESC extension: if true, the value should be treated as sensitive and masked in output.
    • rotateOnly array[string] optional
      Pulumi ESC extension: property paths within this schema that support rotation-only updates.
    Errors: 400 Bad request 404 provider 409 the environment has changed since it was read

    Create Environment Draft

    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/esc/environments/{orgName}/{projectName}/{envName}/drafts

    Creates a new draft change request for a Pulumi ESC environment. Drafts allow proposing changes to an environment definition that can be reviewed and approved before being applied. This is part of the approvals workflow for environments. Returns a ChangeRequestRef containing the draft identifier. Requires the Approvals feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name

    Responses

    200 OK
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    Errors: 400 Bad request 404 draft 409 the environment has changed since it was read

    Read Environment Draft

    Preview. This endpoint is in preview and may change without notice.
    GET /api/preview/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}

    Reads the YAML definition for a draft version of a Pulumi ESC environment. Drafts are proposed changes created as part of the approvals workflow. The draft is identified by the changeRequestID path parameter. An optional revision query parameter can target a specific base revision. The response is returned in application/x-yaml format. Requires the Approvals feature to be enabled.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID
    • revision integer query optional
      The environment revision number to target

    Responses

    200 OK
    Errors: 400 Invalid input

    Update Environment Draft

    Preview. This endpoint is in preview and may change without notice.
    PATCH /api/preview/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}

    Updates the YAML definition of an existing draft change request for a Pulumi ESC environment. The draft is identified by the changeRequestID path parameter. The request body contains the updated YAML definition. Returns a ChangeRequestRef on success. Requires the Approvals feature to be enabled for the organization.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID

    Responses

    200 OK
    • changeRequestId string optional
      The change request identifier
    • latestRevisionNumber integer optional
      The latest revision number
    Errors: 400 Bad request 404 draft 409 the environment has changed since it was read

    Open Environment Draft

    Preview. This endpoint is in preview and may change without notice.
    POST /api/preview/esc/environments/{orgName}/{projectName}/{envName}/drafts/{changeRequestID}/open

    Opens a draft version of a Pulumi ESC environment, fully resolving all dynamic values, provider integrations, and secrets for the proposed changes. The duration parameter specifies how long the open session remains valid using Go duration format (e.g., ‘2h’, ‘30m’). An optional revision parameter can target a specific base revision. Returns an OpenEnvironmentResponse containing the session ID for subsequent reads. Requires the Approvals feature.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • envName string path required
      The environment name
    • changeRequestID string path required
      The change request ID
    • duration string query optional
      The session duration, using Go time units: ns, us, ms, s, m, h (e.g. ‘2h’)
    • revision integer query optional
      The environment revision number to target

    Responses

    200 OK
    • id string required
      The unique identifier of the opened environment session.
    • diagnostics array[EnvironmentDiagnostic] optional
      Any diagnostics generated when opening the environment.
    • range EscRange optional
      The source range where the diagnostic occurred.
    • summary string optional
      A summary of the diagnostic message.
    • path string optional
      The path within the environment definition where the diagnostic occurred.
    • severity string optional
      The severity of the diagnostic: “error” or “warning”.
    Errors: 400 invalid query parameter 404 Change Request 409 the environment has changed since it was read