import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * StackSet as a resource provides one-click experience for provisioning a StackSet and StackInstances
 */
export declare class StackSet extends pulumi.CustomResource {
    /**
     * Get an existing StackSet 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): StackSet;
    /**
     * Returns true if the given object is an instance of StackSet.  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 StackSet;
    /**
     * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account.
     */
    readonly administrationRoleArn: pulumi.Output<string | undefined>;
    /**
     * Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to the target organization or organizational unit (OU). Specify only if PermissionModel is SERVICE_MANAGED.
     */
    readonly autoDeployment: pulumi.Output<outputs.cloudformation.StackSetAutoDeployment | undefined>;
    /**
     * Specifies the AWS account that you are acting from. By default, SELF is specified. For self-managed permissions, specify SELF; for service-managed permissions, if you are signed in to the organization's management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
     */
    readonly callAs: pulumi.Output<enums.cloudformation.StackSetCallAs | undefined>;
    /**
     * In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for AWS CloudFormation to create the stack set and related stack instances.
     */
    readonly capabilities: pulumi.Output<enums.cloudformation.StackSetCapability[] | undefined>;
    /**
     * A description of the stack set. You can use the description to identify the stack set's purpose or other important information.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.
     */
    readonly executionRoleName: pulumi.Output<string | undefined>;
    /**
     * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.
     */
    readonly managedExecution: pulumi.Output<outputs.cloudformation.ManagedExecutionProperties | undefined>;
    /**
     * The user-specified preferences for how CloudFormation performs a StackSet operation.
     */
    readonly operationPreferences: pulumi.Output<outputs.cloudformation.StackSetOperationPreferences | undefined>;
    /**
     * The input parameters for the stack set template.
     */
    readonly parameters: pulumi.Output<outputs.cloudformation.StackSetParameter[] | undefined>;
    /**
     * Describes how the IAM roles required for stack set operations are created. By default, SELF-MANAGED is specified.
     */
    readonly permissionModel: pulumi.Output<enums.cloudformation.StackSetPermissionModel>;
    /**
     * A group of stack instances with parameters in some specific accounts and regions.
     */
    readonly stackInstancesGroup: pulumi.Output<outputs.cloudformation.StackSetStackInstances[] | undefined>;
    /**
     * The ID of the stack set that you're creating.
     */
    readonly stackSetId: pulumi.Output<string>;
    /**
     * The name to associate with the stack set. The name must be unique in the Region where you create your stack set.
     */
    readonly stackSetName: pulumi.Output<string>;
    /**
     * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.
     */
    readonly templateBody: pulumi.Output<string | undefined>;
    /**
     * Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket.
     */
    readonly templateUrl: pulumi.Output<string | undefined>;
    /**
     * Create a StackSet 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: StackSetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a StackSet resource.
 */
export interface StackSetArgs {
    /**
     * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account.
     */
    administrationRoleArn?: pulumi.Input<string>;
    /**
     * Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to the target organization or organizational unit (OU). Specify only if PermissionModel is SERVICE_MANAGED.
     */
    autoDeployment?: pulumi.Input<inputs.cloudformation.StackSetAutoDeploymentArgs>;
    /**
     * Specifies the AWS account that you are acting from. By default, SELF is specified. For self-managed permissions, specify SELF; for service-managed permissions, if you are signed in to the organization's management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
     */
    callAs?: pulumi.Input<enums.cloudformation.StackSetCallAs>;
    /**
     * In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for AWS CloudFormation to create the stack set and related stack instances.
     */
    capabilities?: pulumi.Input<pulumi.Input<enums.cloudformation.StackSetCapability>[]>;
    /**
     * A description of the stack set. You can use the description to identify the stack set's purpose or other important information.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.
     */
    executionRoleName?: pulumi.Input<string>;
    /**
     * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.
     */
    managedExecution?: pulumi.Input<inputs.cloudformation.ManagedExecutionPropertiesArgs>;
    /**
     * The user-specified preferences for how CloudFormation performs a StackSet operation.
     */
    operationPreferences?: pulumi.Input<inputs.cloudformation.StackSetOperationPreferencesArgs>;
    /**
     * The input parameters for the stack set template.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.cloudformation.StackSetParameterArgs>[]>;
    /**
     * Describes how the IAM roles required for stack set operations are created. By default, SELF-MANAGED is specified.
     */
    permissionModel: pulumi.Input<enums.cloudformation.StackSetPermissionModel>;
    /**
     * A group of stack instances with parameters in some specific accounts and regions.
     */
    stackInstancesGroup?: pulumi.Input<pulumi.Input<inputs.cloudformation.StackSetStackInstancesArgs>[]>;
    /**
     * The name to associate with the stack set. The name must be unique in the Region where you create your stack set.
     */
    stackSetName?: pulumi.Input<string>;
    /**
     * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.
     */
    templateBody?: pulumi.Input<string>;
    /**
     * Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket.
     */
    templateUrl?: pulumi.Input<string>;
}
