import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an ELB monitor resource within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const poolId = config.requireObject("poolId");
 * const monitor1 = new huaweicloud.dedicatedelb.Monitor("monitor1", {
 *     poolId: poolId,
 *     protocol: "HTTPS",
 *     interval: 30,
 *     timeout: 20,
 *     maxRetries: 8,
 *     urlPath: "/bb",
 *     domainName: "www.bb.com",
 *     port: 8888,
 *     statusCode: "200,301,404-500,504",
 * });
 * ```
 *
 * ## Import
 *
 * ELB monitor can be imported using the monitor `id`, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:DedicatedElb/monitor:Monitor test <id>
 * ```
 */
export declare class Monitor extends pulumi.CustomResource {
    /**
     * Get an existing Monitor 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?: MonitorState, opts?: pulumi.CustomResourceOptions): Monitor;
    /**
     * Returns true if the given object is an instance of Monitor.  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 Monitor;
    /**
     * The creation time of the monitor.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Specifies the domain name that HTTP requests are sent to during the health check.
     * The domain name consists of 1 to 100 characters, can contain only digits, letters, hyphens (-), and periods (.) and
     * must start with a digit or letter. The value is left blank by default, indicating that the virtual IP address of the
     * load balancer is used as the destination address of HTTP requests. This parameter is available only when `protocol`
     * is set to **HTTP** or **HTTPS**.
     */
    readonly domainName: pulumi.Output<string>;
    /**
     * Specifies whether the health check is enabled.
     * + **true(default)**: Health check is enabled.
     * + **false**: Health check is disabled.
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the HTTP method. Value options: **GET**, **HEAD**, **POST**. Defaults to **GET**.
     */
    readonly httpMethod: pulumi.Output<string>;
    /**
     * Specifies the interval between health checks, in seconds.
     * Value ranges from `1` to `50`.
     */
    readonly interval: pulumi.Output<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from OFFLINE to ONLINE. Value ranges from `1` to `10`.
     */
    readonly maxRetries: pulumi.Output<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from ONLINE to OFFLINE. The value ranges from `1` to `10`, and the default value is `3`.
     */
    readonly maxRetriesDown: pulumi.Output<number>;
    /**
     * Specifies the health check name.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies the ID of the backend server group for which the health check is
     * configured. Changing this creates a new monitor.
     */
    readonly poolId: pulumi.Output<string>;
    /**
     * Specifies the port used for the health check. If this parameter is left blank, a port of
     * the backend server will be used by default. It is mandatory when the `protocol` of the backend server group is **IP**.
     * Value ranges from `1` to `65,535`.
     */
    readonly port: pulumi.Output<number>;
    /**
     * Specifies the health check protocol. Value options: **TCP**, **UDP_CONNECT**,
     * **HTTP**, **HTTPS**, **GRPC** or **TLS**.
     * + If the protocol of the backend server is **QUIC**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **UDP**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **TCP**, the value can only be **TCP**, **HTTP** or **HTTPS**.
     * + If the protocol of the backend server is **HTTP**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **HTTPS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **GRPC**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **TLS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     */
    readonly protocol: pulumi.Output<string>;
    /**
     * The region in which to create the ELB monitor resource. If omitted, the
     * provider-level region will be used. Changing this creates a new monitor.
     */
    readonly region: pulumi.Output<string>;
    /**
     * Specifies the expected HTTP status code. This parameter will take effect only when
     * `protocol` is set to **HTTP** or **HTTPS**. Value options are as follows:
     * + A specific value, for example: **200**.
     * + A list of values that are separated with commas (,), for example: **200,202**.
     * + A value range, for example: **200-204**.
     */
    readonly statusCode: pulumi.Output<string>;
    /**
     * Specifies the maximum time required for waiting for a response from the health check,
     * in seconds. Value ranges from `1` to `50`. It is recommended that you set the value less than that of
     * parameter `interval`.
     */
    readonly timeout: pulumi.Output<number>;
    /**
     * The update time of the monitor.
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * Specifies the HTTP request path for the health check. The value must start with a
     * slash (/), can contain letters, digits, hyphens (-), slash (/), periods (.), percent signs (%), hashes(#), and(&)
     * and the special characters: `~!()*[]@$^:',+`, and the default value is **&#47;**. This parameter is available only when
     * `protocol` is set to **HTTP** or **HTTPS**.
     */
    readonly urlPath: pulumi.Output<string>;
    /**
     * Create a Monitor 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: MonitorArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Monitor resources.
 */
export interface MonitorState {
    /**
     * The creation time of the monitor.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * Specifies the domain name that HTTP requests are sent to during the health check.
     * The domain name consists of 1 to 100 characters, can contain only digits, letters, hyphens (-), and periods (.) and
     * must start with a digit or letter. The value is left blank by default, indicating that the virtual IP address of the
     * load balancer is used as the destination address of HTTP requests. This parameter is available only when `protocol`
     * is set to **HTTP** or **HTTPS**.
     */
    domainName?: pulumi.Input<string>;
    /**
     * Specifies whether the health check is enabled.
     * + **true(default)**: Health check is enabled.
     * + **false**: Health check is disabled.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * Specifies the HTTP method. Value options: **GET**, **HEAD**, **POST**. Defaults to **GET**.
     */
    httpMethod?: pulumi.Input<string>;
    /**
     * Specifies the interval between health checks, in seconds.
     * Value ranges from `1` to `50`.
     */
    interval?: pulumi.Input<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from OFFLINE to ONLINE. Value ranges from `1` to `10`.
     */
    maxRetries?: pulumi.Input<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from ONLINE to OFFLINE. The value ranges from `1` to `10`, and the default value is `3`.
     */
    maxRetriesDown?: pulumi.Input<number>;
    /**
     * Specifies the health check name.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the ID of the backend server group for which the health check is
     * configured. Changing this creates a new monitor.
     */
    poolId?: pulumi.Input<string>;
    /**
     * Specifies the port used for the health check. If this parameter is left blank, a port of
     * the backend server will be used by default. It is mandatory when the `protocol` of the backend server group is **IP**.
     * Value ranges from `1` to `65,535`.
     */
    port?: pulumi.Input<number>;
    /**
     * Specifies the health check protocol. Value options: **TCP**, **UDP_CONNECT**,
     * **HTTP**, **HTTPS**, **GRPC** or **TLS**.
     * + If the protocol of the backend server is **QUIC**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **UDP**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **TCP**, the value can only be **TCP**, **HTTP** or **HTTPS**.
     * + If the protocol of the backend server is **HTTP**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **HTTPS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **GRPC**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **TLS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     */
    protocol?: pulumi.Input<string>;
    /**
     * The region in which to create the ELB monitor resource. If omitted, the
     * provider-level region will be used. Changing this creates a new monitor.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the expected HTTP status code. This parameter will take effect only when
     * `protocol` is set to **HTTP** or **HTTPS**. Value options are as follows:
     * + A specific value, for example: **200**.
     * + A list of values that are separated with commas (,), for example: **200,202**.
     * + A value range, for example: **200-204**.
     */
    statusCode?: pulumi.Input<string>;
    /**
     * Specifies the maximum time required for waiting for a response from the health check,
     * in seconds. Value ranges from `1` to `50`. It is recommended that you set the value less than that of
     * parameter `interval`.
     */
    timeout?: pulumi.Input<number>;
    /**
     * The update time of the monitor.
     */
    updatedAt?: pulumi.Input<string>;
    /**
     * Specifies the HTTP request path for the health check. The value must start with a
     * slash (/), can contain letters, digits, hyphens (-), slash (/), periods (.), percent signs (%), hashes(#), and(&)
     * and the special characters: `~!()*[]@$^:',+`, and the default value is **&#47;**. This parameter is available only when
     * `protocol` is set to **HTTP** or **HTTPS**.
     */
    urlPath?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Monitor resource.
 */
export interface MonitorArgs {
    /**
     * Specifies the domain name that HTTP requests are sent to during the health check.
     * The domain name consists of 1 to 100 characters, can contain only digits, letters, hyphens (-), and periods (.) and
     * must start with a digit or letter. The value is left blank by default, indicating that the virtual IP address of the
     * load balancer is used as the destination address of HTTP requests. This parameter is available only when `protocol`
     * is set to **HTTP** or **HTTPS**.
     */
    domainName?: pulumi.Input<string>;
    /**
     * Specifies whether the health check is enabled.
     * + **true(default)**: Health check is enabled.
     * + **false**: Health check is disabled.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * Specifies the HTTP method. Value options: **GET**, **HEAD**, **POST**. Defaults to **GET**.
     */
    httpMethod?: pulumi.Input<string>;
    /**
     * Specifies the interval between health checks, in seconds.
     * Value ranges from `1` to `50`.
     */
    interval: pulumi.Input<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from OFFLINE to ONLINE. Value ranges from `1` to `10`.
     */
    maxRetries: pulumi.Input<number>;
    /**
     * Specifies the number of consecutive health checks when the health check result of
     * a backend server changes from ONLINE to OFFLINE. The value ranges from `1` to `10`, and the default value is `3`.
     */
    maxRetriesDown?: pulumi.Input<number>;
    /**
     * Specifies the health check name.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the ID of the backend server group for which the health check is
     * configured. Changing this creates a new monitor.
     */
    poolId: pulumi.Input<string>;
    /**
     * Specifies the port used for the health check. If this parameter is left blank, a port of
     * the backend server will be used by default. It is mandatory when the `protocol` of the backend server group is **IP**.
     * Value ranges from `1` to `65,535`.
     */
    port?: pulumi.Input<number>;
    /**
     * Specifies the health check protocol. Value options: **TCP**, **UDP_CONNECT**,
     * **HTTP**, **HTTPS**, **GRPC** or **TLS**.
     * + If the protocol of the backend server is **QUIC**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **UDP**, the value can only be **UDP_CONNECT**.
     * + If the protocol of the backend server is **TCP**, the value can only be **TCP**, **HTTP** or **HTTPS**.
     * + If the protocol of the backend server is **HTTP**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **HTTPS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **GRPC**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     * + If the protocol of the backend server is **TLS**, the value can only be **TCP**, **HTTP**, **HTTPS**, **TLS** or **GRPC**.
     */
    protocol: pulumi.Input<string>;
    /**
     * The region in which to create the ELB monitor resource. If omitted, the
     * provider-level region will be used. Changing this creates a new monitor.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the expected HTTP status code. This parameter will take effect only when
     * `protocol` is set to **HTTP** or **HTTPS**. Value options are as follows:
     * + A specific value, for example: **200**.
     * + A list of values that are separated with commas (,), for example: **200,202**.
     * + A value range, for example: **200-204**.
     */
    statusCode?: pulumi.Input<string>;
    /**
     * Specifies the maximum time required for waiting for a response from the health check,
     * in seconds. Value ranges from `1` to `50`. It is recommended that you set the value less than that of
     * parameter `interval`.
     */
    timeout: pulumi.Input<number>;
    /**
     * Specifies the HTTP request path for the health check. The value must start with a
     * slash (/), can contain letters, digits, hyphens (-), slash (/), periods (.), percent signs (%), hashes(#), and(&)
     * and the special characters: `~!()*[]@$^:',+`, and the default value is **&#47;**. This parameter is available only when
     * `protocol` is set to **HTTP** or **HTTPS**.
     */
    urlPath?: pulumi.Input<string>;
}
