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