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

Stacks

    The Stacks API lets you create and manage Pulumi stacks — isolated, independently configurable instances of a Pulumi program. The endpoints cover stack lifecycle (create, list, get, transfer, delete), stack configuration, stack tags, and stack update history.

    See Stacks for conceptual documentation.

    List Member Stack Permissions

    GET /api/console/orgs/{orgName}/members/{userLogin}/stacks/{projectName}/{stackName}

    Lists all permissions granted to a specific organization member for a given stack. The response provides a comprehensive view of the user’s access, including permissions inherited from the organization’s default role, permissions granted through team memberships, and permissions explicitly assigned to the user. Returns 404 if the user does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • userLogin string path required
      The user login
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • userInfo UserInfo required
      The user information
    • 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.
    • organizationRole enum required
      The user’s role within the organization
      Values: none, member, admin, potential-member, stack-collaborator, billing-manager
    • organizationDefault enum required
      The organization’s default stack permission level
      Values: 0, 101, 102, 103, 104
    • teamPermissions array[TeamPermission] required
      The list of team-based permissions for this stack
    • team Team required
      The team that has been granted access to the stack.
    • permission enum required
      The permission level the team has on the stack (e.g., read, write, admin).
      Values: 0, 101, 102, 103, 104
    • explicitPermission enum required
      The explicitly assigned permission for this user on this stack
      Values: 0, 101, 102, 103, 104
    Errors: 404 User

    Get Stack Overview

    GET /api/console/stacks/{orgName}/{projectName}/{stackName}/overview

    Returns aggregated stack overview data optimized for display in the Pulumi Cloud web console. The response combines information from multiple sources including the stack’s current state, recent activity, resource counts, and configuration into a single response to minimize round trips.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • tags map[string]string required
      The tags associated with this stack.
    • referencedStacks array[StackReference] required
      The list of stacks referenced by this stack.
    • organization string required
      The organization that owns the referenced stack.
    • routingProject string required
      The project used for routing to the referenced stack.
    • name string required
      The name of the referenced stack.
    • version integer required
      The version of the stack when it was referenced.
    • resources GetStackResourcesResponse required
      The resources belonging to this stack.
    • resources array[ResourceInfo] required
      The list of resources in the stack
    • region string required
      The cloud region where the resources are deployed
    • version integer required
      The update version number

    Update Team Stack Permissions

    PATCH /api/console/stacks/{orgName}/{projectName}/{stackName}/teams/{teamName}

    Modifies the permissions that a specific team has for the referenced stack. This allows setting the team’s permission level (read, write, admin) for a single stack without affecting the team’s permissions on other stacks. Returns 400 if the permission level is invalid or the team does not have the required base permissions. Returns 403 if the caller lacks permission to update the team. Returns 404 if the team does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • teamName string path required
      The team name

    Request Body

    • permissions enum optional
      Permissions the permissions that team membership grants to the stack. Will overwrite any existing permissions the team grants to the stack. A nil value will remove the stack from the team.
      Values: 0, 101, 102, 103, 104

    Responses

    204 No Content
    Errors: 400 Invalid stack permission or team does not have permissions for the program 403 You do not have permission to update this team. 404 Team

    Update Summary

    GET /api/console/stacks/{orgName}/{projectName}/{stackName}/updates/{updateID}/summary

    Returns a human-readable summary of a specific update, identified by its update ID. The summary is formatted in the same manner as generated by the CLI on ‘pulumi up’, including a tree view of resource changes, create/update/delete counts, and the overall result. This endpoint is optimized for display in the Pulumi Cloud web console. Returns 404 if the update does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    200 OK
    • summary string required
      Human-readable text summarizing the update results (resource counts, changes, etc.).
    Errors: 404 Update

    Update Summary Handler Latest

    GET /api/console/stacks/{orgName}/{projectName}/{stackName}/updates/latest/summary

    Returns a human-readable summary of the most recent update to the stack, without requiring a specific update ID. The summary is formatted identically to the UpdateSummary endpoint, including a tree view of resource changes. This is a convenience endpoint that automatically resolves the latest update version. Returns 404 if the stack has no updates.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • summary string required
      Human-readable text summarizing the update results (resource counts, changes, etc.).
    Errors: 404 Update

    Get Stack

    GET /api/stacks/{orgName}/{projectName}/{stackName}

    Retrieves detailed information about a specific stack, including its organization, project, and stack name, the current version number, all associated tags, any active update operations (with the operation kind, author, and start time), and the active update UUID. This is the primary endpoint for inspecting the current state and metadata of a stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    Schema: AppStack
    • id string required
      The logical identifier of the stack.
    • orgName string required
      The organization name
    • projectName string required
      The project name
    • stackName string required
      The stack name
    • currentOperation AppOperationStatus optional
      CurrentOperation provides information about a stack operation in-progress, as applicable.
    • kind enum required
      The type of operation in progress (e.g. ‘update’, ‘preview’, ‘destroy’, ‘refresh’).
      Values: update, preview, refresh, rename, destroy, import, Pupdate, Prefresh, Pdestroy, Pimport, Prename
    • author string required
      The login of the user who initiated this operation.
    • started integer required
      Unix epoch timestamp (seconds) when the operation started.
    • activeUpdate string required
      The active update
    • tags map[string]string optional
      Map of tags
    • config AppStackConfig optional
      Optional cloud-persisted stack configuration. If set, then the stack’s configuration is loaded from the cloud and not a file on disk.
    • environment string required
      Reference to ESC environment to use as stack configuration.
    • secretsProvider string optional
      The stack’s secrets provider.
    • encryptedKey string optional
      The KMS-encrypted ciphertext for the data key used for secrets encryption. Only used for cloud-based secrets providers.
    • encryptionSalt string optional
      The stack’s base64-encoded encryption salt. Only used for passphrase-based secrets providers.
    • version integer required
      The version number

    Delete Stack

    DELETE /api/stacks/{orgName}/{projectName}/{stackName}

    Removes a stack from Pulumi Cloud. By default, the stack must have no resources remaining; attempting to delete a stack that still manages resources will fail. Use the ‘force’ query parameter set to true to override this check and force deletion even when resources remain. The deletion is a soft-delete that hides the stack from normal queries. Returns 204 with no content on success.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • force boolean query optional
      When true, forces deletion even if the stack still has resources

    Responses

    204 No Content
    Errors: 400 invalid query parameter

    Get Stack Activity

    GET /api/stacks/{orgName}/{projectName}/{stackName}/activity

    Returns the activity history for a stack, including updates, configuration changes, and other operations. Supports pagination via page and pageSize parameters (page 0 returns all results). Returns 400 if the page parameter is invalid.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • page integer query optional
      Page number for paginated results (0-indexed, where 0 returns all results)
    • pageSize integer query optional
      Number of results per page (must be >= 1 when page > 0)

    Responses

    200 OK
    • activity array[Activity] required
      The list of activity records for the stack
    • update UpdateInfo optional
      The update
    • deployment DeploymentWithRelatedUpdates optional
      The deployment data
    • itemsPerPage integer required
      The number of items per page
    • total integer required
      The total number of activity records
    Errors: 400 Invalid 'page' value.

    Get Stacks Annotation

    GET /api/stacks/{orgName}/{projectName}/{stackName}/annotations/{kind}

    Retrieves an annotation for a stack, identified by the annotation kind. Annotations are structured metadata that can be attached to stacks for purposes such as compliance tracking, custom metadata, or integration data. The optional ‘source’ and ‘version’ query parameters allow filtering by annotation source and specific version. Returns 404 if the annotation does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • kind string path required
      The annotation kind
    • source string query optional
      The annotation source
    • version integer query optional
      The annotation version number, used for filtering by a specific version

    Responses

    200 OK
    Errors: 404 Annotation

    Upsert Stacks Annotations

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/annotations/{kind}

    Creates or updates an annotation for a stack, identified by the annotation kind. Annotations are structured metadata that can be attached to stacks. The ‘version’ query parameter supports optimistic concurrency control: if provided, the update only succeeds if the current annotation version matches. Returns 409 if the annotation has changed since it was read (version conflict).

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • kind string path required
      The annotation kind
    • source string query optional
      The annotation source
    • version integer query optional
      The expected annotation version for optimistic concurrency control

    Request Body

    Responses

    204 No Content
    Errors: 409 the annotation has changed since it was read

    Batch Decrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/batch-decrypt

    Decrypts a set of secret values in a single request using the stack’s encryption key. The request body contains an array of base64-encoded ciphertexts. The response maps each ciphertext to its decrypted plaintext value. This is a more efficient alternative to calling the single-value decrypt endpoint multiple times. Returns 400 if the request body is invalid or if message authentication fails. Returns 413 if the request body exceeds the maximum allowed content size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • ciphertexts array[array] required
      List of ciphertexts

    Responses

    200 OK
    • plaintexts map[string]array required
      Map of plaintexts
    Errors: 400 body must be a JSON object or only "ciphertexts" valid within request body or ciphertexts was not an array or invalid base64 encoding or Message authentication failed 404 Not found 413 Content Too Large

    Batch Encrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/batch-encrypt

    Encrypts a set of plaintext values in a single request using the stack’s encryption key. This is a more efficient alternative to calling the single-value encrypt endpoint multiple times. The response contains a map of the original plaintext values to their corresponding base64-encoded ciphertexts. Returns 413 if the request body exceeds the maximum allowed content size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • plaintexts array[array] required
      The values to encrypt.

    Responses

    200 OK
    • ciphertexts array[array] required
      The encrypted values, in order of the plaintexts from the request.
    Errors: 413 Request Content Too Large

    List Stack Permissions

    Deprecated.
    GET /api/stacks/{orgName}/{projectName}/{stackName}/collaborators

    Lists all collaborators for a stack, including their permission levels. This includes collaborators who have been invited but have not yet accepted their invitations. The response includes each collaborator’s username and their permission level for the stack. This endpoint is deprecated.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • users array[UserPermission] required
      Other users explicitly added as collaborators on this stack. (Those inheriting permissions from the org aren’t included.)
    • user UserInfo required
      The user who has been granted access to the stack.
    • permission enum required
      The permission level the user has on the stack (e.g., read, write, admin).
      Values: 0, 101, 102, 103, 104
    • stackCreatorUserName string optional
      StackCreatorUserName is the user name of the stack creator. If stack creator’s permissions have been removed then this will be null and will be omitted from the json response.

    Delete Stack Permission

    DELETE /api/stacks/{orgName}/{projectName}/{stackName}/collaborators/{userName}

    Removes a specific user’s direct permission to access a stack. This only removes permissions explicitly granted to the user; permissions inherited from team membership or organization-level defaults are not affected. Returns 404 if the user does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • userName string path required
      The user name

    Responses

    204 No Content
    Errors: 404 User

    Decrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/decrypt

    Decrypts a single secret value using the stack’s encryption key. The request body contains the base64-encoded ciphertext. The response contains the decrypted plaintext value. For decrypting multiple values in a single request, use the BatchDecryptValue endpoint instead. Returns 413 if the request body exceeds the maximum allowed content size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • ciphertext array[string] required
      The value to decrypt.

    Responses

    200 OK
    • plaintext array[string] required
      The decrypted value.
    Errors: 413 Request Content Too Large

    Log Only Batch Decrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/decrypt/log-batch-decryption

    Records an audit log entry for a batch decryption event performed by a third-party secrets provider. When stacks use external secrets providers (such as AWS KMS, Azure Key Vault, or HashiCorp Vault), decryption happens client-side; this endpoint allows the CLI to report that decryption occurred for audit tracking purposes.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • secretName string optional
      The secret name
    • commandName string optional
      The command name

    Responses

    204 No Content

    Log Only Decrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/decrypt/log-decryption

    Records an audit log entry for a single-value decryption event performed by a third-party secrets provider. When stacks use external secrets providers (such as AWS KMS, Azure Key Vault, or HashiCorp Vault), decryption happens client-side; this endpoint allows the CLI to report that decryption occurred for audit tracking.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • secretName string optional
      The secret name
    • commandName string optional
      The command name

    Responses

    204 No Content

    Create Update For Destroy

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy

    Creates a new destroy update for the given stack. A destroy update tears down all resources managed by the stack. This only creates the update record; the update must subsequently be started via the StartUpdateForDestroy endpoint. Enforces stack update concurrency checks to prevent conflicting simultaneous operations.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • name string required
      Properties from the Project file. Subset of pack.Package.
    • runtime string required
      The runtime
    • main string required
      The main entry point
    • description string required
      The description
    • options AppUpdateOptions required
      The options
    • localPolicyPackPaths array[string] required
      File system paths to local policy packs to apply during this update.
    • color string required
      Terminal color mode for output rendering (e.g. ‘always’, ’never’, ‘auto’).
    • dryRun boolean required
      If true, perform a preview without actually applying changes.
    • parallel integer required
      Maximum number of resource operations to perform in parallel. 0 or -1 for unlimited.
    • showConfig boolean required
      If true, include configuration values in the update output.
    • showReplacementSteps boolean required
      If true, include detailed replacement steps in the update output.
    • showNames boolean required
      If true, include unchanged resources in the update output.
    • summary boolean required
      If true, only show a summary of changes rather than full details.
    • debug boolean required
      If true, enable verbose debug logging during the update.
    • config map[string]AppConfigValue required
      Configuration values.
    • metadata AppUpdateMetadata required
      The metadata
    • message string required
      Message is an optional message associated with the update.
    • environment map[string]string required
      Environment contains optional data from the deploying environment. e.g. the current source code control commit information.

    Responses

    200 OK
    • updateID string required
      UpdateID is the opaque identifier of the requested update. This value is needed to begin an update, as well as poll for its progress.
    • requiredPolicies array[AppRequiredPolicy] optional
      RequiredPolicies is a list of required Policy Packs to run during the update.
    • name string required
      The name (unique and URL-safe) of the required Policy Pack.
    • version integer required
      The version of the required Policy Pack.
    • versionTag string required
      The version tag of the required Policy Pack.
    • displayName string required
      The pretty name of the required Policy Pack.
    • packLocation string optional
      Where the Policy Pack can be downloaded from.
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This is map a of policies mapped to their configuration. Each individual configuration must comply with the JSON schema for each Policy within the Policy Pack.
    • environments array[string] optional
      References to ESC environments whose resolved values the CLI should inject into the policy pack process.
    • messages array[AppMessage] optional
      Messages is a list of messages that should be displayed to the user.
    • severity enum optional
      Severity is the severity of the message.
      Values: warning, error, info
    • message string required
      Message is the message to display to the user.
    • aiSettings AppAISettingsForUpdate optional
      The ai settings
    • copilotIsEnabled boolean required
      Whether the Pulumi Copilot AI assistant is enabled for this stack.

    Get Update Status For Destroy

    GET /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}

    Returns the current status and results of a destroy update, including whether it is still in progress, succeeded, or failed. Supports pagination of results via the continuationToken query parameter.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results

    Responses

    200 OK
    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled
    • events array[AppUpdateEvent] required
      List of events
    • index string required
      The index
    • kind enum required
      The kind
      Values: stdout, stderr
    • fields map[string]object required
      The fields
    • continuationToken string optional

      ContinuationToken is an opaque value used to indiciate the end of the returned update results. Pass it in the next request to obtain subsequent update events.

      The same continuation token may be returned if no new update events are available, but the update is still in-progress.

      A value of nil means that no new updates will be available. Everything has been returned to the client and the update has completed.

    Errors: 400 invalid query parameter

    Start Update For Destroy

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}

    Starts execution of a previously created destroy update. The update must have been created via CreateUpdateForDestroy first. Returns a lease token and version number for tracking the update. Returns 404 if the update does not exist, or 409 if another update is already in progress on the stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • tags map[string]string optional
      Tags contains an updated set of Tags for the stack. If non-nil, will replace the current set of tags associated with the stack.
    • journalVersion integer optional
      JournalVersion indicates the maximum journal version the client supports. If 0, journaling is not supported.

    Responses

    200 OK
    • version integer required
      Version is the version of the program once the update is complete. (Will be the current, unchanged value for previews.)
    • token string optional
      Token is the lease token (if any) to be used to authorize operations on this update.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    • journalVersion integer optional
      JournalVersion indicates the maximum version of journal entries that should be sent to the server. Is expected to be less or equal than the JournalVersion we sent in the update request. If 0, journaling is disabled.
    Errors: 404 Update 409 Another update is currently in progress.

    Cancel Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/cancel

    Requests cancellation of a service-managed update that is currently in progress. The update must have been started (returns 409 if it has not). Returns 404 if the specified update does not exist. The cancellation is processed asynchronously and the update will transition to a cancelled state.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    204 No Content
    Errors: 404 Update 409 The Update has not started

    Patch Update Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/checkpoint

    Uploads a new checkpoint (deployment state snapshot) for a service-managed update that is currently in progress. The checkpoint contains the complete current state of all resources. The request must contain a valid checkpoint object. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • isInvalid boolean required
      Whether invalid
    • version integer required
      The version number
    • features array[string] optional
      The features
    • deployment object optional
      The deployment data

    Responses

    204 No Content
    Errors: 400 request must contain a checkpoint or using the IsInvalid flag is not longer supported 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Checkpoint Delta

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/checkpointdelta

    Uploads a checkpoint delta for a service-managed update that is currently in progress. Rather than uploading the complete checkpoint state, this endpoint accepts an incremental delta that is applied to the existing checkpoint, reducing the payload size. The delta is persisted in the format as provided. Supports checksum validation for data integrity. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      Protocol version.
    • checkpointHash string required
      SHA256 hash of the result of aplying the DeploymentDelta to the previously saved deployment.
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.
    • deploymentDelta object optional
      Textual diff that recovers the desired deployment JSON when applied to the previously saved deployment JSON.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed or failed to apply checkpoint delta or validating checksum 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Verbatim Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/checkpointverbatim

    Uploads a checkpoint for a service-managed update as a verbatim byte array, bypassing JSON marshalling. Unlike PatchUpdateCheckpoint which accepts a structured deployment object and re-serializes it (which may compact data), this endpoint preserves the exact bytes provided by the client and uploads them directly to blob storage. This maintains byte-level fidelity of the checkpoint data. Returns 403 for preview operations. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      The version number
    • untypedDeployment object optional
      The untyped deployment
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Complete Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/complete

    Marks a service-managed update as complete. The request body must include the final status of the update. Returns 400 if the status is unrecognized. Returns 409 if the update has not started, has been cancelled, has already timed out, or has already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled

    Responses

    204 No Content
    Errors: 400 unrecognized status 404 Update 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Record Engine Event

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/events

    Records a single engine event sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations or diagnostic messages. For better performance, consider using RecordEngineEventBatch to send multiple events in a single request. Returns 400 if no event data is provided, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • message string required
      The message content
    • color string required
      The output color
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • urn string optional
      The Pulumi URN
    • prefix string optional
      The prefix
    • message string required
      The message content
    • color string required
      The output color
    • severity string required
      Severity is one of “info”, “info#err”, “warning”, or “error”.
    • streamID integer optional
      The stream identifier
    • ephemeral boolean optional
      Whether ephemeral is enabled
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • config map[string]string required
      Config contains the keys and values for the update. Encrypted configuration values may be blinded.
    • summaryEvent AppSummaryEvent optional
      The summary event
    • maybeCorrupt boolean required
      MaybeCorrupt is set if one or more of the resources is in an invalid state.
    • durationSeconds integer required
      Duration is the number of seconds the update was executing.
    • resourceChanges map[string]integer required
      ResourceChanges contains the count for resource change by type.
    • PolicyPacks map[string]string required
      Policy Packs run during the update, as a map from policy pack name to version. For newer clients, the value is the version tag prefixed with v; for older clients it is the raw version.
    • isPreview boolean required
      IsPreview indicates whether this is a preview or an update.
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • metadata AppStepEventMetadata required
      The metadata
    • status integer required
      The current status
    • steps integer required
      The steps
    • policyEvent AppPolicyEvent optional
      The policy event
    • resourceUrn string optional
      The resource urn
    • message string required
      The message content
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • enforcementLevel string required
      EnforcementLevel is one of “warning”, “mandatory”, “remediate”, or “none”.
    • severity string optional
      Severity is one of “low”, “medium”, “high”, or “critical”. An empty string is omitted and represents an unspecified severity.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • resourceUrn string optional
      The resource urn
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • before map[string]object optional
      Map of before
    • after map[string]object optional
      Map of after
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • resourceUrn string required
      The URN of the resource being analyzed.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • resourceUrn string required
      The URN of the resource being remediated.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of stack policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of stack policies that failed (i.e. produced violations).
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • config map[string]object optional
      The configuration
    • progressEvent AppProgressEvent optional
      The progress event
    • type enum required
      The type of process (e.g. plugin download, plugin install).
      Values: plugin-download, plugin-install
    • id string required
      A unique identifier for the process.
    • message string required
      A message accompanying the process.
    • received integer required
      The number of items completed so far (e.g. bytes received, items installed, etc.)
    • total integer required
      The total number of items that must be completed.
    • done boolean required
      True if and only if the process has completed.
    • errorEvent AppErrorEvent optional
      The error event
    • error string required
      Error is the error message.

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Record Engine Event Batch

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/events/batch

    Records a batch of engine events sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations (create, update, delete, etc.) and diagnostic messages. Batching events reduces the number of API calls during an update. Returns 400 if no events are provided in the batch, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • events array[AppEngineEvent] required
      List of events
    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • summaryEvent AppSummaryEvent optional
      The summary event
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • policyEvent AppPolicyEvent optional
      The policy event
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • progressEvent AppProgressEvent optional
      The progress event
    • errorEvent AppErrorEvent optional
      The error event

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Create Journal Entries

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/journalentries

    Creates new journal entries for the specified update. Journal entries record the progression of resource operations during an update, tracking state transitions for each resource. The include_non_activated query parameter controls whether non-activated events are included. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned

    Request Body

    • entries array[AppJournalEntry] optional
      List of entries
    • version integer required
      Version of the journal entry format.
    • kind enum required
      Kind of journal entry.
      Values: 0, 1, 2, 3, 4, 5, 6, 7
    • sequenceID integer required
      Sequence ID of the operation.
    • operationID integer required
      ID of the operation this journal entry is associated with.
    • removeOld integer required
      ID for the delete Operation that this journal entry is associated with.
    • removeNew integer required
      ID for the delete Operation that this journal entry is associated with.
    • pendingReplacementOld integer optional
      PendingReplacementOld is the index of the resource that’s to be marked as pending replacement
    • pendingReplacementNew integer optional
      PendingReplacementNew is the operation ID of the new resource to be marked as pending replacement
    • deleteOld integer optional
      DeleteOld is the index of the resource that’s to be marked as deleted.
    • deleteNew integer optional
      DeleteNew is the operation ID of the new resource to be marked as deleted.
    • state AppResourceV3 optional
      The resource state associated with this journal entry.
    • operation AppOperationV2 optional
      The operation associated with this journal entry, if any.
    • isRefresh boolean optional
      If true, this journal entry is part of a refresh operation.
    • secretsProvider AppSecretsProvidersV1 optional
      The secrets manager associated with this journal entry, if any.
    • newSnapshot AppDeploymentV3 optional
      NewSnapshot is the new snapshot that this journal entry is associated with.

    Responses

    204 No Content

    Append Update Log Entry

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/log

    Appends a log entry to the specified update’s log stream. Log entries are used to record diagnostic messages, status information, and other output generated during a stack update operation. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • kind string required
      The kind
    • fields map[string]object required
      The fields

    Responses

    204 No Content

    Renew Update Lease

    POST /api/stacks/{orgName}/{projectName}/{stackName}/destroy/{updateID}/renew_lease

    Renews the lease for a service-managed update that is currently in progress. Leases prevent concurrent operations on the same stack and must be periodically renewed to indicate the update is still active. The renewal duration must be between 0 and 300 seconds. Returns 409 if the update is not currently in progress.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • token string required
      The current, valid lease token. DEPRECATED as of Pulumi API version 5+. Pulumi API will expect the update token in the Authorization header instead of this property. This property will be removed when the minimum supported API version on the service is raised to 5.
    • duration integer required
      The duration for which to renew the lease in seconds (maximum 300).

    Responses

    200 OK
    • token string required
      The renewed token.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    Errors: 400 Renewal duration must be between 0 and 300 seconds 409 The Update is not in progress.

    List Downstream Stack References

    GET /api/stacks/{orgName}/{projectName}/{stackName}/downstreamreferences

    Returns all stacks that reference the specified stack as a dependency in their Pulumi programs (via StackReference). This is useful for understanding the impact of changes to a stack, as downstream stacks may consume outputs from this stack. The response includes each referencing stack’s organization, project, name, and version.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • referencedStacks array[StackReference] required
      The list of downstream stack references
    • organization string required
      The organization that owns the referenced stack.
    • routingProject string required
      The project used for routing to the referenced stack.
    • name string required
      The name of the referenced stack.
    • version integer required
      The version of the stack when it was referenced.

    Encrypt Value

    POST /api/stacks/{orgName}/{projectName}/{stackName}/encrypt

    Encrypts a single plaintext value using the stack’s encryption key. The request body contains the plaintext value to encrypt. The response contains the base64-encoded ciphertext. For encrypting multiple values in a single request, use the BatchEncryptValue endpoint instead. Returns 413 if the request body exceeds the maximum allowed content size.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • plaintext array[string] required
      The value to encrypt.

    Responses

    200 OK
    • ciphertext array[string] required
      The encrypted value.
    Errors: 413 Request Content Too Large

    Export Stack

    GET /api/stacks/{orgName}/{projectName}/{stackName}/export

    Exports the current, complete state of the stack as an untyped deployment object. The response includes the deployment version, manifest (containing timestamps and plugin information), secrets providers configuration, and the full array of resources with their URNs, types, inputs, outputs, and dependency information. This endpoint is commonly used for stack state backup, migration between backends, or programmatic inspection of resource states.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • version integer optional
      The schema version of the encoded deployment.
    • features array[string] optional
      An optional list of features used by this deployment. The CLI will error when reading a deployment that uses a feature that is not supported by that version of the CLI. Only honored when version is 4 or greater.
    • deployment object optional
      The opaque Pulumi deployment payload. Treated as a raw JSON value so the contents are preserved verbatim across client and server versions.

    Export Stack At Version

    GET /api/stacks/{orgName}/{projectName}/{stackName}/export/{version}

    Exports the complete stack state at a specific historical update version, rather than the current version. This allows retrieving the deployment snapshot as it existed after a particular update completed. The response format is identical to the ExportStack endpoint. Returns 400 if the version parameter is invalid, or 404 if the specified version does not exist for this stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number

    Responses

    200 OK
    • version integer optional
      The schema version of the encoded deployment.
    • features array[string] optional
      An optional list of features used by this deployment. The CLI will error when reading a deployment that uses a feature that is not supported by that version of the CLI. Only honored when version is 4 or greater.
    • deployment object optional
      The opaque Pulumi deployment payload. Treated as a raw JSON value so the contents are preserved verbatim across client and server versions.
    Errors: 400 invalid 'version' parameter 404 Stack Version

    Import Stack

    POST /api/stacks/{orgName}/{projectName}/{stackName}/import

    Imports a deployment state snapshot into the specified stack, replacing the current state. The request body must contain a complete untyped deployment object with the same format returned by the ExportStack endpoint. This is commonly used for state migration between backends, state repair, or restoring from backup. Returns 400 if the deployment contains encrypted secrets from a different stack. Returns 409 if another update is currently in progress on the stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • version integer optional
      The schema version of the encoded deployment.
    • features array[string] optional
      An optional list of features used by this deployment. The CLI will error when reading a deployment that uses a feature that is not supported by that version of the CLI. Only honored when version is 4 or greater.
    • deployment object optional
      The opaque Pulumi deployment payload. Treated as a raw JSON value so the contents are preserved verbatim across client and server versions.

    Responses

    200 OK
    • updateId string required
      The update identifier
    Errors: 400 cannot import deployment with encrypted secrets from a different stack 409 Another update is currently in progress.

    Get Stack Metadata

    GET /api/stacks/{orgName}/{projectName}/{stackName}/metadata

    Returns metadata about a stack including the requesting user’s permission level and the stack’s notification settings (such as whether to notify on update success or failure). This endpoint provides access control and configuration metadata without returning the full stack details.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • orgName string required
      The organization that owns the stack.
    • projectName string required
      The project that contains the stack.
    • stackName string required
      The stack name within the project.
    • ownedBy UserInfo required
      The user with ownership of this stack
    • 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.
    • notificationSettings StackNotificationSettings required
      The notification settings for this stack.
    • notifyUpdateFailure boolean required
      Whether to send a notification when a stack update fails.
    • notifyUpdateSuccess boolean required
      Whether to send a notification when a stack update succeeds.

    Update Stack Notification Settings

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/notifications/settings

    Updates the notification settings for a stack, controlling whether notifications are sent on update success or failure. The request body specifies the notification preferences. Returns the updated stack metadata including the new notification settings.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • notifyUpdateFailure boolean required
      Whether to send notifications on update failure.
    • notifyUpdateSuccess boolean required
      Whether to send notifications on update success.

    Responses

    200 OK
    • orgName string required
      The organization that owns the stack.
    • projectName string required
      The project that contains the stack.
    • stackName string required
      The stack name within the project.
    • ownedBy UserInfo required
      The user with ownership of this stack
    • 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.
    • notificationSettings StackNotificationSettings required
      The notification settings for this stack.
    • notifyUpdateFailure boolean required
      Whether to send a notification when a stack update fails.
    • notifyUpdateSuccess boolean required
      Whether to send a notification when a stack update succeeds.

    Reassign Stack Ownership

    POST /api/stacks/{orgName}/{projectName}/{stackName}/ownership

    Changes the ownership of the specified stack 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
    • stackName string path required
      The stack 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.

    Create Update For Preview

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview

    Creates a new preview update for the given stack. A preview shows what changes would be made without actually applying them, similar to a dry run. This only creates the update record; the update must subsequently be started via the StartUpdateForPreview endpoint. Enforces stack update concurrency checks.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • name string required
      Properties from the Project file. Subset of pack.Package.
    • runtime string required
      The runtime
    • main string required
      The main entry point
    • description string required
      The description
    • options AppUpdateOptions required
      The options
    • localPolicyPackPaths array[string] required
      File system paths to local policy packs to apply during this update.
    • color string required
      Terminal color mode for output rendering (e.g. ‘always’, ’never’, ‘auto’).
    • dryRun boolean required
      If true, perform a preview without actually applying changes.
    • parallel integer required
      Maximum number of resource operations to perform in parallel. 0 or -1 for unlimited.
    • showConfig boolean required
      If true, include configuration values in the update output.
    • showReplacementSteps boolean required
      If true, include detailed replacement steps in the update output.
    • showNames boolean required
      If true, include unchanged resources in the update output.
    • summary boolean required
      If true, only show a summary of changes rather than full details.
    • debug boolean required
      If true, enable verbose debug logging during the update.
    • config map[string]AppConfigValue required
      Configuration values.
    • metadata AppUpdateMetadata required
      The metadata
    • message string required
      Message is an optional message associated with the update.
    • environment map[string]string required
      Environment contains optional data from the deploying environment. e.g. the current source code control commit information.

    Responses

    200 OK
    • updateID string required
      UpdateID is the opaque identifier of the requested update. This value is needed to begin an update, as well as poll for its progress.
    • requiredPolicies array[AppRequiredPolicy] optional
      RequiredPolicies is a list of required Policy Packs to run during the update.
    • name string required
      The name (unique and URL-safe) of the required Policy Pack.
    • version integer required
      The version of the required Policy Pack.
    • versionTag string required
      The version tag of the required Policy Pack.
    • displayName string required
      The pretty name of the required Policy Pack.
    • packLocation string optional
      Where the Policy Pack can be downloaded from.
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This is map a of policies mapped to their configuration. Each individual configuration must comply with the JSON schema for each Policy within the Policy Pack.
    • environments array[string] optional
      References to ESC environments whose resolved values the CLI should inject into the policy pack process.
    • messages array[AppMessage] optional
      Messages is a list of messages that should be displayed to the user.
    • severity enum optional
      Severity is the severity of the message.
      Values: warning, error, info
    • message string required
      Message is the message to display to the user.
    • aiSettings AppAISettingsForUpdate optional
      The ai settings
    • copilotIsEnabled boolean required
      Whether the Pulumi Copilot AI assistant is enabled for this stack.

    Get Update Status For Preview

    GET /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}

    Returns the current status and results of a preview update, including whether it is still in progress, succeeded, or failed. Supports pagination of results via the continuationToken query parameter.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results

    Responses

    200 OK
    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled
    • events array[AppUpdateEvent] required
      List of events
    • index string required
      The index
    • kind enum required
      The kind
      Values: stdout, stderr
    • fields map[string]object required
      The fields
    • continuationToken string optional

      ContinuationToken is an opaque value used to indiciate the end of the returned update results. Pass it in the next request to obtain subsequent update events.

      The same continuation token may be returned if no new update events are available, but the update is still in-progress.

      A value of nil means that no new updates will be available. Everything has been returned to the client and the update has completed.

    Errors: 400 invalid query parameter

    Start Update For Preview

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}

    Starts execution of a previously created preview update. The update must have been created via CreateUpdateForPreview first. Returns a lease token and version number for tracking the update. Returns 404 if the update does not exist, or 409 if another update is already in progress on the stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • tags map[string]string optional
      Tags contains an updated set of Tags for the stack. If non-nil, will replace the current set of tags associated with the stack.
    • journalVersion integer optional
      JournalVersion indicates the maximum journal version the client supports. If 0, journaling is not supported.

    Responses

    200 OK
    • version integer required
      Version is the version of the program once the update is complete. (Will be the current, unchanged value for previews.)
    • token string optional
      Token is the lease token (if any) to be used to authorize operations on this update.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    • journalVersion integer optional
      JournalVersion indicates the maximum version of journal entries that should be sent to the server. Is expected to be less or equal than the JournalVersion we sent in the update request. If 0, journaling is disabled.
    Errors: 404 Update 409 Another update is currently in progress.

    Cancel Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/cancel

    Requests cancellation of a service-managed update that is currently in progress. The update must have been started (returns 409 if it has not). Returns 404 if the specified update does not exist. The cancellation is processed asynchronously and the update will transition to a cancelled state.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    204 No Content
    Errors: 404 Update 409 The Update has not started

    Complete Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/complete

    Marks a service-managed update as complete. The request body must include the final status of the update. Returns 400 if the status is unrecognized. Returns 409 if the update has not started, has been cancelled, has already timed out, or has already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled

    Responses

    204 No Content
    Errors: 400 unrecognized status 404 Update 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Get Engine Events

    GET /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/events

    Returns the engine events for the specified update. Engine events represent individual resource operations and diagnostic messages produced during the update. Supports pagination via continuation tokens and filtering by engine event type codes or resource URN. The include_non_activated parameter controls whether events not yet marked as activated are included.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned
    • type array query optional
      Filter results to only include events matching these engine event type codes
    • urn string query optional
      Filter results to only include events for the specified resource URN

    Responses

    200 OK
    • events array[EngineEvent] required
      Events are returned sorted by their internal sequence number (not exposed to the API). So the last Event in the slice is the most recent event which was stored in the database. (Should sort identical to timestamp, but may not if we support parallel writes.)
    • timestamp integer required
      Timestamp of the event (seconds).
    • type string required
      Type describes which payload object is associated with the event, such that in JavaScript event[event.type] is never undefined/null.
    • cancelEvent AppCancelEvent optional
      Present when type is cancelEvent.
    • stdoutEvent AppStdoutEngineEvent optional
      Present when type is stdoutEvent.
    • diagnosticEvent AppDiagnosticEvent optional
      Present when type is diagnosticEvent.
    • preludeEvent AppPreludeEvent optional
      Present when type is preludeEvent.
    • summaryEvent AppSummaryEvent optional
      Present when type is summaryEvent.
    • resourcePreEvent AppResourcePreEvent optional
      Present when type is resourcePreEvent.
    • resOutputsEvent AppResOutputsEvent optional
      Present when type is resOutputsEvent.
    • resOpFailedEvent AppResOpFailedEvent optional
      Present when type is resOpFailedEvent.
    • policyEvent AppPolicyEvent optional
      Present when type is policyEvent.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      Present when type is policyRemediationEvent.
    • policyLoadEvent AppPolicyLoadEvent optional
      Present when type is policyLoadEvent.
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      Present when type is policyAnalyzeSummaryEvent.
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      Present when type is policyRemediateSummaryEvent.
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      Present when type is policyAnalyzeStackSummaryEvent.
    • startDebuggingEvent AppStartDebuggingEvent optional
      Present when type is startDebuggingEvent.
    • progressEvent AppProgressEvent optional
      Present when type is progressEvent.
    • errorEvent AppErrorEvent optional
      Present when type is errorEvent.
    • continuationToken string required
      ContinuationToken is an opaque value the client can send to fetch more recent events if the update is still in progress. Will be nil once all events have been returned and the update is complete.
    Errors: 400 Invalid continuation token.

    Record Engine Event

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/events

    Records a single engine event sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations or diagnostic messages. For better performance, consider using RecordEngineEventBatch to send multiple events in a single request. Returns 400 if no event data is provided, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • message string required
      The message content
    • color string required
      The output color
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • urn string optional
      The Pulumi URN
    • prefix string optional
      The prefix
    • message string required
      The message content
    • color string required
      The output color
    • severity string required
      Severity is one of “info”, “info#err”, “warning”, or “error”.
    • streamID integer optional
      The stream identifier
    • ephemeral boolean optional
      Whether ephemeral is enabled
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • config map[string]string required
      Config contains the keys and values for the update. Encrypted configuration values may be blinded.
    • summaryEvent AppSummaryEvent optional
      The summary event
    • maybeCorrupt boolean required
      MaybeCorrupt is set if one or more of the resources is in an invalid state.
    • durationSeconds integer required
      Duration is the number of seconds the update was executing.
    • resourceChanges map[string]integer required
      ResourceChanges contains the count for resource change by type.
    • PolicyPacks map[string]string required
      Policy Packs run during the update, as a map from policy pack name to version. For newer clients, the value is the version tag prefixed with v; for older clients it is the raw version.
    • isPreview boolean required
      IsPreview indicates whether this is a preview or an update.
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • metadata AppStepEventMetadata required
      The metadata
    • status integer required
      The current status
    • steps integer required
      The steps
    • policyEvent AppPolicyEvent optional
      The policy event
    • resourceUrn string optional
      The resource urn
    • message string required
      The message content
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • enforcementLevel string required
      EnforcementLevel is one of “warning”, “mandatory”, “remediate”, or “none”.
    • severity string optional
      Severity is one of “low”, “medium”, “high”, or “critical”. An empty string is omitted and represents an unspecified severity.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • resourceUrn string optional
      The resource urn
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • before map[string]object optional
      Map of before
    • after map[string]object optional
      Map of after
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • resourceUrn string required
      The URN of the resource being analyzed.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • resourceUrn string required
      The URN of the resource being remediated.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of stack policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of stack policies that failed (i.e. produced violations).
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • config map[string]object optional
      The configuration
    • progressEvent AppProgressEvent optional
      The progress event
    • type enum required
      The type of process (e.g. plugin download, plugin install).
      Values: plugin-download, plugin-install
    • id string required
      A unique identifier for the process.
    • message string required
      A message accompanying the process.
    • received integer required
      The number of items completed so far (e.g. bytes received, items installed, etc.)
    • total integer required
      The total number of items that must be completed.
    • done boolean required
      True if and only if the process has completed.
    • errorEvent AppErrorEvent optional
      The error event
    • error string required
      Error is the error message.

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Record Engine Event Batch

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/events/batch

    Records a batch of engine events sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations (create, update, delete, etc.) and diagnostic messages. Batching events reduces the number of API calls during an update. Returns 400 if no events are provided in the batch, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • events array[AppEngineEvent] required
      List of events
    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • summaryEvent AppSummaryEvent optional
      The summary event
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • policyEvent AppPolicyEvent optional
      The policy event
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • progressEvent AppProgressEvent optional
      The progress event
    • errorEvent AppErrorEvent optional
      The error event

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Create Journal Entries

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/journalentries

    Creates new journal entries for the specified update. Journal entries record the progression of resource operations during an update, tracking state transitions for each resource. The include_non_activated query parameter controls whether non-activated events are included. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned

    Request Body

    • entries array[AppJournalEntry] optional
      List of entries
    • version integer required
      Version of the journal entry format.
    • kind enum required
      Kind of journal entry.
      Values: 0, 1, 2, 3, 4, 5, 6, 7
    • sequenceID integer required
      Sequence ID of the operation.
    • operationID integer required
      ID of the operation this journal entry is associated with.
    • removeOld integer required
      ID for the delete Operation that this journal entry is associated with.
    • removeNew integer required
      ID for the delete Operation that this journal entry is associated with.
    • pendingReplacementOld integer optional
      PendingReplacementOld is the index of the resource that’s to be marked as pending replacement
    • pendingReplacementNew integer optional
      PendingReplacementNew is the operation ID of the new resource to be marked as pending replacement
    • deleteOld integer optional
      DeleteOld is the index of the resource that’s to be marked as deleted.
    • deleteNew integer optional
      DeleteNew is the operation ID of the new resource to be marked as deleted.
    • state AppResourceV3 optional
      The resource state associated with this journal entry.
    • operation AppOperationV2 optional
      The operation associated with this journal entry, if any.
    • isRefresh boolean optional
      If true, this journal entry is part of a refresh operation.
    • secretsProvider AppSecretsProvidersV1 optional
      The secrets manager associated with this journal entry, if any.
    • newSnapshot AppDeploymentV3 optional
      NewSnapshot is the new snapshot that this journal entry is associated with.

    Responses

    204 No Content

    Append Update Log Entry

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/log

    Appends a log entry to the specified update’s log stream. Log entries are used to record diagnostic messages, status information, and other output generated during a stack update operation. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • kind string required
      The kind
    • fields map[string]object required
      The fields

    Responses

    204 No Content

    Renew Update Lease

    POST /api/stacks/{orgName}/{projectName}/{stackName}/preview/{updateID}/renew_lease

    Renews the lease for a service-managed update that is currently in progress. Leases prevent concurrent operations on the same stack and must be periodically renewed to indicate the update is still active. The renewal duration must be between 0 and 300 seconds. Returns 409 if the update is not currently in progress.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • token string required
      The current, valid lease token. DEPRECATED as of Pulumi API version 5+. Pulumi API will expect the update token in the Authorization header instead of this property. This property will be removed when the minimum supported API version on the service is raised to 5.
    • duration integer required
      The duration for which to renew the lease in seconds (maximum 300).

    Responses

    200 OK
    • token string required
      The renewed token.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    Errors: 400 Renewal duration must be between 0 and 300 seconds 409 The Update is not in progress.

    Get Stack Preview

    GET /api/stacks/{orgName}/{projectName}/{stackName}/previews/{updateID}

    Returns details of a specific preview operation identified by its update ID. The response includes the preview’s kind, start and end times, result status, resource changes summary, configuration, and environment details. Returns 404 if the specified update does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    200 OK
    Schema: UpdateInfo
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • kind enum required
      Information known before an update is started.
      Values: update, preview, refresh, rename, destroy, import, Pupdate, Prefresh, Pdestroy, Pimport, Prename
    • startTime integer required
      Unix epoch timestamp (seconds) when the update started.
    • message string required
      User-provided message describing the purpose of the update.
    • environment map[string]string required
      Environment variables that were set during the update, keyed by variable name.
    • config map[string]AppConfigValue required
      Stack configuration values used during the update, keyed by config key.
    • result enum required
      Information obtained from an update completing.
      Values: not-started, in-progress, succeeded, failed
    • endTime integer required
      Unix epoch timestamp (seconds) when the update completed.
    • version integer required
      The stack version after this update completed.
    • deployment object optional
      Raw deployment state snapshot, if requested.
    • resourceChanges map[string]integer optional
      Count of resource changes by operation type (e.g. ‘create’: 5, ‘update’: 2, ‘delete’: 1).
    • resourceCount integer optional
      Total number of resources managed by the stack after this update.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • slug string optional
      /
    • sha string optional
      The commit SHA hash
    • url string optional
      The URL to the commit on GitHub
    • message string optional
      The commit message
    • author UserInfo optional
      The author of the commit
    • committer UserInfo optional
      The committer of the commit
    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • 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.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • name string required
      The name
    • displayName string required
      The display name
    • version integer required
      The version number
    • versionTag string required
      The version tag
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This map ties Policies with their configuration.
    • environments array[string] optional
      References to ESC environments to use for this policy pack.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    Errors: 404 Update

    Get Stack Preview Summary

    GET /api/stacks/{orgName}/{projectName}/{stackName}/previews/{updateID}/summary

    Returns a concise summary of a specific preview operation, including the update kind, result status, start and end times, and resource change counts. This is a lighter-weight alternative to GetStackPreview when full update details are not needed. Returns 404 if the specified update does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    200 OK
    • result enum required
      The result of the update.
      Values: not-started, in-progress, succeeded, failed
    • startTime integer required
      The start time of the update as a Unix timestamp.
    • endTime integer required
      The end time of the update as a Unix timestamp.
    • resourceCount integer required
      ResourceCount is the current resource count for the update. Note that it doesn’t reflect the Stack’s current resource count, only that particular update. (So the UpdateSummary for the same Stack will be different.)
    Errors: 404 Update

    Create Update For Refresh

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh

    Creates a new refresh update for the given stack. A refresh synchronizes the stack’s state with the actual state of the cloud resources, detecting any drift. This only creates the update record; the update must subsequently be started via the StartUpdateForRefresh endpoint. Enforces stack update concurrency checks.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • name string required
      Properties from the Project file. Subset of pack.Package.
    • runtime string required
      The runtime
    • main string required
      The main entry point
    • description string required
      The description
    • options AppUpdateOptions required
      The options
    • localPolicyPackPaths array[string] required
      File system paths to local policy packs to apply during this update.
    • color string required
      Terminal color mode for output rendering (e.g. ‘always’, ’never’, ‘auto’).
    • dryRun boolean required
      If true, perform a preview without actually applying changes.
    • parallel integer required
      Maximum number of resource operations to perform in parallel. 0 or -1 for unlimited.
    • showConfig boolean required
      If true, include configuration values in the update output.
    • showReplacementSteps boolean required
      If true, include detailed replacement steps in the update output.
    • showNames boolean required
      If true, include unchanged resources in the update output.
    • summary boolean required
      If true, only show a summary of changes rather than full details.
    • debug boolean required
      If true, enable verbose debug logging during the update.
    • config map[string]AppConfigValue required
      Configuration values.
    • metadata AppUpdateMetadata required
      The metadata
    • message string required
      Message is an optional message associated with the update.
    • environment map[string]string required
      Environment contains optional data from the deploying environment. e.g. the current source code control commit information.

    Responses

    200 OK
    • updateID string required
      UpdateID is the opaque identifier of the requested update. This value is needed to begin an update, as well as poll for its progress.
    • requiredPolicies array[AppRequiredPolicy] optional
      RequiredPolicies is a list of required Policy Packs to run during the update.
    • name string required
      The name (unique and URL-safe) of the required Policy Pack.
    • version integer required
      The version of the required Policy Pack.
    • versionTag string required
      The version tag of the required Policy Pack.
    • displayName string required
      The pretty name of the required Policy Pack.
    • packLocation string optional
      Where the Policy Pack can be downloaded from.
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This is map a of policies mapped to their configuration. Each individual configuration must comply with the JSON schema for each Policy within the Policy Pack.
    • environments array[string] optional
      References to ESC environments whose resolved values the CLI should inject into the policy pack process.
    • messages array[AppMessage] optional
      Messages is a list of messages that should be displayed to the user.
    • severity enum optional
      Severity is the severity of the message.
      Values: warning, error, info
    • message string required
      Message is the message to display to the user.
    • aiSettings AppAISettingsForUpdate optional
      The ai settings
    • copilotIsEnabled boolean required
      Whether the Pulumi Copilot AI assistant is enabled for this stack.

    Get Update Status For Refresh

    GET /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}

    Returns the current status and results of a refresh update, including whether it is still in progress, succeeded, or failed. Supports pagination of results via the continuationToken query parameter.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results

    Responses

    200 OK
    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled
    • events array[AppUpdateEvent] required
      List of events
    • index string required
      The index
    • kind enum required
      The kind
      Values: stdout, stderr
    • fields map[string]object required
      The fields
    • continuationToken string optional

      ContinuationToken is an opaque value used to indiciate the end of the returned update results. Pass it in the next request to obtain subsequent update events.

      The same continuation token may be returned if no new update events are available, but the update is still in-progress.

      A value of nil means that no new updates will be available. Everything has been returned to the client and the update has completed.

    Errors: 400 invalid query parameter

    Start Update For Refresh

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}

    Starts execution of a previously created refresh update. The update must have been created via CreateUpdateForRefresh first. Returns a lease token and version number for tracking the update. Returns 404 if the update does not exist, or 409 if another update is already in progress on the stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • tags map[string]string optional
      Tags contains an updated set of Tags for the stack. If non-nil, will replace the current set of tags associated with the stack.
    • journalVersion integer optional
      JournalVersion indicates the maximum journal version the client supports. If 0, journaling is not supported.

    Responses

    200 OK
    • version integer required
      Version is the version of the program once the update is complete. (Will be the current, unchanged value for previews.)
    • token string optional
      Token is the lease token (if any) to be used to authorize operations on this update.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    • journalVersion integer optional
      JournalVersion indicates the maximum version of journal entries that should be sent to the server. Is expected to be less or equal than the JournalVersion we sent in the update request. If 0, journaling is disabled.
    Errors: 404 Update 409 Another update is currently in progress.

    Cancel Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/cancel

    Requests cancellation of a service-managed update that is currently in progress. The update must have been started (returns 409 if it has not). Returns 404 if the specified update does not exist. The cancellation is processed asynchronously and the update will transition to a cancelled state.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    204 No Content
    Errors: 404 Update 409 The Update has not started

    Patch Update Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/checkpoint

    Uploads a new checkpoint (deployment state snapshot) for a service-managed update that is currently in progress. The checkpoint contains the complete current state of all resources. The request must contain a valid checkpoint object. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • isInvalid boolean required
      Whether invalid
    • version integer required
      The version number
    • features array[string] optional
      The features
    • deployment object optional
      The deployment data

    Responses

    204 No Content
    Errors: 400 request must contain a checkpoint or using the IsInvalid flag is not longer supported 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Checkpoint Delta

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/checkpointdelta

    Uploads a checkpoint delta for a service-managed update that is currently in progress. Rather than uploading the complete checkpoint state, this endpoint accepts an incremental delta that is applied to the existing checkpoint, reducing the payload size. The delta is persisted in the format as provided. Supports checksum validation for data integrity. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      Protocol version.
    • checkpointHash string required
      SHA256 hash of the result of aplying the DeploymentDelta to the previously saved deployment.
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.
    • deploymentDelta object optional
      Textual diff that recovers the desired deployment JSON when applied to the previously saved deployment JSON.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed or failed to apply checkpoint delta or validating checksum 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Verbatim Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/checkpointverbatim

    Uploads a checkpoint for a service-managed update as a verbatim byte array, bypassing JSON marshalling. Unlike PatchUpdateCheckpoint which accepts a structured deployment object and re-serializes it (which may compact data), this endpoint preserves the exact bytes provided by the client and uploads them directly to blob storage. This maintains byte-level fidelity of the checkpoint data. Returns 403 for preview operations. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      The version number
    • untypedDeployment object optional
      The untyped deployment
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Complete Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/complete

    Marks a service-managed update as complete. The request body must include the final status of the update. Returns 400 if the status is unrecognized. Returns 409 if the update has not started, has been cancelled, has already timed out, or has already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled

    Responses

    204 No Content
    Errors: 400 unrecognized status 404 Update 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Get Engine Events

    GET /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/events

    Returns the engine events for the specified update. Engine events represent individual resource operations and diagnostic messages produced during the update. Supports pagination via continuation tokens and filtering by engine event type codes or resource URN. The include_non_activated parameter controls whether events not yet marked as activated are included.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned
    • type array query optional
      Filter results to only include events matching these engine event type codes
    • urn string query optional
      Filter results to only include events for the specified resource URN

    Responses

    200 OK
    • events array[EngineEvent] required
      Events are returned sorted by their internal sequence number (not exposed to the API). So the last Event in the slice is the most recent event which was stored in the database. (Should sort identical to timestamp, but may not if we support parallel writes.)
    • timestamp integer required
      Timestamp of the event (seconds).
    • type string required
      Type describes which payload object is associated with the event, such that in JavaScript event[event.type] is never undefined/null.
    • cancelEvent AppCancelEvent optional
      Present when type is cancelEvent.
    • stdoutEvent AppStdoutEngineEvent optional
      Present when type is stdoutEvent.
    • diagnosticEvent AppDiagnosticEvent optional
      Present when type is diagnosticEvent.
    • preludeEvent AppPreludeEvent optional
      Present when type is preludeEvent.
    • summaryEvent AppSummaryEvent optional
      Present when type is summaryEvent.
    • resourcePreEvent AppResourcePreEvent optional
      Present when type is resourcePreEvent.
    • resOutputsEvent AppResOutputsEvent optional
      Present when type is resOutputsEvent.
    • resOpFailedEvent AppResOpFailedEvent optional
      Present when type is resOpFailedEvent.
    • policyEvent AppPolicyEvent optional
      Present when type is policyEvent.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      Present when type is policyRemediationEvent.
    • policyLoadEvent AppPolicyLoadEvent optional
      Present when type is policyLoadEvent.
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      Present when type is policyAnalyzeSummaryEvent.
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      Present when type is policyRemediateSummaryEvent.
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      Present when type is policyAnalyzeStackSummaryEvent.
    • startDebuggingEvent AppStartDebuggingEvent optional
      Present when type is startDebuggingEvent.
    • progressEvent AppProgressEvent optional
      Present when type is progressEvent.
    • errorEvent AppErrorEvent optional
      Present when type is errorEvent.
    • continuationToken string required
      ContinuationToken is an opaque value the client can send to fetch more recent events if the update is still in progress. Will be nil once all events have been returned and the update is complete.
    Errors: 400 Invalid continuation token.

    Record Engine Event

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/events

    Records a single engine event sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations or diagnostic messages. For better performance, consider using RecordEngineEventBatch to send multiple events in a single request. Returns 400 if no event data is provided, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • message string required
      The message content
    • color string required
      The output color
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • urn string optional
      The Pulumi URN
    • prefix string optional
      The prefix
    • message string required
      The message content
    • color string required
      The output color
    • severity string required
      Severity is one of “info”, “info#err”, “warning”, or “error”.
    • streamID integer optional
      The stream identifier
    • ephemeral boolean optional
      Whether ephemeral is enabled
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • config map[string]string required
      Config contains the keys and values for the update. Encrypted configuration values may be blinded.
    • summaryEvent AppSummaryEvent optional
      The summary event
    • maybeCorrupt boolean required
      MaybeCorrupt is set if one or more of the resources is in an invalid state.
    • durationSeconds integer required
      Duration is the number of seconds the update was executing.
    • resourceChanges map[string]integer required
      ResourceChanges contains the count for resource change by type.
    • PolicyPacks map[string]string required
      Policy Packs run during the update, as a map from policy pack name to version. For newer clients, the value is the version tag prefixed with v; for older clients it is the raw version.
    • isPreview boolean required
      IsPreview indicates whether this is a preview or an update.
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • metadata AppStepEventMetadata required
      The metadata
    • status integer required
      The current status
    • steps integer required
      The steps
    • policyEvent AppPolicyEvent optional
      The policy event
    • resourceUrn string optional
      The resource urn
    • message string required
      The message content
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • enforcementLevel string required
      EnforcementLevel is one of “warning”, “mandatory”, “remediate”, or “none”.
    • severity string optional
      Severity is one of “low”, “medium”, “high”, or “critical”. An empty string is omitted and represents an unspecified severity.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • resourceUrn string optional
      The resource urn
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • before map[string]object optional
      Map of before
    • after map[string]object optional
      Map of after
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • resourceUrn string required
      The URN of the resource being analyzed.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • resourceUrn string required
      The URN of the resource being remediated.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of stack policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of stack policies that failed (i.e. produced violations).
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • config map[string]object optional
      The configuration
    • progressEvent AppProgressEvent optional
      The progress event
    • type enum required
      The type of process (e.g. plugin download, plugin install).
      Values: plugin-download, plugin-install
    • id string required
      A unique identifier for the process.
    • message string required
      A message accompanying the process.
    • received integer required
      The number of items completed so far (e.g. bytes received, items installed, etc.)
    • total integer required
      The total number of items that must be completed.
    • done boolean required
      True if and only if the process has completed.
    • errorEvent AppErrorEvent optional
      The error event
    • error string required
      Error is the error message.

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Record Engine Event Batch

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/events/batch

    Records a batch of engine events sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations (create, update, delete, etc.) and diagnostic messages. Batching events reduces the number of API calls during an update. Returns 400 if no events are provided in the batch, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • events array[AppEngineEvent] required
      List of events
    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • summaryEvent AppSummaryEvent optional
      The summary event
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • policyEvent AppPolicyEvent optional
      The policy event
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • progressEvent AppProgressEvent optional
      The progress event
    • errorEvent AppErrorEvent optional
      The error event

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Create Journal Entries

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/journalentries

    Creates new journal entries for the specified update. Journal entries record the progression of resource operations during an update, tracking state transitions for each resource. The include_non_activated query parameter controls whether non-activated events are included. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned

    Request Body

    • entries array[AppJournalEntry] optional
      List of entries
    • version integer required
      Version of the journal entry format.
    • kind enum required
      Kind of journal entry.
      Values: 0, 1, 2, 3, 4, 5, 6, 7
    • sequenceID integer required
      Sequence ID of the operation.
    • operationID integer required
      ID of the operation this journal entry is associated with.
    • removeOld integer required
      ID for the delete Operation that this journal entry is associated with.
    • removeNew integer required
      ID for the delete Operation that this journal entry is associated with.
    • pendingReplacementOld integer optional
      PendingReplacementOld is the index of the resource that’s to be marked as pending replacement
    • pendingReplacementNew integer optional
      PendingReplacementNew is the operation ID of the new resource to be marked as pending replacement
    • deleteOld integer optional
      DeleteOld is the index of the resource that’s to be marked as deleted.
    • deleteNew integer optional
      DeleteNew is the operation ID of the new resource to be marked as deleted.
    • state AppResourceV3 optional
      The resource state associated with this journal entry.
    • operation AppOperationV2 optional
      The operation associated with this journal entry, if any.
    • isRefresh boolean optional
      If true, this journal entry is part of a refresh operation.
    • secretsProvider AppSecretsProvidersV1 optional
      The secrets manager associated with this journal entry, if any.
    • newSnapshot AppDeploymentV3 optional
      NewSnapshot is the new snapshot that this journal entry is associated with.

    Responses

    204 No Content

    Append Update Log Entry

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/log

    Appends a log entry to the specified update’s log stream. Log entries are used to record diagnostic messages, status information, and other output generated during a stack update operation. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • kind string required
      The kind
    • fields map[string]object required
      The fields

    Responses

    204 No Content

    Renew Update Lease

    POST /api/stacks/{orgName}/{projectName}/{stackName}/refresh/{updateID}/renew_lease

    Renews the lease for a service-managed update that is currently in progress. Leases prevent concurrent operations on the same stack and must be periodically renewed to indicate the update is still active. The renewal duration must be between 0 and 300 seconds. Returns 409 if the update is not currently in progress.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • token string required
      The current, valid lease token. DEPRECATED as of Pulumi API version 5+. Pulumi API will expect the update token in the Authorization header instead of this property. This property will be removed when the minimum supported API version on the service is raised to 5.
    • duration integer required
      The duration for which to renew the lease in seconds (maximum 300).

    Responses

    200 OK
    • token string required
      The renewed token.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    Errors: 400 Renewal duration must be between 0 and 300 seconds 409 The Update is not in progress.

    Rename Stack

    POST /api/stacks/{orgName}/{projectName}/{stackName}/rename

    Changes an existing stack’s name to a new value. The request body must include the desired new name. The rename may also change the project name. Returns 400 if the request body does not specify a rename. Returns 409 if another update is currently in progress on the stack, since renaming requires exclusive access.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • newName string required
      The new name
    • newProject string required
      The new project

    Responses

    200 OK
    • updateId string required
      The update identifier
    Errors: 400 No rename to apply. 409 Another update is currently in progress.

    Get Stack Resources

    GET /api/stacks/{orgName}/{projectName}/{stackName}/resources/{version}

    Retrieves all resources as they existed at a specific historical stack update version. Each resource includes its type, URN, provider, inputs, outputs, parent, and dependencies. Returns 404 if the specified version does not exist for this stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number

    Responses

    200 OK
    • resources array[ResourceInfo] required
      The list of resources in the stack
    • resource Resource required
      The underlying resource with its properties, URN, type, and provider state.
    • region string required
      The cloud region where the resources are deployed
    • version integer required
      The update version number
    Errors: 404 Version

    Get Stack Resource

    GET /api/stacks/{orgName}/{projectName}/{stackName}/resources/{version}/{urn}

    Returns detailed information about a specific resource identified by its URN at a specific historical update version. The response includes the resource type, provider, inputs, outputs, and dependency information as they existed at that version. Returns 404 if the resource or version does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number
    • urn string path required
      The resource URN

    Responses

    200 OK
    • resource ResourceInfo required
      The resource information
    • resource Resource required
      The underlying resource with its properties, URN, type, and provider state.
    • region string required
      The cloud region where the resource is deployed
    • version integer required
      The update version number
    Errors: 404 Resource or Version

    Get Stack Resource Count

    GET /api/stacks/{orgName}/{projectName}/{stackName}/resources/count

    Returns the total number of resources currently managed by the stack, based on the most recent update. The response includes the resource count and the stack version number. This is a lightweight endpoint for checking stack size without retrieving full resource details.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • resourceCount integer required
      The number of resources in the stack
    • version integer required
      The update version number

    Get Latest Stack Resources

    GET /api/stacks/{orgName}/{projectName}/{stackName}/resources/latest

    Retrieves all resources currently managed by the stack from the most recent update. Each resource in the response includes its type, URN, provider, inputs, outputs, parent, and dependencies. This is equivalent to calling GetStackResources with the latest version number.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • resources array[ResourceInfo] required
      The list of resources in the stack
    • resource Resource required
      The underlying resource with its properties, URN, type, and provider state.
    • region string required
      The cloud region where the resources are deployed
    • version integer required
      The update version number

    Get Latest Stack Resource

    GET /api/stacks/{orgName}/{projectName}/{stackName}/resources/latest/{urn}

    Returns detailed information about a specific resource identified by its URN from the most recent stack update. The response includes the resource type, provider, inputs, outputs, and dependency information. Returns 404 if no resource with the given URN exists in the latest state.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • urn string path required
      The resource URN

    Responses

    200 OK
    • resource ResourceInfo required
      The resource information
    • resource Resource required
      The underlying resource with its properties, URN, type, and provider state.
    • region string required
      The cloud region where the resource is deployed
    • version integer required
      The update version number
    Errors: 404 Resource

    List Stack Teams

    GET /api/stacks/{orgName}/{projectName}/{stackName}/teams

    Lists all teams within the organization that have been granted access to the specified stack. The response includes each team’s name and the permission level granted to it for this stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • projectName string required
      The project name for the stack
    • teams array[StackTeam] required
      The list of teams with access to the stack
    • name string required
      The unique name of the team.
    • displayName string required
      The display name of the team.
    • description string required
      A description of the team.
    • permission enum required
      The permission level this team has on the stack.
      Values: 0, 101, 102, 103, 104
    • isMember boolean required
      IsMember is true if the requesting user is a member of the team.

    Transfer Stack

    POST /api/stacks/{orgName}/{projectName}/{stackName}/transfer

    Transfers a stack from one organization to another. The request body must specify the destination organization name via the ’toOrg’ field. The requesting user must be a member of both the source and destination organizations to prevent accidental disclosure of organization existence. The stack must not have any active updates in progress (returns 409 if an update is running). Returns 204 with no content on success.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • projectName string optional
      The project name of the stack to transfer. If unset, the project from the URL route parameters is used.
    • stackName string optional
      The name of the stack to transfer. If unset, the stack from the URL route parameters is used.
    • fromOrg string optional
      The source organization to transfer the stack from. If unset, the organization from the URL route parameters is used.
    • toOrg string required
      The organization to transfer the stack to.

    Responses

    204 No Content
    Errors: 409 Another update is currently in progress.

    Create Update For Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update

    Creates a new standard update (pulumi up) for the given stack. A standard update deploys changes to the stack’s infrastructure by creating, updating, or deleting resources as needed. This only creates the update record; the update must subsequently be started via the StartUpdateForUpdate endpoint. Enforces stack update concurrency checks to prevent conflicting simultaneous operations.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • name string required
      Properties from the Project file. Subset of pack.Package.
    • runtime string required
      The runtime
    • main string required
      The main entry point
    • description string required
      The description
    • options AppUpdateOptions required
      The options
    • localPolicyPackPaths array[string] required
      File system paths to local policy packs to apply during this update.
    • color string required
      Terminal color mode for output rendering (e.g. ‘always’, ’never’, ‘auto’).
    • dryRun boolean required
      If true, perform a preview without actually applying changes.
    • parallel integer required
      Maximum number of resource operations to perform in parallel. 0 or -1 for unlimited.
    • showConfig boolean required
      If true, include configuration values in the update output.
    • showReplacementSteps boolean required
      If true, include detailed replacement steps in the update output.
    • showNames boolean required
      If true, include unchanged resources in the update output.
    • summary boolean required
      If true, only show a summary of changes rather than full details.
    • debug boolean required
      If true, enable verbose debug logging during the update.
    • config map[string]AppConfigValue required
      Configuration values.
    • metadata AppUpdateMetadata required
      The metadata
    • message string required
      Message is an optional message associated with the update.
    • environment map[string]string required
      Environment contains optional data from the deploying environment. e.g. the current source code control commit information.

    Responses

    200 OK
    • updateID string required
      UpdateID is the opaque identifier of the requested update. This value is needed to begin an update, as well as poll for its progress.
    • requiredPolicies array[AppRequiredPolicy] optional
      RequiredPolicies is a list of required Policy Packs to run during the update.
    • name string required
      The name (unique and URL-safe) of the required Policy Pack.
    • version integer required
      The version of the required Policy Pack.
    • versionTag string required
      The version tag of the required Policy Pack.
    • displayName string required
      The pretty name of the required Policy Pack.
    • packLocation string optional
      Where the Policy Pack can be downloaded from.
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This is map a of policies mapped to their configuration. Each individual configuration must comply with the JSON schema for each Policy within the Policy Pack.
    • environments array[string] optional
      References to ESC environments whose resolved values the CLI should inject into the policy pack process.
    • messages array[AppMessage] optional
      Messages is a list of messages that should be displayed to the user.
    • severity enum optional
      Severity is the severity of the message.
      Values: warning, error, info
    • message string required
      Message is the message to display to the user.
    • aiSettings AppAISettingsForUpdate optional
      The ai settings
    • copilotIsEnabled boolean required
      Whether the Pulumi Copilot AI assistant is enabled for this stack.

    Start Update For Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}

    Starts execution of a previously created standard (pulumi up) update. The update must have been created via CreateUpdateForUpdate first. Returns a lease token and version number for tracking the update. Returns 404 if the update does not exist, or 409 if another update is already in progress on the stack.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • tags map[string]string optional
      Tags contains an updated set of Tags for the stack. If non-nil, will replace the current set of tags associated with the stack.
    • journalVersion integer optional
      JournalVersion indicates the maximum journal version the client supports. If 0, journaling is not supported.

    Responses

    200 OK
    • version integer required
      Version is the version of the program once the update is complete. (Will be the current, unchanged value for previews.)
    • token string optional
      Token is the lease token (if any) to be used to authorize operations on this update.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    • journalVersion integer optional
      JournalVersion indicates the maximum version of journal entries that should be sent to the server. Is expected to be less or equal than the JournalVersion we sent in the update request. If 0, journaling is disabled.
    Errors: 404 Update 409 Another update is currently in progress.

    Cancel Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/cancel

    Requests cancellation of a service-managed update that is currently in progress. The update must have been started (returns 409 if it has not). Returns 404 if the specified update does not exist. The cancellation is processed asynchronously and the update will transition to a cancelled state.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Responses

    204 No Content
    Errors: 404 Update 409 The Update has not started

    Patch Update Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/checkpoint

    Uploads a new checkpoint (deployment state snapshot) for a service-managed update that is currently in progress. The checkpoint contains the complete current state of all resources. The request must contain a valid checkpoint object. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • isInvalid boolean required
      Whether invalid
    • version integer required
      The version number
    • features array[string] optional
      The features
    • deployment object optional
      The deployment data

    Responses

    204 No Content
    Errors: 400 request must contain a checkpoint or using the IsInvalid flag is not longer supported 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Checkpoint Delta

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/checkpointdelta

    Uploads a checkpoint delta for a service-managed update that is currently in progress. Rather than uploading the complete checkpoint state, this endpoint accepts an incremental delta that is applied to the existing checkpoint, reducing the payload size. The delta is persisted in the format as provided. Supports checksum validation for data integrity. Returns 403 for preview operations since previews do not modify actual state. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      Protocol version.
    • checkpointHash string required
      SHA256 hash of the result of aplying the DeploymentDelta to the previously saved deployment.
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.
    • deploymentDelta object optional
      Textual diff that recovers the desired deployment JSON when applied to the previously saved deployment JSON.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed or failed to apply checkpoint delta or validating checksum 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Patch Update Verbatim Checkpoint

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/checkpointverbatim

    Uploads a checkpoint for a service-managed update as a verbatim byte array, bypassing JSON marshalling. Unlike PatchUpdateCheckpoint which accepts a structured deployment object and re-serializes it (which may compact data), this endpoint preserves the exact bytes provided by the client and uploads them directly to blob storage. This maintains byte-level fidelity of the checkpoint data. Returns 403 for preview operations. Returns 409 if the update has not started, has been cancelled, timed out, or already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • version integer required
      The version number
    • untypedDeployment object optional
      The untyped deployment
    • sequenceNumber integer required
      Idempotency key incremented by the client on every PATCH call within the same update.

    Responses

    204 No Content
    Errors: 400 setting a checkpoint is not allowed because it's marked as already completed 403 Updating the checkpoint is not permitted for preview operations. 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Complete Update

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/complete

    Marks a service-managed update as complete. The request body must include the final status of the update. Returns 400 if the status is unrecognized. Returns 409 if the update has not started, has been cancelled, has already timed out, or has already completed. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • status enum required
      The current status
      Values: not started, requested, running, failed, succeeded, cancelled

    Responses

    204 No Content
    Errors: 400 unrecognized status 404 Update 409 The Update has not started or The Update has been cancelled or The Update has already timed out or The Update has already completed

    Get Engine Events

    GET /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/events

    Returns the engine events for the specified update. Engine events represent individual resource operations and diagnostic messages produced during the update. Supports pagination via continuation tokens and filtering by engine event type codes or resource URN. The include_non_activated parameter controls whether events not yet marked as activated are included.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • continuationToken string query optional
      Continuation token for paginated results
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned
    • type array query optional
      Filter results to only include events matching these engine event type codes
    • urn string query optional
      Filter results to only include events for the specified resource URN

    Responses

    200 OK
    • events array[EngineEvent] required
      Events are returned sorted by their internal sequence number (not exposed to the API). So the last Event in the slice is the most recent event which was stored in the database. (Should sort identical to timestamp, but may not if we support parallel writes.)
    • timestamp integer required
      Timestamp of the event (seconds).
    • type string required
      Type describes which payload object is associated with the event, such that in JavaScript event[event.type] is never undefined/null.
    • cancelEvent AppCancelEvent optional
      Present when type is cancelEvent.
    • stdoutEvent AppStdoutEngineEvent optional
      Present when type is stdoutEvent.
    • diagnosticEvent AppDiagnosticEvent optional
      Present when type is diagnosticEvent.
    • preludeEvent AppPreludeEvent optional
      Present when type is preludeEvent.
    • summaryEvent AppSummaryEvent optional
      Present when type is summaryEvent.
    • resourcePreEvent AppResourcePreEvent optional
      Present when type is resourcePreEvent.
    • resOutputsEvent AppResOutputsEvent optional
      Present when type is resOutputsEvent.
    • resOpFailedEvent AppResOpFailedEvent optional
      Present when type is resOpFailedEvent.
    • policyEvent AppPolicyEvent optional
      Present when type is policyEvent.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      Present when type is policyRemediationEvent.
    • policyLoadEvent AppPolicyLoadEvent optional
      Present when type is policyLoadEvent.
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      Present when type is policyAnalyzeSummaryEvent.
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      Present when type is policyRemediateSummaryEvent.
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      Present when type is policyAnalyzeStackSummaryEvent.
    • startDebuggingEvent AppStartDebuggingEvent optional
      Present when type is startDebuggingEvent.
    • progressEvent AppProgressEvent optional
      Present when type is progressEvent.
    • errorEvent AppErrorEvent optional
      Present when type is errorEvent.
    • continuationToken string required
      ContinuationToken is an opaque value the client can send to fetch more recent events if the update is still in progress. Will be nil once all events have been returned and the update is complete.
    Errors: 400 Invalid continuation token.

    Record Engine Event

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/events

    Records a single engine event sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations or diagnostic messages. For better performance, consider using RecordEngineEventBatch to send multiple events in a single request. Returns 400 if no event data is provided, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • message string required
      The message content
    • color string required
      The output color
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • urn string optional
      The Pulumi URN
    • prefix string optional
      The prefix
    • message string required
      The message content
    • color string required
      The output color
    • severity string required
      Severity is one of “info”, “info#err”, “warning”, or “error”.
    • streamID integer optional
      The stream identifier
    • ephemeral boolean optional
      Whether ephemeral is enabled
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • config map[string]string required
      Config contains the keys and values for the update. Encrypted configuration values may be blinded.
    • summaryEvent AppSummaryEvent optional
      The summary event
    • maybeCorrupt boolean required
      MaybeCorrupt is set if one or more of the resources is in an invalid state.
    • durationSeconds integer required
      Duration is the number of seconds the update was executing.
    • resourceChanges map[string]integer required
      ResourceChanges contains the count for resource change by type.
    • PolicyPacks map[string]string required
      Policy Packs run during the update, as a map from policy pack name to version. For newer clients, the value is the version tag prefixed with v; for older clients it is the raw version.
    • isPreview boolean required
      IsPreview indicates whether this is a preview or an update.
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • metadata AppStepEventMetadata required
      The metadata
    • planning boolean optional
      Whether planning is enabled
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • metadata AppStepEventMetadata required
      The metadata
    • status integer required
      The current status
    • steps integer required
      The steps
    • policyEvent AppPolicyEvent optional
      The policy event
    • resourceUrn string optional
      The resource urn
    • message string required
      The message content
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • enforcementLevel string required
      EnforcementLevel is one of “warning”, “mandatory”, “remediate”, or “none”.
    • severity string optional
      Severity is one of “low”, “medium”, “high”, or “critical”. An empty string is omitted and represents an unspecified severity.
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • resourceUrn string optional
      The resource urn
    • color string required
      The output color
    • policyName string required
      The policy name
    • policyPackName string required
      The policy pack name
    • policyPackVersion string required
      The policy pack version
    • policyPackVersionTag string required
      The policy pack version tag
    • before map[string]object optional
      Map of before
    • after map[string]object optional
      Map of after
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • resourceUrn string required
      The URN of the resource being analyzed.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • resourceUrn string required
      The URN of the resource being remediated.
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of resource policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of resource policies that failed (i.e. produced violations).
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • policyPackName string required
      The name of the policy pack.
    • policyPackVersion string required
      The version of the policy pack.
    • policyPackVersionTag string required
      The version tag of the policy pack.
    • passed array[string] optional
      The names of stack policies that passed (i.e. did not produce any violations).
    • failed array[string] optional
      The names of stack policies that failed (i.e. produced violations).
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • config map[string]object optional
      The configuration
    • progressEvent AppProgressEvent optional
      The progress event
    • type enum required
      The type of process (e.g. plugin download, plugin install).
      Values: plugin-download, plugin-install
    • id string required
      A unique identifier for the process.
    • message string required
      A message accompanying the process.
    • received integer required
      The number of items completed so far (e.g. bytes received, items installed, etc.)
    • total integer required
      The total number of items that must be completed.
    • done boolean required
      True if and only if the process has completed.
    • errorEvent AppErrorEvent optional
      The error event
    • error string required
      Error is the error message.

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Record Engine Event Batch

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/events/batch

    Records a batch of engine events sent from the Pulumi CLI during a stack update. Engine events represent individual resource operations (create, update, delete, etc.) and diagnostic messages. Batching events reduces the number of API calls during an update. Returns 400 if no events are provided in the batch, or 404 if the update does not exist. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • events array[AppEngineEvent] required
      List of events
    • sequence integer required

      Sequence is a unique, and monotonically increasing number for each engine event sent to the Pulumi Service. Since events may be sent concurrently, and/or delayed via network routing, the sequence number is to ensure events can be placed into a total ordering.

      • No two events can have the same sequence number.
      • Events with a lower sequence number must have been emitted before those with a higher sequence number.
    • timestamp integer required
      Timestamp is a Unix timestamp (seconds) of when the event was emitted.
    • cancelEvent AppCancelEvent optional
      The cancel event
    • stdoutEvent AppStdoutEngineEvent optional
      The stdout event
    • diagnosticEvent AppDiagnosticEvent optional
      The diagnostic event
    • preludeEvent AppPreludeEvent optional
      The prelude event
    • summaryEvent AppSummaryEvent optional
      The summary event
    • resourcePreEvent AppResourcePreEvent optional
      The resource pre event
    • resOutputsEvent AppResOutputsEvent optional
      The res outputs event
    • resOpFailedEvent AppResOpFailedEvent optional
      The res op failed event
    • policyEvent AppPolicyEvent optional
      The policy event
    • policyRemediationEvent AppPolicyRemediationEvent optional
      The policy remediation event
    • policyLoadEvent AppPolicyLoadEvent optional
      The policy load event
    • policyAnalyzeSummaryEvent AppPolicyAnalyzeSummaryEvent optional
      The policy analyze summary event
    • policyRemediateSummaryEvent AppPolicyRemediateSummaryEvent optional
      The policy remediate summary event
    • policyAnalyzeStackSummaryEvent AppPolicyAnalyzeStackSummaryEvent optional
      The policy analyze stack summary event
    • startDebuggingEvent AppStartDebuggingEvent optional
      The start debugging event
    • progressEvent AppProgressEvent optional
      The progress event
    • errorEvent AppErrorEvent optional
      The error event

    Responses

    200 OK
    Errors: 400 No events provided. 404 Update

    Create Journal Entries

    PATCH /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/journalentries

    Creates new journal entries for the specified update. Journal entries record the progression of resource operations during an update, tracking state transitions for each resource. The include_non_activated query parameter controls whether non-activated events are included. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID
    • include_non_activated boolean query optional
      When true, includes events that have not yet been activated; when false or omitted, only activated events are returned

    Request Body

    • entries array[AppJournalEntry] optional
      List of entries
    • version integer required
      Version of the journal entry format.
    • kind enum required
      Kind of journal entry.
      Values: 0, 1, 2, 3, 4, 5, 6, 7
    • sequenceID integer required
      Sequence ID of the operation.
    • operationID integer required
      ID of the operation this journal entry is associated with.
    • removeOld integer required
      ID for the delete Operation that this journal entry is associated with.
    • removeNew integer required
      ID for the delete Operation that this journal entry is associated with.
    • pendingReplacementOld integer optional
      PendingReplacementOld is the index of the resource that’s to be marked as pending replacement
    • pendingReplacementNew integer optional
      PendingReplacementNew is the operation ID of the new resource to be marked as pending replacement
    • deleteOld integer optional
      DeleteOld is the index of the resource that’s to be marked as deleted.
    • deleteNew integer optional
      DeleteNew is the operation ID of the new resource to be marked as deleted.
    • state AppResourceV3 optional
      The resource state associated with this journal entry.
    • operation AppOperationV2 optional
      The operation associated with this journal entry, if any.
    • isRefresh boolean optional
      If true, this journal entry is part of a refresh operation.
    • secretsProvider AppSecretsProvidersV1 optional
      The secrets manager associated with this journal entry, if any.
    • newSnapshot AppDeploymentV3 optional
      NewSnapshot is the new snapshot that this journal entry is associated with.

    Responses

    204 No Content

    Append Update Log Entry

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/log

    Appends a log entry to the specified update’s log stream. Log entries are used to record diagnostic messages, status information, and other output generated during a stack update operation. Requires update token authentication.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • kind string required
      The kind
    • fields map[string]object required
      The fields

    Responses

    204 No Content

    Renew Update Lease

    POST /api/stacks/{orgName}/{projectName}/{stackName}/update/{updateID}/renew_lease

    Renews the lease for a service-managed update that is currently in progress. Leases prevent concurrent operations on the same stack and must be periodically renewed to indicate the update is still active. The renewal duration must be between 0 and 300 seconds. Returns 409 if the update is not currently in progress.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • updateID string path required
      The update ID

    Request Body

    • token string required
      The current, valid lease token. DEPRECATED as of Pulumi API version 5+. Pulumi API will expect the update token in the Authorization header instead of this property. This property will be removed when the minimum supported API version on the service is raised to 5.
    • duration integer required
      The duration for which to renew the lease in seconds (maximum 300).

    Responses

    200 OK
    • token string required
      The renewed token.
    • tokenExpiration integer optional
      TokenExpiration is a UNIX timestamp by which the token will expire.
    Errors: 400 Renewal duration must be between 0 and 300 seconds 409 The Update is not in progress.

    Get Stack Update

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/{version}

    Returns detailed information about a specific stack update identified by its version number. The response includes the update kind (update, preview, refresh, destroy, import), start and end times, result status (succeeded, failed, etc.), resource changes summary (creates, updates, deletes, same), configuration, and environment details. Returns 404 if the specified version does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number

    Responses

    200 OK
    Schema: UpdateInfo
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • kind enum required
      Information known before an update is started.
      Values: update, preview, refresh, rename, destroy, import, Pupdate, Prefresh, Pdestroy, Pimport, Prename
    • startTime integer required
      Unix epoch timestamp (seconds) when the update started.
    • message string required
      User-provided message describing the purpose of the update.
    • environment map[string]string required
      Environment variables that were set during the update, keyed by variable name.
    • config map[string]AppConfigValue required
      Stack configuration values used during the update, keyed by config key.
    • result enum required
      Information obtained from an update completing.
      Values: not-started, in-progress, succeeded, failed
    • endTime integer required
      Unix epoch timestamp (seconds) when the update completed.
    • version integer required
      The stack version after this update completed.
    • deployment object optional
      Raw deployment state snapshot, if requested.
    • resourceChanges map[string]integer optional
      Count of resource changes by operation type (e.g. ‘create’: 5, ‘update’: 2, ‘delete’: 1).
    • resourceCount integer optional
      Total number of resources managed by the stack after this update.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • slug string optional
      /
    • sha string optional
      The commit SHA hash
    • url string optional
      The URL to the commit on GitHub
    • message string optional
      The commit message
    • author UserInfo optional
      The author of the commit
    • committer UserInfo optional
      The committer of the commit
    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • 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.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • name string required
      The name
    • displayName string required
      The display name
    • version integer required
      The version number
    • versionTag string required
      The version tag
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This map ties Policies with their configuration.
    • environments array[string] optional
      References to ESC environments to use for this policy pack.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    Errors: 404 Version

    Get Stack Previews

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/{version}/previews

    Returns all preview operations associated with a specific stack update version. Multiple previews may be associated with a single update version when a stack is previewed multiple times before an update is applied. Supports pagination via page and pageSize parameters and chronological sorting via the asc parameter.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number
    • asc boolean query optional
      When true, sorts results in ascending chronological order; when false or omitted, sorts in descending order
    • page integer query optional
      Page number for paginated results (0-indexed, where 0 returns all results)
    • pageSize integer query optional
      Number of results per page (must be >= 1 when page > 0)

    Responses

    200 OK
    • updates array[UpdateInfo] required
      The list of stack updates
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    • itemsPerPage integer required
      The number of items per page
    • total integer required
      The total number of updates
    Errors: 400 Invalid 'page' value. Must be >= 0. or Invalid 'pageSize' value. Must be >= 1. or Invalid 'pageSize' value. Must be 0 or unset when 'page' is 0.

    Get Stack Update Summary

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/{version}/summary

    Returns a concise summary of a specific stack update by version number, including the update kind, result status, start and end times, and resource change counts. This is a lighter-weight alternative to GetStackUpdate when full update details are not needed. Returns 404 if the specified version does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number

    Responses

    200 OK
    • result enum required
      The result of the update.
      Values: not-started, in-progress, succeeded, failed
    • startTime integer required
      The start time of the update as a Unix timestamp.
    • endTime integer required
      The end time of the update as a Unix timestamp.
    • resourceCount integer required
      ResourceCount is the current resource count for the update. Note that it doesn’t reflect the Stack’s current resource count, only that particular update. (So the UpdateSummary for the same Stack will be different.)
    Errors: 404 Version

    Get Update Timeline

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/{version}/timeline

    Returns the timeline of all relevant events culminating with a specific stack update version. The timeline includes workflow events such as deployment triggers, previews, and the update operation itself, providing a complete view of the sequence of actions. Returns 404 if the specified update version does not exist.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name
    • version integer path required
      The stack update version number

    Responses

    200 OK
    • update UpdateInfo required
      Update is the information about the completed update for the stack.
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    • collatedUpdateEvents array[UpdateInfo] required

      CollatedUpdateEvents is the set of update events that are “relevant” to the update. It will contain the sequences of previews that were performed in the same “group”, e.g. a GitHub PR, that lead to the final update.

      If the sequence of previews happened spanned when the stack was updated, e.g. the first preview was at version N - 1 and the last preview was at version N + 1, then the update to stack version N will be included.

      Will be empty if the update couldn’t be associated with a particular sequence of previews.

    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    • collatedPullRequest GitHubPullRequest optional
      CollatedPullRequest is the source pull request that was merged, which triggered the stack’s update.
    • title string required
      The title of the pull request
    • number integer required
      The pull request number
    • repoSlug string required
      The repository slug in owner/repo format
    • createdAt integer required
      Unix epoch timestamp (seconds) of when the PR was created.
    • closedAt integer optional
      Unix epoch timestamp (seconds) of when the PR was closed. Null if the PR is still open.
    • wasMerged boolean required
      Whether the PR was merged
    • sourceRef string required
      The source branch reference
    • targetRef string required
      The target branch reference
    • mergeCommitSHA string optional
      The SHA of the merge commit, if the PR was merged
    • previews array[UpdateInfo] required
      Previews contains all previews for the given stack update that weren’t part of the collated set. For example, from other GitHub pull requests that haven’t been merged, previews ran on developer machines, etc.
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    Errors: 404 Stack Update

    Get Latest Stack Update

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/latest

    Returns information about the most recent update to the stack, including the update kind (update, preview, refresh, destroy, import), start and end times, result status, resource changes summary, configuration, and environment details. Returns 404 if the stack has never been updated.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    Schema: UpdateInfo
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • kind enum required
      Information known before an update is started.
      Values: update, preview, refresh, rename, destroy, import, Pupdate, Prefresh, Pdestroy, Pimport, Prename
    • startTime integer required
      Unix epoch timestamp (seconds) when the update started.
    • message string required
      User-provided message describing the purpose of the update.
    • environment map[string]string required
      Environment variables that were set during the update, keyed by variable name.
    • config map[string]AppConfigValue required
      Stack configuration values used during the update, keyed by config key.
    • result enum required
      Information obtained from an update completing.
      Values: not-started, in-progress, succeeded, failed
    • endTime integer required
      Unix epoch timestamp (seconds) when the update completed.
    • version integer required
      The stack version after this update completed.
    • deployment object optional
      Raw deployment state snapshot, if requested.
    • resourceChanges map[string]integer optional
      Count of resource changes by operation type (e.g. ‘create’: 5, ‘update’: 2, ‘delete’: 1).
    • resourceCount integer optional
      Total number of resources managed by the stack after this update.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • slug string optional
      /
    • sha string optional
      The commit SHA hash
    • url string optional
      The URL to the commit on GitHub
    • message string optional
      The commit message
    • author UserInfo optional
      The author of the commit
    • committer UserInfo optional
      The committer of the commit
    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • 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.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • name string required
      The name
    • displayName string required
      The display name
    • version integer required
      The version number
    • versionTag string required
      The version tag
    • config map[string]object optional
      The configuration that is to be passed to the Policy Pack. This map ties Policies with their configuration.
    • environments array[string] optional
      References to ESC environments to use for this policy pack.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    Errors: 404 Version

    Get Latest Update Timeline

    GET /api/stacks/{orgName}/{projectName}/{stackName}/updates/latest/timeline

    Returns the timeline of all relevant events culminating with the most recent stack update. The timeline includes workflow events such as deployment triggers, previews, and the final update operation, providing a complete view of the sequence of actions that led to the current stack state. Returns 404 if no update exists.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Responses

    200 OK
    • update UpdateInfo required
      Update is the information about the completed update for the stack.
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    • collatedUpdateEvents array[UpdateInfo] required

      CollatedUpdateEvents is the set of update events that are “relevant” to the update. It will contain the sequences of previews that were performed in the same “group”, e.g. a GitHub PR, that lead to the final update.

      If the sequence of previews happened spanned when the stack was updated, e.g. the first preview was at version N - 1 and the last preview was at version N + 1, then the update to stack version N will be included.

      Will be empty if the update couldn’t be associated with a particular sequence of previews.

    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    • collatedPullRequest GitHubPullRequest optional
      CollatedPullRequest is the source pull request that was merged, which triggered the stack’s update.
    • title string required
      The title of the pull request
    • number integer required
      The pull request number
    • repoSlug string required
      The repository slug in owner/repo format
    • createdAt integer required
      Unix epoch timestamp (seconds) of when the PR was created.
    • closedAt integer optional
      Unix epoch timestamp (seconds) of when the PR was closed. Null if the PR is still open.
    • wasMerged boolean required
      Whether the PR was merged
    • sourceRef string required
      The source branch reference
    • targetRef string required
      The target branch reference
    • mergeCommitSHA string optional
      The SHA of the merge commit, if the PR was merged
    • previews array[UpdateInfo] required
      Previews contains all previews for the given stack update that weren’t part of the collated set. For example, from other GitHub pull requests that haven’t been merged, previews ran on developer machines, etc.
    • info AppUpdateInfo required
      The underlying update information from the Pulumi CLI.
    • updateID string required
      UpdateID is the underlying Update’s ID on the PPC.
    • githubCommitInfo GitHubCommitInfo optional

      If the update’s metadata indicates the update environment was from a GitHub based repo we try to lookup the commit that was HEAD at the time of the update.

      May not be set depending on which API is used to obtain the UpdateInfo object.

    • version integer required
      Version of the stack that this UpdateInfo describe.
    • latestVersion integer required
      LatestVersion of the stack in general. i.e. the latest when Version == LatestVersion.
    • requestedBy UserInfo required
      The user who requested the update.
    • policyPacks array[AppPolicyPackMetadata] optional
      The Policy Packs that were required for this update.
    • requestedByToken string optional
      The access token used to request the update, if applicable.
    Errors: 404 Stack Update

    Get Stack Starter Workflow

    POST /api/stacks/{orgName}/{projectName}/{stackName}/workflow

    Generates a customized CI/CD workflow template for the specified stack. The request body must specify the target CI system (e.g. GitHub Actions, GitLab CI). The generated template is tailored to the stack’s runtime and configuration. Returns 400 if the CI system is not specified or the stack does not have a runtime tag. Returns 404 if no matching workflow template is found.

    Request Parameters

    • orgName string path required
      The organization name
    • projectName string path required
      The project name
    • stackName string path required
      The stack name

    Request Body

    • ciSystem string required
      The CI system to generate the workflow for
    • workingDirectory string required
      The working directory for the workflow
    • enablePathFilters boolean required
      Whether to enable path filters in the workflow

    Responses

    200 OK
    • content string required
      The starter workflow content
    Errors: 400 CISystem must be specified or Stack does not have a runtime tag 404 WorkflowTemplate