import { RemoteStack } from "./remoteStack"; /** * RemoteWorkspace is the execution context containing a single remote Pulumi project. */ export declare class RemoteWorkspace { /** * PREVIEW: Creates a Stack backed by a RemoteWorkspace with source code from the specified Git repository. * Pulumi operations on the stack (Preview, Update, Refresh, and Destroy) are performed remotely. * * @param args A set of arguments to initialize a RemoteStack with a remote Pulumi program from a Git repository. * @param opts Additional customizations to be applied to the Workspace. */ static createStack(args: RemoteGitProgramArgs, opts?: RemoteWorkspaceOptions): Promise; /** * PREVIEW: Selects an existing Stack backed by a RemoteWorkspace with source code from the specified Git * repository. Pulumi operations on the stack (Preview, Update, Refresh, and Destroy) are performed remotely. * * @param args A set of arguments to initialize a RemoteStack with a remote Pulumi program from a Git repository. * @param opts Additional customizations to be applied to the Workspace. */ static selectStack(args: RemoteGitProgramArgs, opts?: RemoteWorkspaceOptions): Promise; /** * PREVIEW: Creates or selects an existing Stack backed by a RemoteWorkspace with source code from the specified * Git repository. Pulumi operations on the stack (Preview, Update, Refresh, and Destroy) are performed remotely. * * @param args A set of arguments to initialize a RemoteStack with a remote Pulumi program from a Git repository. * @param opts Additional customizations to be applied to the Workspace. */ static createOrSelectStack(args: RemoteGitProgramArgs, opts?: RemoteWorkspaceOptions): Promise; private constructor(); } /** * Description of a stack backed by a remote Pulumi program in a Git repository. */ export interface RemoteGitProgramArgs { /** * The name of the associated Stack */ stackName: string; /** * The URL of the repository. */ url: string; /** * Optional path relative to the repo root specifying location of the Pulumi program. */ projectPath?: string; /** * Optional branch to checkout. */ branch?: string; /** * Optional commit to checkout. */ commitHash?: string; /** * Authentication options for the repository. */ auth?: RemoteGitAuthArgs; } /** * Authentication options for the repository that can be specified for a private Git repo. * There are three different authentication paths: * - Personal accesstoken * - SSH private key (and its optional password) * - Basic auth username and password * * Only one authentication path is valid. */ export interface RemoteGitAuthArgs { /** * The absolute path to a private key for access to the git repo. */ sshPrivateKeyPath?: string; /** * The (contents) private key for access to the git repo. */ sshPrivateKey?: string; /** * The password that pairs with a username or as part of an SSH Private Key. */ password?: string; /** * PersonalAccessToken is a Git personal access token in replacement of your password. */ personalAccessToken?: string; /** * Username is the username to use when authenticating to a git repository */ username?: string; } /** * Extensibility options to configure a RemoteWorkspace. */ export interface RemoteWorkspaceOptions { /** * Environment values scoped to the remote workspace. These will be passed to remote operations. */ envVars?: { [key: string]: string | { secret: string; }; }; /** * An optional list of arbitrary commands to run before a remote Pulumi operation is invoked. */ preRunCommands?: string[]; /** * Whether to skip the default dependency installation step. Defaults to false. */ skipInstallDependencies?: boolean; }