import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage ebs auto snapshot policy
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.ebs.AutoSnapshotPolicy("foo", {
 *     autoSnapshotPolicyName: "acc-test-auto-snapshot-policy",
 *     projectName: "default",
 *     repeatWeekdays: [
 *         "2",
 *         "6",
 *     ],
 *     retentionDays: -1,
 *     tags: [{
 *         key: "k1",
 *         value: "v1",
 *     }],
 *     timePoints: [
 *         "1",
 *         "5",
 *         "9",
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * EbsAutoSnapshotPolicy can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:ebs/autoSnapshotPolicy:AutoSnapshotPolicy default resource_id
 * ```
 */
export declare class AutoSnapshotPolicy extends pulumi.CustomResource {
    /**
     * Get an existing AutoSnapshotPolicy 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?: AutoSnapshotPolicyState, opts?: pulumi.CustomResourceOptions): AutoSnapshotPolicy;
    /**
     * Returns true if the given object is an instance of AutoSnapshotPolicy.  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 AutoSnapshotPolicy;
    /**
     * The name of the auto snapshot policy.
     */
    readonly autoSnapshotPolicyName: pulumi.Output<string>;
    /**
     * The creation time of the auto snapshot policy.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * The project name of the auto snapshot policy.
     */
    readonly projectName: pulumi.Output<string>;
    /**
     * Create snapshots repeatedly on a daily basis, with intervals of a certain number of days between each snapshot. The value range is `1-30`. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    readonly repeatDays: pulumi.Output<number | undefined>;
    /**
     * The date of creating snapshot repeatedly by week. The value range is `1-7`, for example, 1 represents Monday. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    readonly repeatWeekdays: pulumi.Output<string[] | undefined>;
    /**
     * The retention days of the auto snapshot. Valid values: -1 and 1~65536. `-1` means permanently preserving the snapshot.
     */
    readonly retentionDays: pulumi.Output<number>;
    /**
     * The status of the auto snapshot policy.
     */
    readonly status: pulumi.Output<string>;
    /**
     * Tags.
     */
    readonly tags: pulumi.Output<outputs.ebs.AutoSnapshotPolicyTag[] | undefined>;
    /**
     * The creation time points of the auto snapshot policy. The value range is `0~23`, representing a total of 24 time points from 00:00 to 23:00, for example, 1 represents 01:00.
     */
    readonly timePoints: pulumi.Output<string[]>;
    /**
     * The updated time of the auto snapshot policy.
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * The number of volumes associated with the auto snapshot policy.
     */
    readonly volumeNums: pulumi.Output<number>;
    /**
     * Create a AutoSnapshotPolicy 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: AutoSnapshotPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AutoSnapshotPolicy resources.
 */
export interface AutoSnapshotPolicyState {
    /**
     * The name of the auto snapshot policy.
     */
    autoSnapshotPolicyName?: pulumi.Input<string>;
    /**
     * The creation time of the auto snapshot policy.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * The project name of the auto snapshot policy.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Create snapshots repeatedly on a daily basis, with intervals of a certain number of days between each snapshot. The value range is `1-30`. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    repeatDays?: pulumi.Input<number>;
    /**
     * The date of creating snapshot repeatedly by week. The value range is `1-7`, for example, 1 represents Monday. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    repeatWeekdays?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The retention days of the auto snapshot. Valid values: -1 and 1~65536. `-1` means permanently preserving the snapshot.
     */
    retentionDays?: pulumi.Input<number>;
    /**
     * The status of the auto snapshot policy.
     */
    status?: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ebs.AutoSnapshotPolicyTag>[]>;
    /**
     * The creation time points of the auto snapshot policy. The value range is `0~23`, representing a total of 24 time points from 00:00 to 23:00, for example, 1 represents 01:00.
     */
    timePoints?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The updated time of the auto snapshot policy.
     */
    updatedAt?: pulumi.Input<string>;
    /**
     * The number of volumes associated with the auto snapshot policy.
     */
    volumeNums?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a AutoSnapshotPolicy resource.
 */
export interface AutoSnapshotPolicyArgs {
    /**
     * The name of the auto snapshot policy.
     */
    autoSnapshotPolicyName: pulumi.Input<string>;
    /**
     * The project name of the auto snapshot policy.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Create snapshots repeatedly on a daily basis, with intervals of a certain number of days between each snapshot. The value range is `1-30`. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    repeatDays?: pulumi.Input<number>;
    /**
     * The date of creating snapshot repeatedly by week. The value range is `1-7`, for example, 1 represents Monday. Only one of `repeat_weekdays, repeatDays` can be specified.
     */
    repeatWeekdays?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The retention days of the auto snapshot. Valid values: -1 and 1~65536. `-1` means permanently preserving the snapshot.
     */
    retentionDays: pulumi.Input<number>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ebs.AutoSnapshotPolicyTag>[]>;
    /**
     * The creation time points of the auto snapshot policy. The value range is `0~23`, representing a total of 24 time points from 00:00 to 23:00, for example, 1 represents 01:00.
     */
    timePoints: pulumi.Input<pulumi.Input<string>[]>;
}
