import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Creates and manages Scaleway Data Warehouse deployments.
 * For more information refer to the [product documentation](https://www.scaleway.com/en/docs/data-warehouse/).
 *
 * ## Example Usage
 *
 * ### Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const main = new scaleway.datawarehouse.Deployment("main", {
 *     name: "my-datawarehouse",
 *     version: "v25",
 *     replicaCount: 1,
 *     cpuMin: 2,
 *     cpuMax: 4,
 *     ramPerCpu: 4,
 *     password: "thiZ_is_v&ry_s3cret",
 * });
 * ```
 *
 * ### With Tags
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const main = new scaleway.datawarehouse.Deployment("main", {
 *     name: "my-datawarehouse",
 *     version: "v25",
 *     replicaCount: 1,
 *     cpuMin: 2,
 *     cpuMax: 4,
 *     ramPerCpu: 4,
 *     password: "thiZ_is_v&ry_s3cret",
 *     tags: [
 *         "production",
 *         "analytics",
 *     ],
 * });
 * ```
 *
 * ### With Private Network
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const main = new scaleway.network.Vpc("main", {name: "my-vpc"});
 * const pn = new scaleway.network.PrivateNetwork("pn", {
 *     name: "my-private-network",
 *     vpcId: main.id,
 * });
 * const mainDeployment = new scaleway.datawarehouse.Deployment("main", {
 *     name: "my-datawarehouse",
 *     version: "v25",
 *     replicaCount: 1,
 *     cpuMin: 2,
 *     cpuMax: 4,
 *     ramPerCpu: 4,
 *     password: "thiZ_is_v&ry_s3cret",
 *     privateNetwork: {
 *         pnId: pn.id,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * Data Warehouse deployments can be imported using the `{region}/{id}`, e.g.
 *
 * ```sh
 * $ pulumi import scaleway:datawarehouse/deployment:Deployment main fr-par/11111111-1111-1111-1111-111111111111
 * ```
 */
export declare class Deployment extends pulumi.CustomResource {
    /**
     * Get an existing Deployment 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?: DeploymentState, opts?: pulumi.CustomResourceOptions): Deployment;
    /**
     * Returns true if the given object is an instance of Deployment.  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 Deployment;
    /**
     * Maximum CPU count (autoscaling upper bound). Must be greater than or equal to `cpuMin`. Can be updated in place.
     */
    readonly cpuMax: pulumi.Output<number>;
    /**
     * Minimum CPU count (autoscaling lower bound). Must be less than or equal to `cpuMax`. Can be updated in place.
     */
    readonly cpuMin: pulumi.Output<number>;
    /**
     * Date and time of deployment creation (RFC 3339 format).
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Name of the Data Warehouse deployment.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Password for the first user of the deployment. If not specified, a random password will be generated. Only one of `password` or `passwordWo` should be specified. Note: plain `password` is only used during deployment creation; it is not rotated on update.
     */
    readonly password: pulumi.Output<string | undefined>;
    /**
     * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
     * Password for the first user of the deployment in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`. Updates are applied via the Users API to the initial user (an administrator when present, otherwise the first user by name).
     */
    readonly passwordWo: pulumi.Output<string | undefined>;
    /**
     * The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
     */
    readonly passwordWoVersion: pulumi.Output<number | undefined>;
    /**
     * Private network configuration to expose your deployment. Changing this forces recreation of the deployment.
     */
    readonly privateNetwork: pulumi.Output<outputs.datawarehouse.DeploymentPrivateNetwork | undefined>;
    /**
     * `projectId`) The ID of the project the deployment is associated with.
     *
     * > **Note:** A public endpoint is always created automatically alongside any private network configuration.
     */
    readonly projectId: pulumi.Output<string>;
    /**
     * Public endpoint information (always created automatically).
     */
    readonly publicNetworks: pulumi.Output<outputs.datawarehouse.DeploymentPublicNetwork[]>;
    /**
     * RAM per CPU in GB.
     */
    readonly ramPerCpu: pulumi.Output<number>;
    /**
     * `region`) The region in which the deployment should be created.
     */
    readonly region: pulumi.Output<string | undefined>;
    /**
     * Number of replicas. Can be updated in place via the deployment configuration API.
     */
    readonly replicaCount: pulumi.Output<number>;
    /**
     * Number of shards for the deployment. This value is immutable and cannot be changed after creation.
     */
    readonly shardCount: pulumi.Output<number>;
    /**
     * Whether the deployment should be running. When set to `false`, the provider calls the Stop deployment API after create or update; when set to `true`, it calls Start deployment if the deployment is stopped. Scaling fields (`replicaCount`, `cpuMin`, `cpuMax`) require the deployment to be running; if it is stopped, the provider starts it to apply the change, then stops it again when `started` is `false`.
     */
    readonly started: pulumi.Output<boolean | undefined>;
    /**
     * The status of the deployment (e.g., "ready", "provisioning").
     */
    readonly status: pulumi.Output<string>;
    /**
     * List of tags to apply to the deployment.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * Date and time of deployment last update (RFC 3339 format).
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * ClickHouse version to use (e.g., "v25"). Changing this forces recreation of the deployment.
     */
    readonly version: pulumi.Output<string>;
    /**
     * Create a Deployment 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: DeploymentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Deployment resources.
 */
export interface DeploymentState {
    /**
     * Maximum CPU count (autoscaling upper bound). Must be greater than or equal to `cpuMin`. Can be updated in place.
     */
    cpuMax?: pulumi.Input<number | undefined>;
    /**
     * Minimum CPU count (autoscaling lower bound). Must be less than or equal to `cpuMax`. Can be updated in place.
     */
    cpuMin?: pulumi.Input<number | undefined>;
    /**
     * Date and time of deployment creation (RFC 3339 format).
     */
    createdAt?: pulumi.Input<string | undefined>;
    /**
     * Name of the Data Warehouse deployment.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Password for the first user of the deployment. If not specified, a random password will be generated. Only one of `password` or `passwordWo` should be specified. Note: plain `password` is only used during deployment creation; it is not rotated on update.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
     * Password for the first user of the deployment in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`. Updates are applied via the Users API to the initial user (an administrator when present, otherwise the first user by name).
     */
    passwordWo?: pulumi.Input<string | undefined>;
    /**
     * The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
     */
    passwordWoVersion?: pulumi.Input<number | undefined>;
    /**
     * Private network configuration to expose your deployment. Changing this forces recreation of the deployment.
     */
    privateNetwork?: pulumi.Input<inputs.datawarehouse.DeploymentPrivateNetwork | undefined>;
    /**
     * `projectId`) The ID of the project the deployment is associated with.
     *
     * > **Note:** A public endpoint is always created automatically alongside any private network configuration.
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * Public endpoint information (always created automatically).
     */
    publicNetworks?: pulumi.Input<pulumi.Input<inputs.datawarehouse.DeploymentPublicNetwork>[] | undefined>;
    /**
     * RAM per CPU in GB.
     */
    ramPerCpu?: pulumi.Input<number | undefined>;
    /**
     * `region`) The region in which the deployment should be created.
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * Number of replicas. Can be updated in place via the deployment configuration API.
     */
    replicaCount?: pulumi.Input<number | undefined>;
    /**
     * Number of shards for the deployment. This value is immutable and cannot be changed after creation.
     */
    shardCount?: pulumi.Input<number | undefined>;
    /**
     * Whether the deployment should be running. When set to `false`, the provider calls the Stop deployment API after create or update; when set to `true`, it calls Start deployment if the deployment is stopped. Scaling fields (`replicaCount`, `cpuMin`, `cpuMax`) require the deployment to be running; if it is stopped, the provider starts it to apply the change, then stops it again when `started` is `false`.
     */
    started?: pulumi.Input<boolean | undefined>;
    /**
     * The status of the deployment (e.g., "ready", "provisioning").
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * List of tags to apply to the deployment.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Date and time of deployment last update (RFC 3339 format).
     */
    updatedAt?: pulumi.Input<string | undefined>;
    /**
     * ClickHouse version to use (e.g., "v25"). Changing this forces recreation of the deployment.
     */
    version?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Deployment resource.
 */
export interface DeploymentArgs {
    /**
     * Maximum CPU count (autoscaling upper bound). Must be greater than or equal to `cpuMin`. Can be updated in place.
     */
    cpuMax: pulumi.Input<number>;
    /**
     * Minimum CPU count (autoscaling lower bound). Must be less than or equal to `cpuMax`. Can be updated in place.
     */
    cpuMin: pulumi.Input<number>;
    /**
     * Name of the Data Warehouse deployment.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Password for the first user of the deployment. If not specified, a random password will be generated. Only one of `password` or `passwordWo` should be specified. Note: plain `password` is only used during deployment creation; it is not rotated on update.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
     * Password for the first user of the deployment in write-only mode. Only one of `password` or `passwordWo` should be specified. `passwordWo` will not be set in the Terraform state. To update the `passwordWo`, you must also update the `passwordWoVersion`. Updates are applied via the Users API to the initial user (an administrator when present, otherwise the first user by name).
     */
    passwordWo?: pulumi.Input<string | undefined>;
    /**
     * The version of the write-only password. To update the `passwordWo`, you must also update the `passwordWoVersion`.
     */
    passwordWoVersion?: pulumi.Input<number | undefined>;
    /**
     * Private network configuration to expose your deployment. Changing this forces recreation of the deployment.
     */
    privateNetwork?: pulumi.Input<inputs.datawarehouse.DeploymentPrivateNetwork | undefined>;
    /**
     * `projectId`) The ID of the project the deployment is associated with.
     *
     * > **Note:** A public endpoint is always created automatically alongside any private network configuration.
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * RAM per CPU in GB.
     */
    ramPerCpu: pulumi.Input<number>;
    /**
     * `region`) The region in which the deployment should be created.
     */
    region?: pulumi.Input<string | undefined>;
    /**
     * Number of replicas. Can be updated in place via the deployment configuration API.
     */
    replicaCount: pulumi.Input<number>;
    /**
     * Number of shards for the deployment. This value is immutable and cannot be changed after creation.
     */
    shardCount?: pulumi.Input<number | undefined>;
    /**
     * Whether the deployment should be running. When set to `false`, the provider calls the Stop deployment API after create or update; when set to `true`, it calls Start deployment if the deployment is stopped. Scaling fields (`replicaCount`, `cpuMin`, `cpuMax`) require the deployment to be running; if it is stopped, the provider starts it to apply the change, then stops it again when `started` is `false`.
     */
    started?: pulumi.Input<boolean | undefined>;
    /**
     * List of tags to apply to the deployment.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * ClickHouse version to use (e.g., "v25"). Changing this forces recreation of the deployment.
     */
    version: pulumi.Input<string>;
}
//# sourceMappingURL=deployment.d.ts.map