import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as enums from "../types/enums";
export interface AWSOIDCConfigurationArgs {
    /**
     * Duration of the assume-role session in “XhYmZs” format
     */
    duration?: pulumi.Input<string>;
    /**
     * Optional set of IAM policy ARNs that further restrict the assume-role session
     */
    policyARNs?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The ARN of the role to assume using the OIDC token.
     */
    roleARN: pulumi.Input<string>;
    /**
     * The name of the assume-role session.
     */
    sessionName: pulumi.Input<string>;
}
export interface AuthPolicyDefinitionArgs {
    /**
     * The permission level for organization tokens.
     */
    authorizedPermissions?: pulumi.Input<pulumi.Input<enums.AuthPolicyPermissionLevel>[]>;
    /**
     * The rule type of this policy definition
     */
    decision: pulumi.Input<enums.AuthPolicyDecision>;
    /**
     * OIDC rules to set for this policy.
     */
    rules: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The runner ID for deployment runner tokens.
     */
    runnerID?: pulumi.Input<string>;
    /**
     * The team name for team tokens.
     */
    teamName?: pulumi.Input<string>;
    /**
     * The token type for this policy definition
     */
    tokenType: pulumi.Input<enums.AuthPolicyTokenType>;
    /**
     * The user login for personal tokens.
     */
    userLogin?: pulumi.Input<string>;
}
export interface AzureOIDCConfigurationArgs {
    /**
     * The client ID of the federated workload identity.
     */
    clientId: pulumi.Input<string>;
    /**
     * The subscription ID of the federated workload identity.
     */
    subscriptionId: pulumi.Input<string>;
    /**
     * The tenant ID of the federated workload identity.
     */
    tenantId: pulumi.Input<string>;
}
/**
 * Dependency cache settings for the deployment
 */
export interface DeploymentSettingsCacheOptionsArgs {
    /**
     * Enable dependency caching
     */
    enable?: pulumi.Input<boolean>;
}
/**
 * deploymentSettingsCacheOptionsArgsProvideDefaults sets the appropriate defaults for DeploymentSettingsCacheOptionsArgs
 */
export declare function deploymentSettingsCacheOptionsArgsProvideDefaults(val: DeploymentSettingsCacheOptionsArgs): DeploymentSettingsCacheOptionsArgs;
/**
 * The executor context defines information about the executor where the deployment is executed. If unspecified, the default 'pulumi/pulumi' image is used.
 */
export interface DeploymentSettingsExecutorContextArgs {
    /**
     * Allows overriding the default executor image with a custom image. E.g. 'pulumi/pulumi-nodejs:latest'
     */
    executorImage: pulumi.Input<string>;
}
/**
 * Git source settings for a deployment.
 */
export interface DeploymentSettingsGitAuthBasicAuthArgs {
    /**
     * Password for git basic authentication.
     */
    password: pulumi.Input<string>;
    /**
     * User name for git basic authentication.
     */
    username: pulumi.Input<string>;
}
/**
 * Git source settings for a deployment.
 */
export interface DeploymentSettingsGitAuthSSHAuthArgs {
    /**
     * Optional password for SSH authentication.
     */
    password?: pulumi.Input<string>;
    /**
     * SSH private key.
     */
    sshPrivateKey: pulumi.Input<string>;
}
/**
 * Git source settings for a deployment.
 */
export interface DeploymentSettingsGitSourceArgs {
    /**
     * The branch to deploy. One of either `branch` or `commit` must be specified.
     */
    branch?: pulumi.Input<string>;
    /**
     * The commit to deploy. One of either `branch` or `commit` must be specified.
     */
    commit?: pulumi.Input<string>;
    /**
     * Git authentication configuration for this deployment. Should not be specified if there are `gitHub` settings for this deployment.
     */
    gitAuth?: pulumi.Input<inputs.DeploymentSettingsGitSourceGitAuthArgs>;
    /**
     * The directory within the repository where the Pulumi.yaml is located.
     */
    repoDir?: pulumi.Input<string>;
    /**
     * The repository URL to use for git settings. Should not be specified if there are `gitHub` settings for this deployment.
     */
    repoUrl?: pulumi.Input<string>;
}
/**
 * Git source settings for a deployment.
 */
export interface DeploymentSettingsGitSourceGitAuthArgs {
    /**
     * Basic auth for git authentication. Only one of `personalAccessToken`, `sshAuth`, or `basicAuth` must be defined.
     */
    basicAuth?: pulumi.Input<inputs.DeploymentSettingsGitAuthBasicAuthArgs>;
    /**
     * SSH auth for git authentication. Only one of `personalAccessToken`, `sshAuth`, or `basicAuth` must be defined.
     */
    sshAuth?: pulumi.Input<inputs.DeploymentSettingsGitAuthSSHAuthArgs>;
}
/**
 * GitHub settings for the deployment.
 */
export interface DeploymentSettingsGithubArgs {
    /**
     * Trigger a deployment running `pulumi up` on commit.
     */
    deployCommits?: pulumi.Input<boolean>;
    /**
     * The paths within the repo that deployments should be filtered to.
     */
    paths?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Trigger a deployment running `pulumi preview` when a PR is opened.
     */
    previewPullRequests?: pulumi.Input<boolean>;
    /**
     * Use this stack as a template for pull request review stacks.
     */
    pullRequestTemplate?: pulumi.Input<boolean>;
    /**
     * The GitHub repository in the format org/repo.
     */
    repository?: pulumi.Input<string>;
}
/**
 * deploymentSettingsGithubArgsProvideDefaults sets the appropriate defaults for DeploymentSettingsGithubArgs
 */
export declare function deploymentSettingsGithubArgsProvideDefaults(val: DeploymentSettingsGithubArgs): DeploymentSettingsGithubArgs;
/**
 * Settings related to the Pulumi operation environment during the deployment.
 */
export interface DeploymentSettingsOperationContextArgs {
    /**
     * Environment variables to set for the deployment.
     */
    environmentVariables?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * OIDC configuration to use during the deployment.
     */
    oidc?: pulumi.Input<inputs.OperationContextOIDCArgs>;
    /**
     * Options to override default behavior during the deployment.
     */
    options?: pulumi.Input<inputs.OperationContextOptionsArgs>;
    /**
     * Shell commands to run before the Pulumi operation executes.
     */
    preRunCommands?: pulumi.Input<pulumi.Input<string>[]>;
}
/**
 * Settings related to the source of the deployment.
 */
export interface DeploymentSettingsSourceContextArgs {
    /**
     * Git source settings for a deployment.
     */
    git?: pulumi.Input<inputs.DeploymentSettingsGitSourceArgs>;
}
export interface GCPOIDCConfigurationArgs {
    /**
     * The numerical ID of the GCP project.
     */
    projectId: pulumi.Input<string>;
    /**
     * The ID of the identity provider associated with the workload pool.
     */
    providerId: pulumi.Input<string>;
    /**
     * The region of the GCP project.
     */
    region?: pulumi.Input<string>;
    /**
     * The email address of the service account to use.
     */
    serviceAccount: pulumi.Input<string>;
    /**
     * The lifetime of the temporary credentials in “XhYmZs” format.
     */
    tokenLifetime?: pulumi.Input<string>;
    /**
     * The ID of the workload pool to use.
     */
    workloadPoolId: pulumi.Input<string>;
}
export interface OperationContextOIDCArgs {
    /**
     * AWS-specific OIDC configuration.
     */
    aws?: pulumi.Input<inputs.AWSOIDCConfigurationArgs>;
    /**
     * Azure-specific OIDC configuration.
     */
    azure?: pulumi.Input<inputs.AzureOIDCConfigurationArgs>;
    /**
     * GCP-specific OIDC configuration.
     */
    gcp?: pulumi.Input<inputs.GCPOIDCConfigurationArgs>;
}
export interface OperationContextOptionsArgs {
    /**
     * Whether the stack should be deleted after it is destroyed.
     */
    deleteAfterDestroy?: pulumi.Input<boolean>;
    /**
     * The shell to use to run commands during the deployment. Defaults to 'bash'.
     */
    shell?: pulumi.Input<string>;
    /**
     * Skip the default dependency installation step - use this to customize the dependency installation (e.g. if using yarn or poetry)
     */
    skipInstallDependencies?: pulumi.Input<boolean>;
    /**
     * Skip intermediate deployments (Consolidate multiple deployments of the same type into one deployment)
     */
    skipIntermediateDeployments?: pulumi.Input<boolean>;
}
export interface TemplateSourceDestinationArgs {
    /**
     * Destination URL that gets filled in on new project creation.
     */
    url?: pulumi.Input<string>;
}
