import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
 * Manages an ELB security policy resource within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const test = new huaweicloud.DedicatedElb.SecurityPolicy("test", {
 *     ciphers: [
 *         "ECDHE-RSA-AES256-GCM-SHA384",
 *         "ECDHE-RSA-AES128-GCM-SHA256",
 *     ],
 *     description: "this is a security policy",
 *     protocols: [
 *         "TLSv1",
 *         "TLSv1.1",
 *         "TLSv1.2",
 *         "TLSv1.3",
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * The elb security policies can be imported using the `id`, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:DedicatedElb/securityPolicy:SecurityPolicy test 0ce123456a00f2591fabc00385ff1234
 * ```
 */
export declare class SecurityPolicy extends pulumi.CustomResource {
    /**
     * Get an existing SecurityPolicy 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?: SecurityPolicyState, opts?: pulumi.CustomResourceOptions): SecurityPolicy;
    /**
     * Returns true if the given object is an instance of SecurityPolicy.  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 SecurityPolicy;
    /**
     * Specifies the cipher suite list of the security policy.
     * The protocol and cipher suite must match. That is to say, there must be at least one cipher suite in
     * ciphers that matches the protocol. The following cipher suites are supported:
     * **ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,
     * **ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,
     * **ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,
     * **ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,
     * **ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,
     * **CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,
     * **TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,
     * **TLS_AES_128_CCM_8_SHA256**.
     */
    readonly ciphers: pulumi.Output<string[]>;
    /**
     * The create time of the security policy.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Specifies the description of the ELB security policy.
     * The value can contain 0 to 255 characters.
     */
    readonly description: pulumi.Output<string>;
    /**
     * Specifies the enterprise project ID to which the Enterprise
     * router belongs.
     */
    readonly enterpriseProjectId: pulumi.Output<string>;
    /**
     * The listener which the security policy associated with.
     * The ListenerRef structure is documented below.
     */
    readonly listeners: pulumi.Output<outputs.DedicatedElb.SecurityPolicyListener[]>;
    /**
     * Specifies the ELB security policy name.
     * The name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),
     * and cannot exceed 255 characters.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies the TSL protocol list which the security policy select.
     * Value options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.
     */
    readonly protocols: pulumi.Output<string[]>;
    /**
     * Specifies the region in which to create the resource.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    readonly region: pulumi.Output<string>;
    /**
     * The update time of the security policy.
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * Create a SecurityPolicy 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: SecurityPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SecurityPolicy resources.
 */
export interface SecurityPolicyState {
    /**
     * Specifies the cipher suite list of the security policy.
     * The protocol and cipher suite must match. That is to say, there must be at least one cipher suite in
     * ciphers that matches the protocol. The following cipher suites are supported:
     * **ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,
     * **ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,
     * **ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,
     * **ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,
     * **ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,
     * **CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,
     * **TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,
     * **TLS_AES_128_CCM_8_SHA256**.
     */
    ciphers?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The create time of the security policy.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * Specifies the description of the ELB security policy.
     * The value can contain 0 to 255 characters.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project ID to which the Enterprise
     * router belongs.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * The listener which the security policy associated with.
     * The ListenerRef structure is documented below.
     */
    listeners?: pulumi.Input<pulumi.Input<inputs.DedicatedElb.SecurityPolicyListener>[]>;
    /**
     * Specifies the ELB security policy name.
     * The name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),
     * and cannot exceed 255 characters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the TSL protocol list which the security policy select.
     * Value options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.
     */
    protocols?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the region in which to create the resource.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    region?: pulumi.Input<string>;
    /**
     * The update time of the security policy.
     */
    updatedAt?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a SecurityPolicy resource.
 */
export interface SecurityPolicyArgs {
    /**
     * Specifies the cipher suite list of the security policy.
     * The protocol and cipher suite must match. That is to say, there must be at least one cipher suite in
     * ciphers that matches the protocol. The following cipher suites are supported:
     * **ECDHE-RSA-AES256-GCM-SHA384**, **ECDHE-RSA-AES128-GCM-SHA256**, **ECDHE-ECDSA-AES256-GCM-SHA384**,
     * **ECDHE-ECDSA-AES128-GCM-SHA256**, **AES128-GCM-SHA256**, **AES256-GCM-SHA384**, **ECDHE-ECDSA-AES128-SHA256**,
     * **ECDHE-RSA-AES128-SHA256**, **AES128-SHA256**, **AES256-SHA256**, **ECDHE-ECDSA-AES256-SHA384**,
     * **ECDHE-RSA-AES256-SHA384**, **ECDHE-ECDSA-AES128-SHA**, **ECDHE-RSA-AES128-SHA**, **ECDHE-RSA-AES256-SHA**,
     * **ECDHE-ECDSA-AES256-SHA**, **AES128-SHA**, **AES256-SHA**, **CAMELLIA128-SHA**, **DES-CBC3-SHA**,
     * **CAMELLIA256-SHA**, **ECDHE-RSA-CHACHA20-POLY1305**, **ECDHE-ECDSA-CHACHA20-POLY1305**, **TLS_AES_128_GCM_SHA256**,
     * **TLS_AES_256_GCM_SHA384**, **TLS_CHACHA20_POLY1305_SHA256**, **TLS_AES_128_CCM_SHA256**,
     * **TLS_AES_128_CCM_8_SHA256**.
     */
    ciphers: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the description of the ELB security policy.
     * The value can contain 0 to 255 characters.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project ID to which the Enterprise
     * router belongs.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the ELB security policy name.
     * The name contains only Chinese characters, letters, digits, underscores (_), and hyphens (-),
     * and cannot exceed 255 characters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the TSL protocol list which the security policy select.
     * Value options: **TLSv1**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.
     */
    protocols: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the region in which to create the resource.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    region?: pulumi.Input<string>;
}
