import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * The AWS::Amplify::Branch resource creates a new branch within an app.
 */
export declare class Branch extends pulumi.CustomResource {
    /**
     * Get an existing Branch resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Branch;
    /**
     * Returns true if the given object is an instance of Branch.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Branch;
    /**
     * The unique ID for an Amplify app.
     */
    readonly appId: pulumi.Output<string>;
    /**
     * ARN for a branch, part of an Amplify App.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The backend for a `Branch` of an Amplify app. Use for a backend created from an AWS CloudFormation stack.
     *
     * This field is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
     */
    readonly backend: pulumi.Output<outputs.amplify.BranchBackend | undefined>;
    /**
     * The basic authorization credentials for a branch of an Amplify app. You must base64-encode the authorization credentials and provide them in the format `user:password` .
     */
    readonly basicAuthConfig: pulumi.Output<outputs.amplify.BranchBasicAuthConfig | undefined>;
    /**
     * The name for the branch.
     */
    readonly branchName: pulumi.Output<string>;
    /**
     * The build specification (build spec) for the branch.
     */
    readonly buildSpec: pulumi.Output<string | undefined>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role to assign to a branch of an SSR app. The SSR Compute role allows the Amplify Hosting compute service to securely access specific AWS resources based on the role's permissions. For more information about the SSR Compute role, see [Adding an SSR Compute role](https://docs.aws.amazon.com/amplify/latest/userguide/amplify-SSR-compute-role.html) in the *Amplify User Guide* .
     */
    readonly computeRoleArn: pulumi.Output<string | undefined>;
    /**
     * The description for the branch that is part of an Amplify app.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Enables auto building for the branch.
     */
    readonly enableAutoBuild: pulumi.Output<boolean | undefined>;
    /**
     * Enables performance mode for the branch.
     *
     * Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.
     */
    readonly enablePerformanceMode: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether Amplify Hosting creates a preview for each pull request that is made for this branch. If this property is enabled, Amplify deploys your app to a unique preview URL after each pull request is opened. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch.
     *
     * To provide backend support for your preview, Amplify automatically provisions a temporary backend environment that it deletes when the pull request is closed. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property.
     *
     * For more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Hosting User Guide* .
     */
    readonly enablePullRequestPreview: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether the skew protection feature is enabled for the branch.
     *
     * Deployment skew protection is available to Amplify applications to eliminate version skew issues between client and servers in web applications. When you apply skew protection to a branch, you can ensure that your clients always interact with the correct version of server-side assets, regardless of when a deployment occurs. For more information about skew protection, see [Skew protection for Amplify deployments](https://docs.aws.amazon.com/amplify/latest/userguide/skew-protection.html) in the *Amplify User Guide* .
     */
    readonly enableSkewProtection: pulumi.Output<boolean | undefined>;
    /**
     * The environment variables for the branch.
     */
    readonly environmentVariables: pulumi.Output<outputs.amplify.BranchEnvironmentVariable[] | undefined>;
    /**
     * The framework for the branch.
     */
    readonly framework: pulumi.Output<string | undefined>;
    /**
     * If pull request previews are enabled for this branch, you can use this property to specify a dedicated backend environment for your previews. For example, you could specify an environment named `prod` , `test` , or `dev` that you initialized with the Amplify CLI and mapped to this branch.
     *
     * To enable pull request previews, set the `EnablePullRequestPreview` property to `true` .
     *
     * If you don't specify an environment, Amplify Hosting provides backend support for each preview by automatically provisioning a temporary backend environment. Amplify Hosting deletes this environment when the pull request is closed.
     *
     * For more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Hosting User Guide* .
     */
    readonly pullRequestEnvironmentName: pulumi.Output<string | undefined>;
    /**
     * Describes the current stage for the branch.
     */
    readonly stage: pulumi.Output<enums.amplify.BranchStage | undefined>;
    /**
     * The tag for the branch.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a Branch resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: BranchArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Branch resource.
 */
export interface BranchArgs {
    /**
     * The unique ID for an Amplify app.
     */
    appId: pulumi.Input<string>;
    /**
     * The backend for a `Branch` of an Amplify app. Use for a backend created from an AWS CloudFormation stack.
     *
     * This field is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.
     */
    backend?: pulumi.Input<inputs.amplify.BranchBackendArgs>;
    /**
     * The basic authorization credentials for a branch of an Amplify app. You must base64-encode the authorization credentials and provide them in the format `user:password` .
     */
    basicAuthConfig?: pulumi.Input<inputs.amplify.BranchBasicAuthConfigArgs>;
    /**
     * The name for the branch.
     */
    branchName?: pulumi.Input<string>;
    /**
     * The build specification (build spec) for the branch.
     */
    buildSpec?: pulumi.Input<string>;
    /**
     * The Amazon Resource Name (ARN) of the IAM role to assign to a branch of an SSR app. The SSR Compute role allows the Amplify Hosting compute service to securely access specific AWS resources based on the role's permissions. For more information about the SSR Compute role, see [Adding an SSR Compute role](https://docs.aws.amazon.com/amplify/latest/userguide/amplify-SSR-compute-role.html) in the *Amplify User Guide* .
     */
    computeRoleArn?: pulumi.Input<string>;
    /**
     * The description for the branch that is part of an Amplify app.
     */
    description?: pulumi.Input<string>;
    /**
     * Enables auto building for the branch.
     */
    enableAutoBuild?: pulumi.Input<boolean>;
    /**
     * Enables performance mode for the branch.
     *
     * Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.
     */
    enablePerformanceMode?: pulumi.Input<boolean>;
    /**
     * Specifies whether Amplify Hosting creates a preview for each pull request that is made for this branch. If this property is enabled, Amplify deploys your app to a unique preview URL after each pull request is opened. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch.
     *
     * To provide backend support for your preview, Amplify automatically provisions a temporary backend environment that it deletes when the pull request is closed. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property.
     *
     * For more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Hosting User Guide* .
     */
    enablePullRequestPreview?: pulumi.Input<boolean>;
    /**
     * Specifies whether the skew protection feature is enabled for the branch.
     *
     * Deployment skew protection is available to Amplify applications to eliminate version skew issues between client and servers in web applications. When you apply skew protection to a branch, you can ensure that your clients always interact with the correct version of server-side assets, regardless of when a deployment occurs. For more information about skew protection, see [Skew protection for Amplify deployments](https://docs.aws.amazon.com/amplify/latest/userguide/skew-protection.html) in the *Amplify User Guide* .
     */
    enableSkewProtection?: pulumi.Input<boolean>;
    /**
     * The environment variables for the branch.
     */
    environmentVariables?: pulumi.Input<pulumi.Input<inputs.amplify.BranchEnvironmentVariableArgs>[]>;
    /**
     * The framework for the branch.
     */
    framework?: pulumi.Input<string>;
    /**
     * If pull request previews are enabled for this branch, you can use this property to specify a dedicated backend environment for your previews. For example, you could specify an environment named `prod` , `test` , or `dev` that you initialized with the Amplify CLI and mapped to this branch.
     *
     * To enable pull request previews, set the `EnablePullRequestPreview` property to `true` .
     *
     * If you don't specify an environment, Amplify Hosting provides backend support for each preview by automatically provisioning a temporary backend environment. Amplify Hosting deletes this environment when the pull request is closed.
     *
     * For more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Hosting User Guide* .
     */
    pullRequestEnvironmentName?: pulumi.Input<string>;
    /**
     * Describes the current stage for the branch.
     */
    stage?: pulumi.Input<enums.amplify.BranchStage>;
    /**
     * The tag for the branch.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
