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;