import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage rds postgresql parameter template
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const tplBase = new volcengine.rds_postgresql.ParameterTemplate("tplBase", {
 *     templateDesc: "base template for clone",
 *     templateName: "tf-pg-pt-base",
 *     templateParams: [
 *         {
 *             name: "auto_explain.log_analyze",
 *             value: "off",
 *         },
 *         {
 *             name: "auto_explain.log_buffers",
 *             value: "on",
 *         },
 *     ],
 *     templateType: "PostgreSQL",
 *     templateTypeVersion: "PostgreSQL_12",
 * });
 * const tplClone = new volcengine.rds_postgresql.ParameterTemplate("tplClone", {
 *     srcTemplateId: "postgresql-b62f5687df914b1c",
 *     templateDesc: "cloned by terraform",
 *     templateName: "tf-pg-pt-clone",
 *     templateType: "PostgreSQL",
 *     templateTypeVersion: "PostgreSQL_12",
 * });
 * const tplExport = new volcengine.rds_postgresql.ParameterTemplate("tplExport", {
 *     instanceId: "postgres-72715e0d9f58",
 *     templateDesc: "exported from instance",
 *     templateName: "tf-pg-pt-export",
 *     templateType: "PostgreSQL",
 *     templateTypeVersion: "PostgreSQL_12",
 * });
 * ```
 *
 * ## Import
 *
 * RdsPostgresqlParameterTemplate can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:rds_postgresql/parameterTemplate:ParameterTemplate default resource_id
 * ```
 */
export declare class ParameterTemplate extends pulumi.CustomResource {
    /**
     * Get an existing ParameterTemplate 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?: ParameterTemplateState, opts?: pulumi.CustomResourceOptions): ParameterTemplate;
    /**
     * Returns true if the given object is an instance of ParameterTemplate.  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 ParameterTemplate;
    /**
     * The ID of the instance to export the current parameters as a parameter template. If set, the parameter template will be created based on the current parameters of the instance.
     */
    readonly instanceId: pulumi.Output<string | undefined>;
    /**
     * The ID of the source parameter template to clone. If set, the parameter template will be cloned from the source template.
     */
    readonly srcTemplateId: pulumi.Output<string | undefined>;
    /**
     * The description of the parameter template. The maximum length is 200 characters.
     */
    readonly templateDesc: pulumi.Output<string | undefined>;
    /**
     * Parameter template ID.
     */
    readonly templateId: pulumi.Output<string>;
    /**
     * Parameter template name.
     */
    readonly templateName: pulumi.Output<string>;
    /**
     * Parameter configuration of the parameter template.
     */
    readonly templateParams: pulumi.Output<outputs.rds_postgresql.ParameterTemplateTemplateParam[]>;
    /**
     * The type of the parameter template. The current value can only be PostgreSQL.
     */
    readonly templateType: pulumi.Output<string | undefined>;
    /**
     * The version of PostgreSQL supported by the parameter template. The current value can be PostgreSQL_11/12/13/14/15/16/17.
     */
    readonly templateTypeVersion: pulumi.Output<string>;
    /**
     * Create a ParameterTemplate 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: ParameterTemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ParameterTemplate resources.
 */
export interface ParameterTemplateState {
    /**
     * The ID of the instance to export the current parameters as a parameter template. If set, the parameter template will be created based on the current parameters of the instance.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * The ID of the source parameter template to clone. If set, the parameter template will be cloned from the source template.
     */
    srcTemplateId?: pulumi.Input<string>;
    /**
     * The description of the parameter template. The maximum length is 200 characters.
     */
    templateDesc?: pulumi.Input<string>;
    /**
     * Parameter template ID.
     */
    templateId?: pulumi.Input<string>;
    /**
     * Parameter template name.
     */
    templateName?: pulumi.Input<string>;
    /**
     * Parameter configuration of the parameter template.
     */
    templateParams?: pulumi.Input<pulumi.Input<inputs.rds_postgresql.ParameterTemplateTemplateParam>[]>;
    /**
     * The type of the parameter template. The current value can only be PostgreSQL.
     */
    templateType?: pulumi.Input<string>;
    /**
     * The version of PostgreSQL supported by the parameter template. The current value can be PostgreSQL_11/12/13/14/15/16/17.
     */
    templateTypeVersion?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a ParameterTemplate resource.
 */
export interface ParameterTemplateArgs {
    /**
     * The ID of the instance to export the current parameters as a parameter template. If set, the parameter template will be created based on the current parameters of the instance.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * The ID of the source parameter template to clone. If set, the parameter template will be cloned from the source template.
     */
    srcTemplateId?: pulumi.Input<string>;
    /**
     * The description of the parameter template. The maximum length is 200 characters.
     */
    templateDesc?: pulumi.Input<string>;
    /**
     * Parameter template name.
     */
    templateName: pulumi.Input<string>;
    /**
     * Parameter configuration of the parameter template.
     */
    templateParams?: pulumi.Input<pulumi.Input<inputs.rds_postgresql.ParameterTemplateTemplateParam>[]>;
    /**
     * The type of the parameter template. The current value can only be PostgreSQL.
     */
    templateType?: pulumi.Input<string>;
    /**
     * The version of PostgreSQL supported by the parameter template. The current value can be PostgreSQL_11/12/13/14/15/16/17.
     */
    templateTypeVersion: pulumi.Input<string>;
}
