import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use the data source to get the list of CFW IPS custom rules.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const fwInstanceId = config.requireObject("fwInstanceId");
 * const objectId = config.requireObject("objectId");
 * const test = huaweicloud.Cfw.getIpsCustomRules({
 *     fwInstanceId: fwInstanceId,
 *     objectId: objectId,
 * });
 * ```
 */
export declare function getIpsCustomRules(args: GetIpsCustomRulesArgs, opts?: pulumi.InvokeOptions): Promise<GetIpsCustomRulesResult>;
/**
 * A collection of arguments for invoking getIpsCustomRules.
 */
export interface GetIpsCustomRulesArgs {
    /**
     * Specifies the action type.
     * The valid value can be **0** (log only) or **1** (reset/block).
     */
    actionType?: number;
    /**
     * Specifies the affected OS.
     * The valid values are as follows:
     * + **1**: Windows;
     * + **2**: Linux;
     * + **3**: FreeBSD;
     * + **4**: Solaris;
     * + **5**: Other Unix;
     * + **6**: Network device;
     * + **7**: MAC OS;
     * + **8**: IOS;
     * + **9**: Android;
     * + **10**: Other;
     */
    affectedOs?: number;
    /**
     * Specifies the attack type.
     * The valid values are as follows:
     * + **1**: access control;
     * + **2**: vulnerability scan;
     * + **3**: email phishing;
     * + **4**: vulnerability exploits;
     * + **5**: web attack;
     * + **6**: password cracking;
     * + **7**: hijacking attack;
     * + **8**: protocol exception;
     * + **9**: trojan;
     * + **10**: worm;
     * + **11**: buffer overflow;
     * + **12**: hacker tool;
     * + **13**: spyware;
     * + **14**: DDoS flood;
     * + **15**: application-layer DDoS attack;
     * + **16**: other suspicious behavior;
     * + **17**: suspicious DNS activity;
     * + **18**: phishing;
     * + **19**: spam;
     */
    attackType?: number;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the firewall ID.
     */
    fwInstanceId: string;
    /**
     * Specifies the IPS custom rule name.
     */
    ipsName?: string;
    /**
     * Specifies the protected object ID.
     */
    objectId: string;
    /**
     * Specifies the protocol.
     * The valid values are as follows:
     * + **1**: FTP;
     * + **2**: TELNET;
     * + **3**: SMTP;
     * + **4**: DNS-TCP;
     * + **5**: DNS-UDP;
     * + **6**: DHCP;
     * + **7**: TFTP;
     * + **8**: FINGER;
     * + **9**: HTTP;
     * + **10**: POP3;
     * + **11**: SUNRPC-TCP;
     * + **12**: SUNRPC-UDP;
     * + **13**: NNTP;
     * + **14**: MSRPC-TCP;
     * + **15**: MSRPC-UDP;
     * + **16**: NETBIOS-NAME_TCP;
     * + **17**: NETBIOS-NAME_UDP;
     * + **18**: NETBIOS-SMB;
     * + **19**: NETBIOS-DATAGRAM;
     * + **20**: IMAP4;
     * + **21**: SNMP;
     * + **22**: LDAP;
     * + **23**: MSSQL;
     * + **24**: ORACLE;
     * + **25**: MYSQL;
     * + **26**: VOIP-SIP-TCP;
     * + **27**: VOIP-SIP-UDP;
     * + **28**: VOIP-H245;
     * + **29**: VOIP-Q931;
     * + **30**: OTHER-TCP;
     * + **31**: OTHER-UDP;
     */
    protocol?: number;
    /**
     * Specifies the region in which to query the resource.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies the severity.
     * The valid values are as follows:
     * + **0**: critical;
     * + **1**: high;
     * + **2**: medium;
     * + **3**: low;
     */
    severity?: number;
    /**
     * Specifies the affected software.
     * The valid values are as follows:
     * + **1**: ADOBE;
     * + **2**: APACHE;
     * + **3**: APPLE;
     * + **4**: CA;
     * + **5**: CISCO;
     * + **6**: GOOGLE CHROME;
     * + **7**: HP;
     * + **8**: IBM;
     * + **9**: IE;
     * + **10**: IIS;
     * + **11**: MCAFEE;
     * + **12**: MEDIAPLAYER;
     * + **13**: MICROSOFT.NET;
     * + **14**: MICROSOFT EDGE;
     * + **15**: MICROSOFT EXCHANGE;
     * + **16**: MICROSOFT OFFICE;
     * + **17**: MICROSOFT OUTLOOK;
     * + **18**: MICROSOFT SHAREPOINT;
     * + **19**: MICROSOFT WINDOWS;
     * + **20**: MOZILLA;
     * + **21**: MSSQL;
     * + **22**: MYSQL;
     * + **23**: NOVELL;
     * + **24**: ORACLE;
     * + **25**: SAMBA;
     * + **26**: SAMSUNG;
     * + **27**: SAP;
     * + **28**: SCADA;
     * + **29**: SQUID;
     * + **30**: SUN;
     * + **31**: SYMANTEC;
     * + **32**: TREND MICRO;
     * + **33**: VMWARE;
     * + **34**: WORDPRESS;
     * + **35**: OTHER;
     */
    software?: number;
}
/**
 * A collection of values returned by getIpsCustomRules.
 */
export interface GetIpsCustomRulesResult {
    readonly actionType?: number;
    /**
     * The affected OS.
     */
    readonly affectedOs?: number;
    /**
     * The attack type.
     */
    readonly attackType?: number;
    readonly enterpriseProjectId?: string;
    readonly fwInstanceId: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The IPS rule name.
     */
    readonly ipsName?: string;
    readonly objectId: string;
    /**
     * The protocol.
     */
    readonly protocol?: number;
    /**
     * The custom IPS rule records.
     */
    readonly records: outputs.Cfw.GetIpsCustomRulesRecord[];
    readonly region: string;
    /**
     * The severity.
     */
    readonly severity?: number;
    /**
     * The affected software.
     */
    readonly software?: number;
}
export declare function getIpsCustomRulesOutput(args: GetIpsCustomRulesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetIpsCustomRulesResult>;
/**
 * A collection of arguments for invoking getIpsCustomRules.
 */
export interface GetIpsCustomRulesOutputArgs {
    /**
     * Specifies the action type.
     * The valid value can be **0** (log only) or **1** (reset/block).
     */
    actionType?: pulumi.Input<number>;
    /**
     * Specifies the affected OS.
     * The valid values are as follows:
     * + **1**: Windows;
     * + **2**: Linux;
     * + **3**: FreeBSD;
     * + **4**: Solaris;
     * + **5**: Other Unix;
     * + **6**: Network device;
     * + **7**: MAC OS;
     * + **8**: IOS;
     * + **9**: Android;
     * + **10**: Other;
     */
    affectedOs?: pulumi.Input<number>;
    /**
     * Specifies the attack type.
     * The valid values are as follows:
     * + **1**: access control;
     * + **2**: vulnerability scan;
     * + **3**: email phishing;
     * + **4**: vulnerability exploits;
     * + **5**: web attack;
     * + **6**: password cracking;
     * + **7**: hijacking attack;
     * + **8**: protocol exception;
     * + **9**: trojan;
     * + **10**: worm;
     * + **11**: buffer overflow;
     * + **12**: hacker tool;
     * + **13**: spyware;
     * + **14**: DDoS flood;
     * + **15**: application-layer DDoS attack;
     * + **16**: other suspicious behavior;
     * + **17**: suspicious DNS activity;
     * + **18**: phishing;
     * + **19**: spam;
     */
    attackType?: pulumi.Input<number>;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the firewall ID.
     */
    fwInstanceId: pulumi.Input<string>;
    /**
     * Specifies the IPS custom rule name.
     */
    ipsName?: pulumi.Input<string>;
    /**
     * Specifies the protected object ID.
     */
    objectId: pulumi.Input<string>;
    /**
     * Specifies the protocol.
     * The valid values are as follows:
     * + **1**: FTP;
     * + **2**: TELNET;
     * + **3**: SMTP;
     * + **4**: DNS-TCP;
     * + **5**: DNS-UDP;
     * + **6**: DHCP;
     * + **7**: TFTP;
     * + **8**: FINGER;
     * + **9**: HTTP;
     * + **10**: POP3;
     * + **11**: SUNRPC-TCP;
     * + **12**: SUNRPC-UDP;
     * + **13**: NNTP;
     * + **14**: MSRPC-TCP;
     * + **15**: MSRPC-UDP;
     * + **16**: NETBIOS-NAME_TCP;
     * + **17**: NETBIOS-NAME_UDP;
     * + **18**: NETBIOS-SMB;
     * + **19**: NETBIOS-DATAGRAM;
     * + **20**: IMAP4;
     * + **21**: SNMP;
     * + **22**: LDAP;
     * + **23**: MSSQL;
     * + **24**: ORACLE;
     * + **25**: MYSQL;
     * + **26**: VOIP-SIP-TCP;
     * + **27**: VOIP-SIP-UDP;
     * + **28**: VOIP-H245;
     * + **29**: VOIP-Q931;
     * + **30**: OTHER-TCP;
     * + **31**: OTHER-UDP;
     */
    protocol?: pulumi.Input<number>;
    /**
     * Specifies the region in which to query the resource.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the severity.
     * The valid values are as follows:
     * + **0**: critical;
     * + **1**: high;
     * + **2**: medium;
     * + **3**: low;
     */
    severity?: pulumi.Input<number>;
    /**
     * Specifies the affected software.
     * The valid values are as follows:
     * + **1**: ADOBE;
     * + **2**: APACHE;
     * + **3**: APPLE;
     * + **4**: CA;
     * + **5**: CISCO;
     * + **6**: GOOGLE CHROME;
     * + **7**: HP;
     * + **8**: IBM;
     * + **9**: IE;
     * + **10**: IIS;
     * + **11**: MCAFEE;
     * + **12**: MEDIAPLAYER;
     * + **13**: MICROSOFT.NET;
     * + **14**: MICROSOFT EDGE;
     * + **15**: MICROSOFT EXCHANGE;
     * + **16**: MICROSOFT OFFICE;
     * + **17**: MICROSOFT OUTLOOK;
     * + **18**: MICROSOFT SHAREPOINT;
     * + **19**: MICROSOFT WINDOWS;
     * + **20**: MOZILLA;
     * + **21**: MSSQL;
     * + **22**: MYSQL;
     * + **23**: NOVELL;
     * + **24**: ORACLE;
     * + **25**: SAMBA;
     * + **26**: SAMSUNG;
     * + **27**: SAP;
     * + **28**: SCADA;
     * + **29**: SQUID;
     * + **30**: SUN;
     * + **31**: SYMANTEC;
     * + **32**: TREND MICRO;
     * + **33**: VMWARE;
     * + **34**: WORDPRESS;
     * + **35**: OTHER;
     */
    software?: pulumi.Input<number>;
}
