import * as pulumi from "@pulumi/pulumi";
/**
 * `f5bigip.ltm.Monitor` Configures a custom monitor for use by health checks.
 *
 * For resources should be named with their `full path`. The full path is the combination of the `partition + name` of the resource. For example `/Common/test-monitor`.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as f5bigip from "@pulumi/f5bigip";
 *
 * const monitor = new f5bigip.ltm.Monitor("monitor", {
 *     name: "/Common/terraform_monitor",
 *     parent: "/Common/http",
 *     send: "GET /some/path\x0d\n",
 *     timeout: 999,
 *     interval: 998,
 *     destination: "1.2.3.4:1234",
 * });
 * const test_https_monitor = new f5bigip.ltm.Monitor("test-https-monitor", {
 *     name: "/Common/terraform_monitor",
 *     parent: "/Common/http",
 *     sslProfile: "/Common/serverssl",
 *     send: "GET /some/path\x0d\n",
 *     interval: 999,
 *     timeout: 1000,
 * });
 * const test_ftp_monitor = new f5bigip.ltm.Monitor("test-ftp-monitor", {
 *     name: "/Common/ftp-test",
 *     parent: "/Common/ftp",
 *     interval: 5,
 *     timeUntilUp: 0,
 *     timeout: 16,
 *     destination: "*:8008",
 *     filename: "somefile",
 * });
 * const test_postgresql_monitor = new f5bigip.ltm.Monitor("test-postgresql-monitor", {
 *     name: "/Common/test-postgresql-monitor",
 *     parent: "/Common/postgresql",
 *     send: "SELECT 'Test';",
 *     receive: "Test",
 *     interval: 5,
 *     timeout: 16,
 *     username: "abcd",
 *     password: "abcd1234",
 * });
 * ```
 *
 * ## Importing
 *
 * An existing monitor can be imported into this resource by supplying monitor Name in `full path` as `id`.
 * An example is below:
 * ```sh
 * $ terraform import bigip_ltm_monitor.monitor /Common/terraform_monitor
 * ```
 */
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;
    /**
     * Specifies whether adaptive response time monitoring is enabled for this monitor. The default is `disabled`.
     */
    readonly adaptive: pulumi.Output<string>;
    /**
     * Specifies the absolute number of milliseconds that may not be exceeded by a monitor probe, regardless of Allowed Divergence.
     */
    readonly adaptiveLimit: pulumi.Output<number>;
    /**
     * Specifies the location in the LDAP tree from which the monitor starts the health check
     */
    readonly base: pulumi.Output<string | undefined>;
    /**
     * Specifies whether the system will query the LDAP servers pointed to by any referrals in the query results.
     */
    readonly chaseReferrals: pulumi.Output<string>;
    /**
     * Specifies, when enabled, that the SSL options setting (in OpenSSL) is set to ALL. Accepts 'enabled' or 'disabled' values, the default value is 'enabled'.
     */
    readonly compatibility: pulumi.Output<string | undefined>;
    /**
     * Custom parent monitor for the system to use for setting initial values for the new monitor.
     */
    readonly customParent: pulumi.Output<string | undefined>;
    /**
     * Specifies the database in which the user is created
     */
    readonly database: pulumi.Output<string | undefined>;
    /**
     * Specify an alias address for monitoring
     */
    readonly destination: pulumi.Output<string>;
    /**
     * Specifies the full path and file name of the file that the system attempts to download. The health check is successful if the system can download the file.
     */
    readonly filename: pulumi.Output<string | undefined>;
    /**
     * Specifies an LDAP key for which the monitor searches
     */
    readonly filter: pulumi.Output<string | undefined>;
    /**
     * Specifies, in seconds, the frequency at which the system issues the monitor check when either the resource is down or the status of the resource is unknown,value of `interval` should be always less than `timeout`. Default is `5`.
     */
    readonly interval: pulumi.Output<number>;
    /**
     * Displays the differentiated services code point (DSCP).The default is `0 (zero)`.
     */
    readonly ipDscp: pulumi.Output<number>;
    /**
     * Specifies whether the target must include attributes in its response to be considered up. The options are no (Specifies
     * that the system performs only a one-level search (based on the Filter setting), and does not require that the target
     * returns any attributes.) and yes (Specifies that the system performs a sub-tree search, and if the target returns no
     * attributes, the target is considered down.)
     */
    readonly mandatoryAttributes: pulumi.Output<string | undefined>;
    /**
     * Specifies whether the system automatically changes the status of a resource to Enabled at the next successful monitor check.
     */
    readonly manualResume: pulumi.Output<string>;
    /**
     * Specifies the data transfer process (DTP) mode. The default value is passive. The options are passive (Specifies that the monitor sends a data transfer request to the FTP server. When the FTP server receives the request, the FTP server then initiates and establishes the data connection.) and active (Specifies that the monitor initiates and establishes the data connection with the FTP server.).
     */
    readonly mode: pulumi.Output<string>;
    /**
     * Specifies the Name of the LTM Monitor.Name of Monitor should be full path,full path is the combination of the `partition + monitor name`,For ex:`/Common/test-ltm-monitor`.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Parent monitor for the system to use for setting initial values for the new monitor.
     */
    readonly parent: pulumi.Output<string>;
    /**
     * Specifies the password if the monitored target requires authentication
     */
    readonly password: pulumi.Output<string | undefined>;
    /**
     * Specifies the regular expression representing the text string that the monitor looks for in the returned resource.
     */
    readonly receive: pulumi.Output<string | undefined>;
    /**
     * The system marks the node or pool member disabled when its response matches Receive Disable String but not Receive String.
     */
    readonly receiveDisable: pulumi.Output<string | undefined>;
    /**
     * Instructs the system to mark the target resource down when the test is successful.
     */
    readonly reverse: pulumi.Output<string>;
    /**
     * Specifies the secure communications protocol that the monitor uses to communicate with the target. The options are none
     * (Specifies that the system does not use a security protocol for communications with the target.), ssl (Specifies that
     * the system uses the SSL protocol for communications with the target.), and tls (Specifies that the system uses the TLS
     * protocol for communications with the target.)
     */
    readonly security: pulumi.Output<string | undefined>;
    /**
     * Specifies the text string that the monitor sends to the target object.
     */
    readonly send: pulumi.Output<string>;
    /**
     * Specifies the ssl profile for the monitor. It only makes sense when the parent is `/Common/https`
     */
    readonly sslProfile: pulumi.Output<string | undefined>;
    /**
     * Specifies the number of seconds to wait after a resource first responds correctly to the monitor before setting the resource to up.
     */
    readonly timeUntilUp: pulumi.Output<number>;
    /**
     * Specifies the number of seconds the target has in which to respond to the monitor request. The default is `16` seconds
     */
    readonly timeout: pulumi.Output<number>;
    /**
     * Specifies whether the monitor operates in transparent mode.
     */
    readonly transparent: pulumi.Output<string>;
    /**
     * Specifies the interval for the system to use to perform the health check when a resource is up. The default is `0(Disabled)`
     */
    readonly upInterval: pulumi.Output<number>;
    /**
     * Specifies the user name if the monitored target requires authentication
     */
    readonly username: pulumi.Output<string | undefined>;
    /**
     * 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 {
    /**
     * Specifies whether adaptive response time monitoring is enabled for this monitor. The default is `disabled`.
     */
    adaptive?: pulumi.Input<string>;
    /**
     * Specifies the absolute number of milliseconds that may not be exceeded by a monitor probe, regardless of Allowed Divergence.
     */
    adaptiveLimit?: pulumi.Input<number>;
    /**
     * Specifies the location in the LDAP tree from which the monitor starts the health check
     */
    base?: pulumi.Input<string>;
    /**
     * Specifies whether the system will query the LDAP servers pointed to by any referrals in the query results.
     */
    chaseReferrals?: pulumi.Input<string>;
    /**
     * Specifies, when enabled, that the SSL options setting (in OpenSSL) is set to ALL. Accepts 'enabled' or 'disabled' values, the default value is 'enabled'.
     */
    compatibility?: pulumi.Input<string>;
    /**
     * Custom parent monitor for the system to use for setting initial values for the new monitor.
     */
    customParent?: pulumi.Input<string>;
    /**
     * Specifies the database in which the user is created
     */
    database?: pulumi.Input<string>;
    /**
     * Specify an alias address for monitoring
     */
    destination?: pulumi.Input<string>;
    /**
     * Specifies the full path and file name of the file that the system attempts to download. The health check is successful if the system can download the file.
     */
    filename?: pulumi.Input<string>;
    /**
     * Specifies an LDAP key for which the monitor searches
     */
    filter?: pulumi.Input<string>;
    /**
     * Specifies, in seconds, the frequency at which the system issues the monitor check when either the resource is down or the status of the resource is unknown,value of `interval` should be always less than `timeout`. Default is `5`.
     */
    interval?: pulumi.Input<number>;
    /**
     * Displays the differentiated services code point (DSCP).The default is `0 (zero)`.
     */
    ipDscp?: pulumi.Input<number>;
    /**
     * Specifies whether the target must include attributes in its response to be considered up. The options are no (Specifies
     * that the system performs only a one-level search (based on the Filter setting), and does not require that the target
     * returns any attributes.) and yes (Specifies that the system performs a sub-tree search, and if the target returns no
     * attributes, the target is considered down.)
     */
    mandatoryAttributes?: pulumi.Input<string>;
    /**
     * Specifies whether the system automatically changes the status of a resource to Enabled at the next successful monitor check.
     */
    manualResume?: pulumi.Input<string>;
    /**
     * Specifies the data transfer process (DTP) mode. The default value is passive. The options are passive (Specifies that the monitor sends a data transfer request to the FTP server. When the FTP server receives the request, the FTP server then initiates and establishes the data connection.) and active (Specifies that the monitor initiates and establishes the data connection with the FTP server.).
     */
    mode?: pulumi.Input<string>;
    /**
     * Specifies the Name of the LTM Monitor.Name of Monitor should be full path,full path is the combination of the `partition + monitor name`,For ex:`/Common/test-ltm-monitor`.
     */
    name?: pulumi.Input<string>;
    /**
     * Parent monitor for the system to use for setting initial values for the new monitor.
     */
    parent?: pulumi.Input<string>;
    /**
     * Specifies the password if the monitored target requires authentication
     */
    password?: pulumi.Input<string>;
    /**
     * Specifies the regular expression representing the text string that the monitor looks for in the returned resource.
     */
    receive?: pulumi.Input<string>;
    /**
     * The system marks the node or pool member disabled when its response matches Receive Disable String but not Receive String.
     */
    receiveDisable?: pulumi.Input<string>;
    /**
     * Instructs the system to mark the target resource down when the test is successful.
     */
    reverse?: pulumi.Input<string>;
    /**
     * Specifies the secure communications protocol that the monitor uses to communicate with the target. The options are none
     * (Specifies that the system does not use a security protocol for communications with the target.), ssl (Specifies that
     * the system uses the SSL protocol for communications with the target.), and tls (Specifies that the system uses the TLS
     * protocol for communications with the target.)
     */
    security?: pulumi.Input<string>;
    /**
     * Specifies the text string that the monitor sends to the target object.
     */
    send?: pulumi.Input<string>;
    /**
     * Specifies the ssl profile for the monitor. It only makes sense when the parent is `/Common/https`
     */
    sslProfile?: pulumi.Input<string>;
    /**
     * Specifies the number of seconds to wait after a resource first responds correctly to the monitor before setting the resource to up.
     */
    timeUntilUp?: pulumi.Input<number>;
    /**
     * Specifies the number of seconds the target has in which to respond to the monitor request. The default is `16` seconds
     */
    timeout?: pulumi.Input<number>;
    /**
     * Specifies whether the monitor operates in transparent mode.
     */
    transparent?: pulumi.Input<string>;
    /**
     * Specifies the interval for the system to use to perform the health check when a resource is up. The default is `0(Disabled)`
     */
    upInterval?: pulumi.Input<number>;
    /**
     * Specifies the user name if the monitored target requires authentication
     */
    username?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Monitor resource.
 */
export interface MonitorArgs {
    /**
     * Specifies whether adaptive response time monitoring is enabled for this monitor. The default is `disabled`.
     */
    adaptive?: pulumi.Input<string>;
    /**
     * Specifies the absolute number of milliseconds that may not be exceeded by a monitor probe, regardless of Allowed Divergence.
     */
    adaptiveLimit?: pulumi.Input<number>;
    /**
     * Specifies the location in the LDAP tree from which the monitor starts the health check
     */
    base?: pulumi.Input<string>;
    /**
     * Specifies whether the system will query the LDAP servers pointed to by any referrals in the query results.
     */
    chaseReferrals?: pulumi.Input<string>;
    /**
     * Specifies, when enabled, that the SSL options setting (in OpenSSL) is set to ALL. Accepts 'enabled' or 'disabled' values, the default value is 'enabled'.
     */
    compatibility?: pulumi.Input<string>;
    /**
     * Custom parent monitor for the system to use for setting initial values for the new monitor.
     */
    customParent?: pulumi.Input<string>;
    /**
     * Specifies the database in which the user is created
     */
    database?: pulumi.Input<string>;
    /**
     * Specify an alias address for monitoring
     */
    destination?: pulumi.Input<string>;
    /**
     * Specifies the full path and file name of the file that the system attempts to download. The health check is successful if the system can download the file.
     */
    filename?: pulumi.Input<string>;
    /**
     * Specifies an LDAP key for which the monitor searches
     */
    filter?: pulumi.Input<string>;
    /**
     * Specifies, in seconds, the frequency at which the system issues the monitor check when either the resource is down or the status of the resource is unknown,value of `interval` should be always less than `timeout`. Default is `5`.
     */
    interval?: pulumi.Input<number>;
    /**
     * Displays the differentiated services code point (DSCP).The default is `0 (zero)`.
     */
    ipDscp?: pulumi.Input<number>;
    /**
     * Specifies whether the target must include attributes in its response to be considered up. The options are no (Specifies
     * that the system performs only a one-level search (based on the Filter setting), and does not require that the target
     * returns any attributes.) and yes (Specifies that the system performs a sub-tree search, and if the target returns no
     * attributes, the target is considered down.)
     */
    mandatoryAttributes?: pulumi.Input<string>;
    /**
     * Specifies whether the system automatically changes the status of a resource to Enabled at the next successful monitor check.
     */
    manualResume?: pulumi.Input<string>;
    /**
     * Specifies the data transfer process (DTP) mode. The default value is passive. The options are passive (Specifies that the monitor sends a data transfer request to the FTP server. When the FTP server receives the request, the FTP server then initiates and establishes the data connection.) and active (Specifies that the monitor initiates and establishes the data connection with the FTP server.).
     */
    mode?: pulumi.Input<string>;
    /**
     * Specifies the Name of the LTM Monitor.Name of Monitor should be full path,full path is the combination of the `partition + monitor name`,For ex:`/Common/test-ltm-monitor`.
     */
    name: pulumi.Input<string>;
    /**
     * Parent monitor for the system to use for setting initial values for the new monitor.
     */
    parent: pulumi.Input<string>;
    /**
     * Specifies the password if the monitored target requires authentication
     */
    password?: pulumi.Input<string>;
    /**
     * Specifies the regular expression representing the text string that the monitor looks for in the returned resource.
     */
    receive?: pulumi.Input<string>;
    /**
     * The system marks the node or pool member disabled when its response matches Receive Disable String but not Receive String.
     */
    receiveDisable?: pulumi.Input<string>;
    /**
     * Instructs the system to mark the target resource down when the test is successful.
     */
    reverse?: pulumi.Input<string>;
    /**
     * Specifies the secure communications protocol that the monitor uses to communicate with the target. The options are none
     * (Specifies that the system does not use a security protocol for communications with the target.), ssl (Specifies that
     * the system uses the SSL protocol for communications with the target.), and tls (Specifies that the system uses the TLS
     * protocol for communications with the target.)
     */
    security?: pulumi.Input<string>;
    /**
     * Specifies the text string that the monitor sends to the target object.
     */
    send?: pulumi.Input<string>;
    /**
     * Specifies the ssl profile for the monitor. It only makes sense when the parent is `/Common/https`
     */
    sslProfile?: pulumi.Input<string>;
    /**
     * Specifies the number of seconds to wait after a resource first responds correctly to the monitor before setting the resource to up.
     */
    timeUntilUp?: pulumi.Input<number>;
    /**
     * Specifies the number of seconds the target has in which to respond to the monitor request. The default is `16` seconds
     */
    timeout?: pulumi.Input<number>;
    /**
     * Specifies whether the monitor operates in transparent mode.
     */
    transparent?: pulumi.Input<string>;
    /**
     * Specifies the interval for the system to use to perform the health check when a resource is up. The default is `0(Disabled)`
     */
    upInterval?: pulumi.Input<number>;
    /**
     * Specifies the user name if the monitored target requires authentication
     */
    username?: pulumi.Input<string>;
}
