import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage rds mssql instance
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooZones = volcengine.ecs.getZones({});
 * const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
 *     vpcName: "acc-test-vpc",
 *     cidrBlock: "172.16.0.0/16",
 * });
 * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
 *     subnetName: "acc-test-subnet",
 *     cidrBlock: "172.16.0.0/24",
 *     zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id),
 *     vpcId: fooVpc.id,
 * });
 * const fooInstance = new volcengine.rds_mssql.Instance("fooInstance", {
 *     dbEngineVersion: "SQLServer_2019_Std",
 *     instanceType: "HA",
 *     nodeSpec: "rds.mssql.se.ha.d2.2c4g",
 *     storageSpace: 20,
 *     subnetIds: [fooSubnet.id],
 *     superAccountPassword: "Tftest110",
 *     instanceName: "acc-test-mssql",
 *     projectName: "default",
 *     chargeInfo: {
 *         chargeType: "PostPaid",
 *     },
 *     tags: [{
 *         key: "k1",
 *         value: "v1",
 *     }],
 *     backupTime: "18:00Z-19:00Z",
 *     fullBackupPeriods: [
 *         "Monday",
 *         "Tuesday",
 *     ],
 *     backupRetentionPeriod: 14,
 * });
 * ```
 *
 * ## Import
 *
 * Rds Mssql Instance can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:rds_mssql/instance:Instance default resource_id
 * ```
 */
export declare class Instance extends pulumi.CustomResource {
    /**
     * Get an existing Instance 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?: InstanceState, opts?: pulumi.CustomResourceOptions): Instance;
    /**
     * Returns true if the given object is an instance of Instance.  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 Instance;
    /**
     * Data backup retention days, value range: 7~30.
     * This field is valid and required when updating the backup plan of instance.
     */
    readonly backupRetentionPeriod: pulumi.Output<number | undefined>;
    /**
     * The time window for starting the backup task is one hour interval.
     * This field is valid and required when updating the backup plan of instance.
     */
    readonly backupTime: pulumi.Output<string | undefined>;
    /**
     * The charge info.
     */
    readonly chargeInfo: pulumi.Output<outputs.rds_mssql.InstanceChargeInfo>;
    /**
     * The Compatible version. Valid values: `SQLServer_2019_Std`, `SQLServer_2019_Web`, `SQLServer_2019_Ent`.
     */
    readonly dbEngineVersion: pulumi.Output<string>;
    /**
     * Full backup cycle. Multiple values separated by commas. The values are as follows: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
     * This field is valid and required when updating the backup plan of instance.
     */
    readonly fullBackupPeriods: pulumi.Output<string[] | undefined>;
    /**
     * Name of the instance.
     */
    readonly instanceName: pulumi.Output<string | undefined>;
    /**
     * The Instance type. When the value of the `dbEngineVersion` is `SQLServer_2019_Std`, the value of this field can be `HA` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Ent`, the value of this field can be `Cluster` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Web`, the value of this field can be `Basic`.
     */
    readonly instanceType: pulumi.Output<string>;
    /**
     * The node specification.
     */
    readonly nodeSpec: pulumi.Output<string>;
    /**
     * The project name.
     */
    readonly projectName: pulumi.Output<string>;
    /**
     * Storage space size, measured in GiB. The range of values is 20GiB to 4000GiB, with a step size of 10GiB.
     */
    readonly storageSpace: pulumi.Output<number>;
    /**
     * The subnet id of the instance node. When creating an instance that includes primary and backup nodes and needs to deploy primary and backup nodes across availability zones, you can specify two subnet_id. By default, the first is the primary node availability zone, and the second is the backup node availability zone.
     */
    readonly subnetIds: pulumi.Output<string[]>;
    /**
     * The super account password. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly superAccountPassword: pulumi.Output<string>;
    /**
     * Tags.
     */
    readonly tags: pulumi.Output<outputs.rds_mssql.InstanceTag[] | undefined>;
    /**
     * Create a Instance 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: InstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Instance resources.
 */
export interface InstanceState {
    /**
     * Data backup retention days, value range: 7~30.
     * This field is valid and required when updating the backup plan of instance.
     */
    backupRetentionPeriod?: pulumi.Input<number>;
    /**
     * The time window for starting the backup task is one hour interval.
     * This field is valid and required when updating the backup plan of instance.
     */
    backupTime?: pulumi.Input<string>;
    /**
     * The charge info.
     */
    chargeInfo?: pulumi.Input<inputs.rds_mssql.InstanceChargeInfo>;
    /**
     * The Compatible version. Valid values: `SQLServer_2019_Std`, `SQLServer_2019_Web`, `SQLServer_2019_Ent`.
     */
    dbEngineVersion?: pulumi.Input<string>;
    /**
     * Full backup cycle. Multiple values separated by commas. The values are as follows: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
     * This field is valid and required when updating the backup plan of instance.
     */
    fullBackupPeriods?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Name of the instance.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * The Instance type. When the value of the `dbEngineVersion` is `SQLServer_2019_Std`, the value of this field can be `HA` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Ent`, the value of this field can be `Cluster` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Web`, the value of this field can be `Basic`.
     */
    instanceType?: pulumi.Input<string>;
    /**
     * The node specification.
     */
    nodeSpec?: pulumi.Input<string>;
    /**
     * The project name.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Storage space size, measured in GiB. The range of values is 20GiB to 4000GiB, with a step size of 10GiB.
     */
    storageSpace?: pulumi.Input<number>;
    /**
     * The subnet id of the instance node. When creating an instance that includes primary and backup nodes and needs to deploy primary and backup nodes across availability zones, you can specify two subnet_id. By default, the first is the primary node availability zone, and the second is the backup node availability zone.
     */
    subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The super account password. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    superAccountPassword?: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.rds_mssql.InstanceTag>[]>;
}
/**
 * The set of arguments for constructing a Instance resource.
 */
export interface InstanceArgs {
    /**
     * Data backup retention days, value range: 7~30.
     * This field is valid and required when updating the backup plan of instance.
     */
    backupRetentionPeriod?: pulumi.Input<number>;
    /**
     * The time window for starting the backup task is one hour interval.
     * This field is valid and required when updating the backup plan of instance.
     */
    backupTime?: pulumi.Input<string>;
    /**
     * The charge info.
     */
    chargeInfo: pulumi.Input<inputs.rds_mssql.InstanceChargeInfo>;
    /**
     * The Compatible version. Valid values: `SQLServer_2019_Std`, `SQLServer_2019_Web`, `SQLServer_2019_Ent`.
     */
    dbEngineVersion: pulumi.Input<string>;
    /**
     * Full backup cycle. Multiple values separated by commas. The values are as follows: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
     * This field is valid and required when updating the backup plan of instance.
     */
    fullBackupPeriods?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Name of the instance.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * The Instance type. When the value of the `dbEngineVersion` is `SQLServer_2019_Std`, the value of this field can be `HA` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Ent`, the value of this field can be `Cluster` or `Basic`.When the value of the `dbEngineVersion` is `SQLServer_2019_Web`, the value of this field can be `Basic`.
     */
    instanceType: pulumi.Input<string>;
    /**
     * The node specification.
     */
    nodeSpec: pulumi.Input<string>;
    /**
     * The project name.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Storage space size, measured in GiB. The range of values is 20GiB to 4000GiB, with a step size of 10GiB.
     */
    storageSpace: pulumi.Input<number>;
    /**
     * The subnet id of the instance node. When creating an instance that includes primary and backup nodes and needs to deploy primary and backup nodes across availability zones, you can specify two subnet_id. By default, the first is the primary node availability zone, and the second is the backup node availability zone.
     */
    subnetIds: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The super account password. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    superAccountPassword: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.rds_mssql.InstanceTag>[]>;
}
