• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/**
17 * @file
18 * @kit NetworkKit
19 */
20
21/**
22 * Provides interfaces to manage net firewall.
23 *
24 * @namespace netFirewall
25 * @syscap SystemCapability.Communication.NetManager.NetFirewall
26 * @systemapi Hide this for inner system use.
27 * @since 14
28 */
29declare namespace netFirewall {
30  /**
31   * Set firewall policy by userId.
32   * <p>Enables or disables the firewall function, and specifies the default actions for inbound connections and
33   * outbound connections.</p>
34   *
35   * @permission ohos.permission.MANAGE_NET_FIREWALL
36   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
37   * @param { NetFirewallPolicy } policy - The firewall policy to be set.
38   * @returns { Promise<void> } Returns void.
39   * @throws { BusinessError } 201 - Permission denied.
40   * @throws { BusinessError } 202 - Non-system applications use system APIs.
41   * @throws { BusinessError } 401 - Parameter error.
42   * @throws { BusinessError } 2100001 - Invalid parameter value.
43   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
44   * @throws { BusinessError } 2100003 - System internal error.
45   * @throws { BusinessError } 29400000 - The specified user does not exist.
46   * @syscap SystemCapability.Communication.NetManager.NetFirewall
47   * @systemapi Hide this for inner system use.
48   * @since 14
49   */
50  function setNetFirewallPolicy(userId: number, policy: NetFirewallPolicy): Promise<void>;
51
52  /**
53   * Get firewall policy by userId.
54   *
55   * @permission ohos.permission.GET_NET_FIREWALL
56   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
57   * @returns { Promise<NetFirewallPolicy> } Current user firewall policy.
58   * @throws { BusinessError } 201 - Permission denied.
59   * @throws { BusinessError } 202 - Non-system applications use system APIs.
60   * @throws { BusinessError } 401 - Parameter error.
61   * @throws { BusinessError } 2100001 - Invalid parameter value.
62   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
63   * @throws { BusinessError } 2100003 - System internal error.
64   * @throws { BusinessError } 29400000 - The specified user does not exist.
65   * @syscap SystemCapability.Communication.NetManager.NetFirewall
66   * @systemapi Hide this for inner system use.
67   * @since 14
68   */
69  function getNetFirewallPolicy(userId: number): Promise<NetFirewallPolicy>;
70
71  /**
72   * Add a firewall rule.
73   *
74   * @permission ohos.permission.MANAGE_NET_FIREWALL
75   * @param { NetFirewallRule } rule - Firewall rule.
76   * @returns { Promise<number> } ruleId - Indicates the rule ID, generated by the system.
77   * @throws { BusinessError } 201 - Permission denied.
78   * @throws { BusinessError } 202 - Non-system applications use system APIs.
79   * @throws { BusinessError } 401 - Parameter error.
80   * @throws { BusinessError } 2100001 - Invalid parameter value.
81   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
82   * @throws { BusinessError } 2100003 - System internal error.
83   * @throws { BusinessError } 29400000 - The specified user does not exist.
84   * @throws { BusinessError } 29400001 - The number of firewall rules exceeds the maximum.
85   * @throws { BusinessError } 29400002 - The number of IP address rules in the firewall rule exceeds the maximum.
86   * @throws { BusinessError } 29400003 - The number of port rules in the firewall rule exceeds the maximum.
87   * @throws { BusinessError } 29400004 - The number of domain rules in the firewall rule exceeds the maximum.
88   * @throws { BusinessError } 29400005 - The number of domain rules exceeds the maximum.
89   * @throws { BusinessError } 29400007 - The dns rule is duplication.
90   * @syscap SystemCapability.Communication.NetManager.NetFirewall
91   * @systemapi Hide this for inner system use.
92   * @since 14
93   */
94  function addNetFirewallRule(rule: NetFirewallRule): Promise<number>;
95
96  /**
97   * Update a firewall rule.
98   *
99   * @permission ohos.permission.MANAGE_NET_FIREWALL
100   * @param { NetFirewallRule } rule - Firewall rule.
101   * @returns { Promise<void> } Returns void.
102   * @throws { BusinessError } 201 - Permission denied.
103   * @throws { BusinessError } 202 - Non-system applications use system APIs.
104   * @throws { BusinessError } 401 - Parameter error.
105   * @throws { BusinessError } 2100001 - Invalid parameter value.
106   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
107   * @throws { BusinessError } 2100003 - System internal error.
108   * @throws { BusinessError } 29400000 - The specified user does not exist.
109   * @throws { BusinessError } 29400002 - The number of IP address rules in the firewall rule exceeds the maximum.
110   * @throws { BusinessError } 29400003 - The number of port rules in the firewall rule exceeds the maximum.
111   * @throws { BusinessError } 29400004 - The number of domain rules in the firewall rule exceeds the maximum.
112   * @throws { BusinessError } 29400005 - The number of domain rules exceeds the maximum.
113   * @throws { BusinessError } 29400006 - The specified rule does not exist.
114   * @throws { BusinessError } 29400007 - The dns rule is duplication.
115   * @syscap SystemCapability.Communication.NetManager.NetFirewall
116   * @systemapi Hide this for inner system use.
117   * @since 14
118   */
119  function updateNetFirewallRule(rule: NetFirewallRule): Promise<void>;
120
121  /**
122   * Delete a firewall rule by userId and ruleId.
123   *
124   * @permission ohos.permission.MANAGE_NET_FIREWALL
125   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
126   * @param { number } ruleId - Rule ID.
127   * @returns { Promise<void> } Returns void.
128   * @throws { BusinessError } 201 - Permission denied.
129   * @throws { BusinessError } 202 - Non-system applications use system APIs.
130   * @throws { BusinessError } 401 - Parameter error.
131   * @throws { BusinessError } 2100001 - Invalid parameter value.
132   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
133   * @throws { BusinessError } 2100003 - System internal error.
134   * @throws { BusinessError } 29400000 - The specified user does not exist.
135   * @throws { BusinessError } 29400006 - The specified rule does not exist.
136   * @syscap SystemCapability.Communication.NetManager.NetFirewall
137   * @systemapi Hide this for inner system use.
138   * @since 14
139   */
140  function removeNetFirewallRule(userId: number, ruleId: number): Promise<void>;
141
142  /**
143   * Get firewall rules by userId, and it is necessary to specify the pagination query parameters.
144   *
145   * @permission ohos.permission.GET_NET_FIREWALL
146   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
147   * @param { RequestParam } requestParam - Paging query input parameters.
148   * @returns { Promise<FirewallRulePage> } Paginated firewall rule list.
149   * @throws { BusinessError } 201 - Permission denied.
150   * @throws { BusinessError } 202 - Non-system applications use system APIs.
151   * @throws { BusinessError } 401 - Parameter error.
152   * @throws { BusinessError } 2100001 - Invalid parameter value.
153   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
154   * @throws { BusinessError } 2100003 - System internal error.
155   * @throws { BusinessError } 29400000 - The specified user does not exist.
156   * @syscap SystemCapability.Communication.NetManager.NetFirewall
157   * @systemapi Hide this for inner system use.
158   * @since 14
159   */
160  function getNetFirewallRules(userId: number, requestParam: RequestParam): Promise<FirewallRulePage>;
161
162  /**
163   * Get a specified firewall rule by userId and ruleId.
164   *
165   * @permission ohos.permission.GET_NET_FIREWALL
166   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
167   * @param { number } ruleId - Rule ID.
168   * @returns { Promise<NetFirewallRule> } Firewall Rule.
169   * @throws { BusinessError } 201 - Permission denied.
170   * @throws { BusinessError } 202 - Non-system applications use system APIs.
171   * @throws { BusinessError } 401 - Parameter error.
172   * @throws { BusinessError } 2100001 - Invalid parameter value.
173   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
174   * @throws { BusinessError } 2100003 - System internal error.
175   * @throws { BusinessError } 29400000 - The specified user does not exist.
176   * @throws { BusinessError } 29400006 - The specified rule does not exist.
177   * @syscap SystemCapability.Communication.NetManager.NetFirewall
178   * @systemapi Hide this for inner system use.
179   * @since 14
180   */
181  function getNetFirewallRule(userId: number, ruleId: number): Promise<NetFirewallRule>;
182
183  /**
184   * Get intercepted records by userId, and it is necessary to specify the pagination query parameters.
185   *
186   * @permission ohos.permission.GET_NET_FIREWALL
187   * @param { number } userId - Indicates the user ID. It cannot be the ID of a user that does not exist.
188   * @param { RequestParam } requestParam - Paging query input parameters.
189   * @returns { Promise<InterceptedRecordPage> } Block Record List.
190   * @throws { BusinessError } 201 - Permission denied.
191   * @throws { BusinessError } 202 - Non-system applications use system APIs.
192   * @throws { BusinessError } 401 - Parameter error.
193   * @throws { BusinessError } 2100001 - Invalid parameter value.
194   * @throws { BusinessError } 2100002 - Operation failed. Cannot connect to service.
195   * @throws { BusinessError } 2100003 - System internal error.
196   * @throws { BusinessError } 29400000 - The specified user does not exist.
197   * @syscap SystemCapability.Communication.NetManager.NetFirewall
198   * @systemapi Hide this for inner system use.
199   * @since 14
200   */
201  function getInterceptedRecords(userId: number, requestParam: RequestParam): Promise<InterceptedRecordPage>;
202
203  /**
204   * Firewall rule direction enumeration.
205   *
206   * @enum {number}
207   * @syscap SystemCapability.Communication.NetManager.NetFirewall
208   * @systemapi Hide this for inner system use.
209   * @since 14
210   */
211  enum NetFirewallRuleDirection {
212    /**
213     * Inbound.
214     *
215     * @syscap SystemCapability.Communication.NetManager.NetFirewall
216     * @systemapi Hide this for inner system use.
217     * @since 14
218     */
219    RULE_IN = 1,
220    /**
221     * Outbound.
222     *
223     * @syscap SystemCapability.Communication.NetManager.NetFirewall
224     * @systemapi Hide this for inner system use.
225     * @since 14
226     */
227    RULE_OUT = 2
228  }
229
230  /**
231   * Firewall rule behavior enumeration.
232   *
233   * @enum {number}
234   * @syscap SystemCapability.Communication.NetManager.NetFirewall
235   * @systemapi Hide this for inner system use.
236   * @since 14
237   */
238  enum FirewallRuleAction {
239    /**
240     * Allow access.
241     *
242     * @syscap SystemCapability.Communication.NetManager.NetFirewall
243     * @systemapi Hide this for inner system use.
244     * @since 14
245     */
246    RULE_ALLOW = 0,
247    /**
248     * Deny access.
249     *
250     * @syscap SystemCapability.Communication.NetManager.NetFirewall
251     * @systemapi Hide this for inner system use.
252     * @since 14
253     */
254    RULE_DENY = 1
255  }
256
257  /**
258   * Indicates the firewall rule type.
259   *
260   * @enum {number}
261   * @syscap SystemCapability.Communication.NetManager.NetFirewall
262   * @systemapi Hide this for inner system use.
263   * @since 14
264   */
265  enum NetFirewallRuleType {
266    /**
267     * IP type rules.
268     *
269     * @syscap SystemCapability.Communication.NetManager.NetFirewall
270     * @systemapi Hide this for inner system use.
271     * @since 14
272     */
273    RULE_IP = 1,
274    /**
275     * Domain type rules.
276     *
277     * @syscap SystemCapability.Communication.NetManager.NetFirewall
278     * @systemapi Hide this for inner system use.
279     * @since 14
280     */
281    RULE_DOMAIN = 2,
282    /**
283     * DNS type rules.
284     *
285     * @syscap SystemCapability.Communication.NetManager.NetFirewall
286     * @systemapi Hide this for inner system use.
287     * @since 14
288     */
289    RULE_DNS = 3
290  }
291
292  /**
293   * Pagination query sorting field.
294   *
295   * @enum {number}
296   * @syscap SystemCapability.Communication.NetManager.NetFirewall
297   * @systemapi Hide this for inner system use.
298   * @since 14
299   */
300  enum NetFirewallOrderField {
301    /**
302     * Sort rule names, it can be referenced only by the getNetFirewallRules interface.
303     *
304     * @syscap SystemCapability.Communication.NetManager.NetFirewall
305     * @systemapi Hide this for inner system use.
306     * @since 14
307     */
308    ORDER_BY_RULE_NAME = 1,
309    /**
310     * Sort the recorded time, it can be referenced only by the getNetFirewallRules interface.
311     *
312     * @syscap SystemCapability.Communication.NetManager.NetFirewall
313     * @systemapi Hide this for inner system use.
314     * @since 14
315     */
316    ORDER_BY_RECORD_TIME = 100,
317  }
318
319  /**
320   * Pagination query sorting type.
321   *
322   * @enum {number}
323   * @syscap SystemCapability.Communication.NetManager.NetFirewall
324   * @systemapi Hide this for inner system use.
325   * @since 14
326   */
327  enum NetFirewallOrderType {
328    /**
329     * Ascending order.
330     *
331     * @syscap SystemCapability.Communication.NetManager.NetFirewall
332     * @systemapi Hide this for inner system use.
333     * @since 14
334     */
335    ORDER_ASC = 1,
336    /**
337     * Descending order.
338     *
339     * @syscap SystemCapability.Communication.NetManager.NetFirewall
340     * @systemapi Hide this for inner system use.
341     * @since 14
342     */
343    ORDER_DESC = 100,
344  }
345
346  /**
347   * Firewall policy.
348   *
349   * @interface NetFirewallPolicy
350   * @syscap SystemCapability.Communication.NetManager.NetFirewall
351   * @systemapi Hide this for inner system use.
352   * @since 14
353   */
354  interface NetFirewallPolicy {
355    /**
356     * Whether the firewall is open.
357     *
358     * @type {boolean}
359     * @syscap SystemCapability.Communication.NetManager.NetFirewall
360     * @systemapi Hide this for inner system use.
361     * @since 14
362     */
363    isOpen: boolean;
364
365    /**
366     * Inbound connections are allowed or denied by default.
367     *
368     * @type {FirewallRuleAction}
369     * @syscap SystemCapability.Communication.NetManager.NetFirewall
370     * @systemapi Hide this for inner system use.
371     * @since 14
372     */
373    inAction: FirewallRuleAction;
374
375    /**
376     * Outbound connections are allowed or denied by default.
377     *
378     * @type {FirewallRuleAction}
379     * @syscap SystemCapability.Communication.NetManager.NetFirewall
380     * @systemapi Hide this for inner system use.
381     * @since 14
382     */
383    outAction: FirewallRuleAction;
384  }
385
386  /**
387   * Firewall IP parameters.
388   *
389   * @interface NetFirewallIpParams
390   * @syscap SystemCapability.Communication.NetManager.NetFirewall
391   * @systemapi Hide this for inner system use.
392   * @since 14
393   */
394  interface NetFirewallIpParams {
395    /**
396     * 1: IP address or subnet, when using a single IP, the mask is 32; 2: IP segment.
397     *
398     * @type {number}
399     * @syscap SystemCapability.Communication.NetManager.NetFirewall
400     * @systemapi Hide this for inner system use.
401     * @since 14
402     */
403    type: number;
404    /**
405     * 1: IPv4, 2: IPv6, default is IPv4.
406     *
407     * @type {?number}
408     * @syscap SystemCapability.Communication.NetManager.NetFirewall
409     * @systemapi Hide this for inner system use.
410     * @since 14
411     */
412    family?: number;
413    /**
414     * IP address: Valid when type equals 1, otherwise it will be ignored.
415     *
416     * @type {?string}
417     * @syscap SystemCapability.Communication.NetManager.NetFirewall
418     * @systemapi Hide this for inner system use.
419     * @since 14
420     */
421    address?: string;
422    /**
423     * IPv4: subnet mask, IPv6: prefix, valid when type equals 1, otherwise it will be ignored.
424     *
425     * @type {?number}
426     * @syscap SystemCapability.Communication.NetManager.NetFirewall
427     * @systemapi Hide this for inner system use.
428     * @since 14
429     */
430    mask?: number;
431    /**
432     * Start IP: valid when type equals 2, otherwise it will be ignored.
433     *
434     * @type {?string}
435     * @syscap SystemCapability.Communication.NetManager.NetFirewall
436     * @systemapi Hide this for inner system use.
437     * @since 14
438     */
439    startIp?: string;
440    /**
441     * End IP: valid when type equals 2, otherwise it will be ignored.
442     *
443     * @type {?string}
444     * @syscap SystemCapability.Communication.NetManager.NetFirewall
445     * @systemapi Hide this for inner system use.
446     * @since 14
447     */
448    endIp?: string;
449  }
450
451  /**
452   * Firewall port parameters.
453   *
454   * @interface NetFirewallPortParams
455   * @syscap SystemCapability.Communication.NetManager.NetFirewall
456   * @systemapi Hide this for inner system use.
457   * @since 14
458   */
459  interface NetFirewallPortParams {
460    /**
461     * Start port, when there is only one port, the start port is the same as the end port.
462     *
463     * @type {number}
464     * @syscap SystemCapability.Communication.NetManager.NetFirewall
465     * @systemapi Hide this for inner system use.
466     * @since 14
467     */
468    startPort: number;
469    /**
470     * End port, when there is only one port, the start port is the same as the end port.
471     *
472     * @type {number}
473     * @syscap SystemCapability.Communication.NetManager.NetFirewall
474     * @systemapi Hide this for inner system use.
475     * @since 14
476     */
477    endPort: number;
478  }
479
480  /**
481   * Firewall domain name parameters.
482   *
483   * @interface NetFirewallDomainParams
484   * @syscap SystemCapability.Communication.NetManager.NetFirewall
485   * @systemapi Hide this for inner system use.
486   * @since 14
487   */
488  interface NetFirewallDomainParams {
489    /**
490     * Is there a universal configuration rule.
491     *
492     * @type {boolean}
493     * @syscap SystemCapability.Communication.NetManager.NetFirewall
494     * @systemapi Hide this for inner system use.
495     * @since 14
496     */
497    isWildcard: boolean;
498    /**
499     * Domain: when isWildcard is false, the complete domain that needs to be determined;
500     * When isWildcard is true, fuzzy domain only support domains like *.openharmony.cn; *.com.
501     *
502     * @type {string}
503     * @syscap SystemCapability.Communication.NetManager.NetFirewall
504     * @systemapi Hide this for inner system use.
505     * @since 14
506     */
507    domain: string;
508  }
509
510  /**
511   * Firewall DNS parameters.
512   *
513   * @interface NetFirewallDnsParams
514   * @syscap SystemCapability.Communication.NetManager.NetFirewall
515   * @systemapi Hide this for inner system use.
516   * @since 14
517   */
518  interface NetFirewallDnsParams {
519    /**
520     * Primary DNS.
521     *
522     * @type {string}
523     * @syscap SystemCapability.Communication.NetManager.NetFirewall
524     * @systemapi Hide this for inner system use.
525     * @since 14
526     */
527    primaryDns: string;
528    /**
529     * Backup DNS.
530     *
531     * @type {?string}
532     * @syscap SystemCapability.Communication.NetManager.NetFirewall
533     * @systemapi Hide this for inner system use.
534     * @since 14
535     */
536    standbyDns?: string;
537  }
538
539  /**
540   * Firewall rules.
541   *
542   * @interface NetFirewallRule
543   * @syscap SystemCapability.Communication.NetManager.NetFirewall
544   * @systemapi Hide this for inner system use.
545   * @since 14
546   */
547  interface NetFirewallRule {
548    /**
549     * User id.
550     *
551     * @type {number}
552     * @syscap SystemCapability.Communication.NetManager.NetFirewall
553     * @systemapi Hide this for inner system use.
554     * @since 14
555     */
556    userId: number;
557    /**
558     * Rule name.
559     *
560     * @type {string}
561     * @syscap SystemCapability.Communication.NetManager.NetFirewall
562     * @systemapi Hide this for inner system use.
563     * @since 14
564     */
565    name: string;
566    /**
567     * Rule direction, inbound or outbound.
568     *
569     * @type {NetFirewallRuleDirection}
570     * @syscap SystemCapability.Communication.NetManager.NetFirewall
571     * @systemapi Hide this for inner system use.
572     * @since 14
573     */
574    direction: NetFirewallRuleDirection;
575    /**
576     * Rule action.
577     *
578     * @type {FirewallRuleAction}
579     * @syscap SystemCapability.Communication.NetManager.NetFirewall
580     * @systemapi Hide this for inner system use.
581     * @since 14
582     */
583    action: FirewallRuleAction;
584    /**
585     * Rule type.
586     *
587     * @type {NetFirewallRuleType}
588     * @syscap SystemCapability.Communication.NetManager.NetFirewall
589     * @systemapi Hide this for inner system use.
590     * @since 14
591     */
592    type: NetFirewallRuleType;
593    /**
594     * Whether the rule is enabled.
595     *
596     * @type {boolean}
597     * @syscap SystemCapability.Communication.NetManager.NetFirewall
598     * @systemapi Hide this for inner system use.
599     * @since 14
600     */
601    isEnabled: boolean;
602    /**
603     * Rule id: When a rule is added to the system, the system generates a rule ID.
604     *
605     * @type {?number}
606     * @syscap SystemCapability.Communication.NetManager.NetFirewall
607     * @systemapi Hide this for inner system use.
608     * @since 14
609     */
610    id?: number;
611    /**
612     * Rule description.
613     *
614     * @type {?string}
615     * @syscap SystemCapability.Communication.NetManager.NetFirewall
616     * @systemapi Hide this for inner system use.
617     * @since 14
618     */
619    description?: string;
620    /**
621     * Application or service UID.
622     *
623     * @type {?number}
624     * @syscap SystemCapability.Communication.NetManager.NetFirewall
625     * @systemapi Hide this for inner system use.
626     * @since 14
627     */
628    appUid?: number;
629    /**
630     * Local IP address: valid when ruleType = RULE_IP, otherwise it will be ignored.
631     *
632     * @type {?Array<NetFirewallIpParams>}
633     * @syscap SystemCapability.Communication.NetManager.NetFirewall
634     * @systemapi Hide this for inner system use.
635     * @since 14
636     */
637    localIps?: Array<NetFirewallIpParams>;
638    /**
639     * Remote IP address: valid when ruleType = RULE_IP, otherwise it will be ignored.
640     *
641     * @type {?Array<NetFirewallIpParams>}
642     * @syscap SystemCapability.Communication.NetManager.NetFirewall
643     * @systemapi Hide this for inner system use.
644     * @since 14
645     */
646    remoteIps?: Array<NetFirewallIpParams>;
647    /**
648     * Protocol, 1: ICMPv4, 6: TCP, 17: UDP, 58: ICMPv6. Valid when ruleType = RULE_IP, otherwise it will be ignored.
649     *
650     * @type {?number}
651     * @syscap SystemCapability.Communication.NetManager.NetFirewall
652     * @systemapi Hide this for inner system use.
653     * @since 14
654     */
655    protocol?: number;
656    /**
657     * Local ports: valid when ruleType = RULE_IP, otherwise it will be ignored.
658     *
659     * @type {?Array<NetFirewallPortParams>}
660     * @syscap SystemCapability.Communication.NetManager.NetFirewall
661     * @systemapi Hide this for inner system use.
662     * @since 14
663     */
664    localPorts?: Array<NetFirewallPortParams>;
665    /**
666     * Remote ports: valid when ruleType = RULE_IP, otherwise it will be ignored.
667     *
668     * @type {?Array<NetFirewallPortParams>}
669     * @syscap SystemCapability.Communication.NetManager.NetFirewall
670     * @systemapi Hide this for inner system use.
671     * @since 14
672     */
673    remotePorts?: Array<NetFirewallPortParams>;
674    /**
675     * Domain name list: valid when ruleType = RULE_DOMAIN, otherwise it will be ignored.
676     *
677     * @type {?Array<NetFirewallDomainParams>}
678     * @syscap SystemCapability.Communication.NetManager.NetFirewall
679     * @systemapi Hide this for inner system use.
680     * @since 14
681     */
682    domains?: Array<NetFirewallDomainParams>;
683    /**
684     * DNS: valid when ruleType = RULE_DNS, otherwise it will be ignored.
685     *
686     * @type {?NetFirewallDnsParams}
687     * @syscap SystemCapability.Communication.NetManager.NetFirewall
688     * @systemapi Hide this for inner system use.
689     * @since 14
690     */
691    dns?: NetFirewallDnsParams;
692  }
693
694  /**
695   * Intercepted record.
696   *
697   * @interface InterceptedRecord
698   * @syscap SystemCapability.Communication.NetManager.NetFirewall
699   * @systemapi Hide this for inner system use.
700   * @since 14
701   */
702  interface InterceptedRecord {
703    /**
704     * Time stamp.
705     *
706     * @type {number}
707     * @syscap SystemCapability.Communication.NetManager.NetFirewall
708     * @systemapi Hide this for inner system use.
709     * @since 14
710     */
711    time: number;
712    /**
713     * Local IP.
714     *
715     * @type {?string}
716     * @syscap SystemCapability.Communication.NetManager.NetFirewall
717     * @systemapi Hide this for inner system use.
718     * @since 14
719     */
720    localIp?: string;
721    /**
722     * Remote IP.
723     *
724     * @type {?string}
725     * @syscap SystemCapability.Communication.NetManager.NetFirewall
726     * @systemapi Hide this for inner system use.
727     * @since 14
728     */
729    remoteIp?: string;
730    /**
731     * Local port.
732     *
733     * @type {?number}
734     * @syscap SystemCapability.Communication.NetManager.NetFirewall
735     * @systemapi Hide this for inner system use.
736     * @since 14
737     */
738    localPort?: number;
739    /**
740     * Remote port.
741     *
742     * @type {?number}
743     * @syscap SystemCapability.Communication.NetManager.NetFirewall
744     * @systemapi Hide this for inner system use.
745     * @since 14
746     */
747    remotePort?: number;
748    /**
749     * Transport layer protocol.
750     *
751     * @type {?number}
752     * @syscap SystemCapability.Communication.NetManager.NetFirewall
753     * @systemapi Hide this for inner system use.
754     * @since 14
755     */
756    protocol?: number;
757    /**
758     * Application or service ID.
759     *
760     * @type {?number}
761     * @syscap SystemCapability.Communication.NetManager.NetFirewall
762     * @systemapi Hide this for inner system use.
763     * @since 14
764     */
765    appUid?: number;
766    /**
767     * Blocked domain name information.
768     *
769     * @type {?string}
770     * @syscap SystemCapability.Communication.NetManager.NetFirewall
771     * @systemapi Hide this for inner system use.
772     * @since 14
773     */
774    domain?: string;
775  }
776
777  /**
778   * Pagination query input parameters.
779   *
780   * @interface RequestParam
781   * @syscap SystemCapability.Communication.NetManager.NetFirewall
782   * @systemapi Hide this for inner system use.
783   * @since 14
784   */
785  interface RequestParam {
786    /**
787     * Page number: indicates the page number to be queried. The start value is 1.
788     *
789     * @type {number}
790     * @syscap SystemCapability.Communication.NetManager.NetFirewall
791     * @systemapi Hide this for inner system use.
792     * @since 14
793     */
794    page: number;
795    /**
796     * Page size: indicates the number of data records to be queried at a time. The maximum value is 50.
797     *
798     * @type {number}
799     * @syscap SystemCapability.Communication.NetManager.NetFirewall
800     * @systemapi Hide this for inner system use.
801     * @since 14
802     */
803    pageSize: number;
804    /**
805     * Sort field.
806     *
807     * @type {NetFirewallOrderField}
808     * @syscap SystemCapability.Communication.NetManager.NetFirewall
809     * @systemapi Hide this for inner system use.
810     * @since 14
811     */
812    orderField: NetFirewallOrderField;
813    /**
814     * Sort Type: ascending or descending.
815     *
816     * @type {NetFirewallOrderType}
817     * @syscap SystemCapability.Communication.NetManager.NetFirewall
818     * @systemapi Hide this for inner system use.
819     * @since 14
820     */
821    orderType: NetFirewallOrderType;
822  }
823
824  /**
825   * Rule page information.
826   *
827   * @interface FirewallRulePage
828   * @syscap SystemCapability.Communication.NetManager.NetFirewall
829   * @systemapi Hide this for inner system use.
830   * @since 14
831   */
832  interface FirewallRulePage {
833    /**
834     * Current page number: indicates the page number of this query.
835     *
836     * @type {number}
837     * @syscap SystemCapability.Communication.NetManager.NetFirewall
838     * @systemapi Hide this for inner system use.
839     * @since 14
840     */
841    page: number;
842    /**
843     * Page size: maximum number of records on a page for this query.
844     *
845     * @type {number}
846     * @syscap SystemCapability.Communication.NetManager.NetFirewall
847     * @systemapi Hide this for inner system use.
848     * @since 14
849     */
850    pageSize: number;
851    /**
852     * Total pages: total number of pages.
853     *
854     * @type {number}
855     * @syscap SystemCapability.Communication.NetManager.NetFirewall
856     * @systemapi Hide this for inner system use.
857     * @since 14
858     */
859    totalPage: number;
860    /**
861     * Page data: all records displayed on this page.
862     *
863     * @type {Array<NetFirewallRule> }
864     * @syscap SystemCapability.Communication.NetManager.NetFirewall
865     * @systemapi Hide this for inner system use.
866     * @since 14
867     */
868    data: Array<NetFirewallRule>;
869  }
870
871  /**
872   * Intercepted record page information.
873   *
874   * @interface InterceptedRecordPage
875   * @syscap SystemCapability.Communication.NetManager.NetFirewall
876   * @systemapi Hide this for inner system use.
877   * @since 14
878   */
879  interface InterceptedRecordPage {
880    /**
881     * Current page number: indicates the page number of this query.
882     *
883     * @type {number}
884     * @syscap SystemCapability.Communication.NetManager.NetFirewall
885     * @systemapi Hide this for inner system use.
886     * @since 14
887     */
888    page: number;
889    /**
890     * Page size: maximum number of records on a page for this query.
891     *
892     * @type {number}
893     * @syscap SystemCapability.Communication.NetManager.NetFirewall
894     * @systemapi Hide this for inner system use.
895     * @since 14
896     */
897    pageSize: number;
898    /**
899     * Total pages: total number of pages.
900     *
901     * @type {number}
902     * @syscap SystemCapability.Communication.NetManager.NetFirewall
903     * @systemapi Hide this for inner system use.
904     * @since 14
905     */
906    totalPage: number;
907    /**
908     * Page data: all records displayed on this page.
909     *
910     * @type {Array<InterceptedRecord>}
911     * @syscap SystemCapability.Communication.NetManager.NetFirewall
912     * @systemapi Hide this for inner system use.
913     * @since 14
914     */
915    data: Array<InterceptedRecord>;
916  }
917}
918
919export default netFirewall;