import * as pulumi from "@pulumi/pulumi";
/**
 * Provides access to the [Autopilot Configuration](https://www.consul.io/docs/guides/autopilot.html)
 * of Consul to automatically manage Consul servers.
 *
 * It includes to automatically cleanup dead servers, monitor the status of the Raft
 * cluster and stable server introduction.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as consul from "@pulumi/consul";
 *
 * const config = new consul.AutopilotConfig("config", {
 *     cleanupDeadServers: false,
 *     lastContactThreshold: "1s",
 *     maxTrailingLogs: 500,
 * });
 * ```
 */
export declare class AutopilotConfig extends pulumi.CustomResource {
    /**
     * Get an existing AutopilotConfig 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AutopilotConfigState, opts?: pulumi.CustomResourceOptions): AutopilotConfig;
    /**
     * Returns true if the given object is an instance of AutopilotConfig.  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 AutopilotConfig;
    /**
     * Whether to remove failing servers when a
     * replacement comes online. Defaults to true.
     */
    readonly cleanupDeadServers: pulumi.Output<boolean | undefined>;
    /**
     * The datacenter to use. This overrides the agent's
     * default datacenter and the datacenter in the provider setup.
     */
    readonly datacenter: pulumi.Output<string | undefined>;
    /**
     * Whether to disable [upgrade migrations](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones).
     * Defaults to false.
     */
    readonly disableUpgradeMigration: pulumi.Output<boolean | undefined>;
    /**
     * The time after which a server is
     * considered as unhealthy and will be removed. Defaults to `"200ms"`.
     */
    readonly lastContactThreshold: pulumi.Output<string | undefined>;
    /**
     * The maximum number of Raft log entries a
     * server can trail the leader. Defaults to 250.
     */
    readonly maxTrailingLogs: pulumi.Output<number | undefined>;
    /**
     * The [redundancy zone](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones)
     * tag to use. Consul will try to keep one voting server by zone to take advantage
     * of isolated failure domains. Defaults to an empty string.
     */
    readonly redundancyZoneTag: pulumi.Output<string | undefined>;
    /**
     * The period to wait for a server to be
     * healthy and stable before being promoted to a full, voting member. Defaults to
     * `"10s"`.
     */
    readonly serverStabilizationTime: pulumi.Output<string | undefined>;
    /**
     * The tag to override the version information
     * used during a migration. Defaults to an empty string.
     */
    readonly upgradeVersionTag: pulumi.Output<string | undefined>;
    /**
     * Create a AutopilotConfig 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?: AutopilotConfigArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AutopilotConfig resources.
 */
export interface AutopilotConfigState {
    /**
     * Whether to remove failing servers when a
     * replacement comes online. Defaults to true.
     */
    cleanupDeadServers?: pulumi.Input<boolean>;
    /**
     * The datacenter to use. This overrides the agent's
     * default datacenter and the datacenter in the provider setup.
     */
    datacenter?: pulumi.Input<string>;
    /**
     * Whether to disable [upgrade migrations](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones).
     * Defaults to false.
     */
    disableUpgradeMigration?: pulumi.Input<boolean>;
    /**
     * The time after which a server is
     * considered as unhealthy and will be removed. Defaults to `"200ms"`.
     */
    lastContactThreshold?: pulumi.Input<string>;
    /**
     * The maximum number of Raft log entries a
     * server can trail the leader. Defaults to 250.
     */
    maxTrailingLogs?: pulumi.Input<number>;
    /**
     * The [redundancy zone](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones)
     * tag to use. Consul will try to keep one voting server by zone to take advantage
     * of isolated failure domains. Defaults to an empty string.
     */
    redundancyZoneTag?: pulumi.Input<string>;
    /**
     * The period to wait for a server to be
     * healthy and stable before being promoted to a full, voting member. Defaults to
     * `"10s"`.
     */
    serverStabilizationTime?: pulumi.Input<string>;
    /**
     * The tag to override the version information
     * used during a migration. Defaults to an empty string.
     */
    upgradeVersionTag?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a AutopilotConfig resource.
 */
export interface AutopilotConfigArgs {
    /**
     * Whether to remove failing servers when a
     * replacement comes online. Defaults to true.
     */
    cleanupDeadServers?: pulumi.Input<boolean>;
    /**
     * The datacenter to use. This overrides the agent's
     * default datacenter and the datacenter in the provider setup.
     */
    datacenter?: pulumi.Input<string>;
    /**
     * Whether to disable [upgrade migrations](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones).
     * Defaults to false.
     */
    disableUpgradeMigration?: pulumi.Input<boolean>;
    /**
     * The time after which a server is
     * considered as unhealthy and will be removed. Defaults to `"200ms"`.
     */
    lastContactThreshold?: pulumi.Input<string>;
    /**
     * The maximum number of Raft log entries a
     * server can trail the leader. Defaults to 250.
     */
    maxTrailingLogs?: pulumi.Input<number>;
    /**
     * The [redundancy zone](https://www.consul.io/docs/guides/autopilot.html#redundancy-zones)
     * tag to use. Consul will try to keep one voting server by zone to take advantage
     * of isolated failure domains. Defaults to an empty string.
     */
    redundancyZoneTag?: pulumi.Input<string>;
    /**
     * The period to wait for a server to be
     * healthy and stable before being promoted to a full, voting member. Defaults to
     * `"10s"`.
     */
    serverStabilizationTime?: pulumi.Input<string>;
    /**
     * The tag to override the version information
     * used during a migration. Defaults to an empty string.
     */
    upgradeVersionTag?: pulumi.Input<string>;
}
