pulumi-gcp 8.3.0a1726834947__py3-none-any.whl → 8.3.0a1727226164__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. pulumi_gcp/__init__.py +120 -0
  2. pulumi_gcp/alloydb/_inputs.py +20 -0
  3. pulumi_gcp/alloydb/instance.py +36 -0
  4. pulumi_gcp/alloydb/outputs.py +14 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +1400 -0
  7. pulumi_gcp/compute/attached_disk.py +103 -0
  8. pulumi_gcp/compute/backend_service.py +29 -22
  9. pulumi_gcp/compute/firewall_policy_with_rules.py +769 -0
  10. pulumi_gcp/compute/outputs.py +1019 -0
  11. pulumi_gcp/compute/region_backend_service.py +29 -22
  12. pulumi_gcp/compute/router_nat.py +27 -66
  13. pulumi_gcp/config/__init__.pyi +2 -0
  14. pulumi_gcp/config/vars.py +4 -0
  15. pulumi_gcp/container/_inputs.py +72 -99
  16. pulumi_gcp/container/outputs.py +53 -70
  17. pulumi_gcp/databasemigrationservice/__init__.py +1 -0
  18. pulumi_gcp/databasemigrationservice/_inputs.py +362 -0
  19. pulumi_gcp/databasemigrationservice/migration_job.py +1739 -0
  20. pulumi_gcp/databasemigrationservice/outputs.py +268 -0
  21. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  22. pulumi_gcp/dataproc/metastore_service.py +93 -0
  23. pulumi_gcp/developerconnect/_inputs.py +42 -39
  24. pulumi_gcp/developerconnect/connection.py +86 -83
  25. pulumi_gcp/developerconnect/outputs.py +28 -26
  26. pulumi_gcp/discoveryengine/__init__.py +1 -0
  27. pulumi_gcp/discoveryengine/_inputs.py +131 -0
  28. pulumi_gcp/discoveryengine/outputs.py +131 -0
  29. pulumi_gcp/discoveryengine/target_site.py +870 -0
  30. pulumi_gcp/dns/managed_zone.py +1 -1
  31. pulumi_gcp/filestore/get_instance.py +21 -1
  32. pulumi_gcp/filestore/instance.py +94 -0
  33. pulumi_gcp/gkehub/feature_membership.py +140 -62
  34. pulumi_gcp/healthcare/__init__.py +1 -0
  35. pulumi_gcp/healthcare/_inputs.py +39 -0
  36. pulumi_gcp/healthcare/outputs.py +40 -0
  37. pulumi_gcp/healthcare/workspace.py +465 -0
  38. pulumi_gcp/looker/instance.py +81 -0
  39. pulumi_gcp/netapp/_inputs.py +63 -0
  40. pulumi_gcp/netapp/outputs.py +57 -0
  41. pulumi_gcp/netapp/storage_pool.py +54 -0
  42. pulumi_gcp/netapp/volume.py +82 -0
  43. pulumi_gcp/provider.py +20 -0
  44. pulumi_gcp/pubsub/subscription.py +43 -7
  45. pulumi_gcp/pulumi-plugin.json +1 -1
  46. pulumi_gcp/secretmanager/__init__.py +8 -0
  47. pulumi_gcp/secretmanager/_inputs.py +308 -0
  48. pulumi_gcp/secretmanager/get_regional_secret.py +279 -0
  49. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +173 -0
  50. pulumi_gcp/secretmanager/get_regional_secret_version.py +241 -0
  51. pulumi_gcp/secretmanager/outputs.py +336 -0
  52. pulumi_gcp/secretmanager/regional_secret.py +1433 -0
  53. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +1082 -0
  54. pulumi_gcp/secretmanager/regional_secret_iam_member.py +1082 -0
  55. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +901 -0
  56. pulumi_gcp/secretmanager/regional_secret_version.py +753 -0
  57. pulumi_gcp/securitycenter/__init__.py +4 -0
  58. pulumi_gcp/securitycenter/folder_scc_big_query_export.py +795 -0
  59. pulumi_gcp/securitycenter/organization_scc_big_query_export.py +738 -0
  60. pulumi_gcp/securitycenter/project_scc_big_query_export.py +749 -0
  61. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +862 -0
  62. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +6 -2
  63. pulumi_gcp/siteverification/__init__.py +3 -0
  64. pulumi_gcp/siteverification/_inputs.py +85 -0
  65. pulumi_gcp/siteverification/outputs.py +57 -0
  66. pulumi_gcp/siteverification/web_resource.py +398 -0
  67. pulumi_gcp/spanner/__init__.py +1 -0
  68. pulumi_gcp/spanner/_inputs.py +129 -0
  69. pulumi_gcp/spanner/backup_schedule.py +748 -0
  70. pulumi_gcp/spanner/get_instance.py +11 -1
  71. pulumi_gcp/spanner/instance.py +56 -0
  72. pulumi_gcp/spanner/outputs.py +93 -0
  73. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/RECORD +76 -56
  75. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/top_level.txt +0 -0
@@ -117,6 +117,18 @@ __all__ = [
117
117
  'FirewallPolicyRuleMatchArgsDict',
118
118
  'FirewallPolicyRuleMatchLayer4ConfigArgs',
119
119
  'FirewallPolicyRuleMatchLayer4ConfigArgsDict',
120
+ 'FirewallPolicyWithRulesPredefinedRuleArgs',
121
+ 'FirewallPolicyWithRulesPredefinedRuleArgsDict',
122
+ 'FirewallPolicyWithRulesPredefinedRuleMatchArgs',
123
+ 'FirewallPolicyWithRulesPredefinedRuleMatchArgsDict',
124
+ 'FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs',
125
+ 'FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict',
126
+ 'FirewallPolicyWithRulesRuleArgs',
127
+ 'FirewallPolicyWithRulesRuleArgsDict',
128
+ 'FirewallPolicyWithRulesRuleMatchArgs',
129
+ 'FirewallPolicyWithRulesRuleMatchArgsDict',
130
+ 'FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs',
131
+ 'FirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict',
120
132
  'ForwardingRuleServiceDirectoryRegistrationsArgs',
121
133
  'ForwardingRuleServiceDirectoryRegistrationsArgsDict',
122
134
  'GlobalForwardingRuleMetadataFilterArgs',
@@ -6431,6 +6443,1394 @@ class FirewallPolicyRuleMatchLayer4ConfigArgs:
6431
6443
  pulumi.set(self, "ports", value)
6432
6444
 
6433
6445
 
6446
+ if not MYPY:
6447
+ class FirewallPolicyWithRulesPredefinedRuleArgsDict(TypedDict):
6448
+ action: NotRequired[pulumi.Input[str]]
6449
+ """
6450
+ (Output)
6451
+ The Action to perform when the client connection triggers the rule. Can currently be either
6452
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
6453
+ """
6454
+ description: NotRequired[pulumi.Input[str]]
6455
+ """
6456
+ (Output)
6457
+ A description of the rule.
6458
+ """
6459
+ direction: NotRequired[pulumi.Input[str]]
6460
+ """
6461
+ (Output)
6462
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
6463
+ """
6464
+ disabled: NotRequired[pulumi.Input[bool]]
6465
+ """
6466
+ (Output)
6467
+ Denotes whether the firewall policy rule is disabled. When set to true,
6468
+ the firewall policy rule is not enforced and traffic behaves as if it did
6469
+ not exist. If this is unspecified, the firewall policy rule will be
6470
+ enabled.
6471
+ """
6472
+ enable_logging: NotRequired[pulumi.Input[bool]]
6473
+ """
6474
+ (Output)
6475
+ Denotes whether to enable logging for a particular rule.
6476
+ If logging is enabled, logs will be exported to the
6477
+ configured export destination in Stackdriver.
6478
+ """
6479
+ matches: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchArgsDict']]]]
6480
+ """
6481
+ (Output)
6482
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
6483
+ Structure is documented below.
6484
+ """
6485
+ priority: NotRequired[pulumi.Input[int]]
6486
+ """
6487
+ (Output)
6488
+ An integer indicating the priority of a rule in the list. The priority must be a value
6489
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
6490
+ highest priority and 2147483647 is the lowest priority.
6491
+ """
6492
+ rule_name: NotRequired[pulumi.Input[str]]
6493
+ """
6494
+ (Output)
6495
+ An optional name for the rule. This field is not a unique identifier
6496
+ and can be updated.
6497
+ """
6498
+ security_profile_group: NotRequired[pulumi.Input[str]]
6499
+ """
6500
+ (Output)
6501
+ A fully-qualified URL of a SecurityProfile resource instance.
6502
+ Example:
6503
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
6504
+ Must be specified if action is 'apply_security_profile_group'.
6505
+ """
6506
+ target_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6507
+ """
6508
+ (Output)
6509
+ A list of network resource URLs to which this rule applies.
6510
+ This field allows you to control which network's VMs get
6511
+ this rule. If this field is left blank, all VMs
6512
+ within the organization will receive the rule.
6513
+ """
6514
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6515
+ """
6516
+ (Output)
6517
+ A list of service accounts indicating the sets of
6518
+ instances that are applied with this rule.
6519
+ """
6520
+ tls_inspect: NotRequired[pulumi.Input[bool]]
6521
+ """
6522
+ (Output)
6523
+ Boolean flag indicating if the traffic should be TLS decrypted.
6524
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
6525
+ """
6526
+ elif False:
6527
+ FirewallPolicyWithRulesPredefinedRuleArgsDict: TypeAlias = Mapping[str, Any]
6528
+
6529
+ @pulumi.input_type
6530
+ class FirewallPolicyWithRulesPredefinedRuleArgs:
6531
+ def __init__(__self__, *,
6532
+ action: Optional[pulumi.Input[str]] = None,
6533
+ description: Optional[pulumi.Input[str]] = None,
6534
+ direction: Optional[pulumi.Input[str]] = None,
6535
+ disabled: Optional[pulumi.Input[bool]] = None,
6536
+ enable_logging: Optional[pulumi.Input[bool]] = None,
6537
+ matches: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchArgs']]]] = None,
6538
+ priority: Optional[pulumi.Input[int]] = None,
6539
+ rule_name: Optional[pulumi.Input[str]] = None,
6540
+ security_profile_group: Optional[pulumi.Input[str]] = None,
6541
+ target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6542
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6543
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
6544
+ """
6545
+ :param pulumi.Input[str] action: (Output)
6546
+ The Action to perform when the client connection triggers the rule. Can currently be either
6547
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
6548
+ :param pulumi.Input[str] description: (Output)
6549
+ A description of the rule.
6550
+ :param pulumi.Input[str] direction: (Output)
6551
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
6552
+ :param pulumi.Input[bool] disabled: (Output)
6553
+ Denotes whether the firewall policy rule is disabled. When set to true,
6554
+ the firewall policy rule is not enforced and traffic behaves as if it did
6555
+ not exist. If this is unspecified, the firewall policy rule will be
6556
+ enabled.
6557
+ :param pulumi.Input[bool] enable_logging: (Output)
6558
+ Denotes whether to enable logging for a particular rule.
6559
+ If logging is enabled, logs will be exported to the
6560
+ configured export destination in Stackdriver.
6561
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchArgs']]] matches: (Output)
6562
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
6563
+ Structure is documented below.
6564
+ :param pulumi.Input[int] priority: (Output)
6565
+ An integer indicating the priority of a rule in the list. The priority must be a value
6566
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
6567
+ highest priority and 2147483647 is the lowest priority.
6568
+ :param pulumi.Input[str] rule_name: (Output)
6569
+ An optional name for the rule. This field is not a unique identifier
6570
+ and can be updated.
6571
+ :param pulumi.Input[str] security_profile_group: (Output)
6572
+ A fully-qualified URL of a SecurityProfile resource instance.
6573
+ Example:
6574
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
6575
+ Must be specified if action is 'apply_security_profile_group'.
6576
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: (Output)
6577
+ A list of network resource URLs to which this rule applies.
6578
+ This field allows you to control which network's VMs get
6579
+ this rule. If this field is left blank, all VMs
6580
+ within the organization will receive the rule.
6581
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: (Output)
6582
+ A list of service accounts indicating the sets of
6583
+ instances that are applied with this rule.
6584
+ :param pulumi.Input[bool] tls_inspect: (Output)
6585
+ Boolean flag indicating if the traffic should be TLS decrypted.
6586
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
6587
+ """
6588
+ if action is not None:
6589
+ pulumi.set(__self__, "action", action)
6590
+ if description is not None:
6591
+ pulumi.set(__self__, "description", description)
6592
+ if direction is not None:
6593
+ pulumi.set(__self__, "direction", direction)
6594
+ if disabled is not None:
6595
+ pulumi.set(__self__, "disabled", disabled)
6596
+ if enable_logging is not None:
6597
+ pulumi.set(__self__, "enable_logging", enable_logging)
6598
+ if matches is not None:
6599
+ pulumi.set(__self__, "matches", matches)
6600
+ if priority is not None:
6601
+ pulumi.set(__self__, "priority", priority)
6602
+ if rule_name is not None:
6603
+ pulumi.set(__self__, "rule_name", rule_name)
6604
+ if security_profile_group is not None:
6605
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
6606
+ if target_resources is not None:
6607
+ pulumi.set(__self__, "target_resources", target_resources)
6608
+ if target_service_accounts is not None:
6609
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
6610
+ if tls_inspect is not None:
6611
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
6612
+
6613
+ @property
6614
+ @pulumi.getter
6615
+ def action(self) -> Optional[pulumi.Input[str]]:
6616
+ """
6617
+ (Output)
6618
+ The Action to perform when the client connection triggers the rule. Can currently be either
6619
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
6620
+ """
6621
+ return pulumi.get(self, "action")
6622
+
6623
+ @action.setter
6624
+ def action(self, value: Optional[pulumi.Input[str]]):
6625
+ pulumi.set(self, "action", value)
6626
+
6627
+ @property
6628
+ @pulumi.getter
6629
+ def description(self) -> Optional[pulumi.Input[str]]:
6630
+ """
6631
+ (Output)
6632
+ A description of the rule.
6633
+ """
6634
+ return pulumi.get(self, "description")
6635
+
6636
+ @description.setter
6637
+ def description(self, value: Optional[pulumi.Input[str]]):
6638
+ pulumi.set(self, "description", value)
6639
+
6640
+ @property
6641
+ @pulumi.getter
6642
+ def direction(self) -> Optional[pulumi.Input[str]]:
6643
+ """
6644
+ (Output)
6645
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
6646
+ """
6647
+ return pulumi.get(self, "direction")
6648
+
6649
+ @direction.setter
6650
+ def direction(self, value: Optional[pulumi.Input[str]]):
6651
+ pulumi.set(self, "direction", value)
6652
+
6653
+ @property
6654
+ @pulumi.getter
6655
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
6656
+ """
6657
+ (Output)
6658
+ Denotes whether the firewall policy rule is disabled. When set to true,
6659
+ the firewall policy rule is not enforced and traffic behaves as if it did
6660
+ not exist. If this is unspecified, the firewall policy rule will be
6661
+ enabled.
6662
+ """
6663
+ return pulumi.get(self, "disabled")
6664
+
6665
+ @disabled.setter
6666
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
6667
+ pulumi.set(self, "disabled", value)
6668
+
6669
+ @property
6670
+ @pulumi.getter(name="enableLogging")
6671
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
6672
+ """
6673
+ (Output)
6674
+ Denotes whether to enable logging for a particular rule.
6675
+ If logging is enabled, logs will be exported to the
6676
+ configured export destination in Stackdriver.
6677
+ """
6678
+ return pulumi.get(self, "enable_logging")
6679
+
6680
+ @enable_logging.setter
6681
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
6682
+ pulumi.set(self, "enable_logging", value)
6683
+
6684
+ @property
6685
+ @pulumi.getter
6686
+ def matches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]:
6687
+ """
6688
+ (Output)
6689
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
6690
+ Structure is documented below.
6691
+ """
6692
+ return pulumi.get(self, "matches")
6693
+
6694
+ @matches.setter
6695
+ def matches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]):
6696
+ pulumi.set(self, "matches", value)
6697
+
6698
+ @property
6699
+ @pulumi.getter
6700
+ def priority(self) -> Optional[pulumi.Input[int]]:
6701
+ """
6702
+ (Output)
6703
+ An integer indicating the priority of a rule in the list. The priority must be a value
6704
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
6705
+ highest priority and 2147483647 is the lowest priority.
6706
+ """
6707
+ return pulumi.get(self, "priority")
6708
+
6709
+ @priority.setter
6710
+ def priority(self, value: Optional[pulumi.Input[int]]):
6711
+ pulumi.set(self, "priority", value)
6712
+
6713
+ @property
6714
+ @pulumi.getter(name="ruleName")
6715
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
6716
+ """
6717
+ (Output)
6718
+ An optional name for the rule. This field is not a unique identifier
6719
+ and can be updated.
6720
+ """
6721
+ return pulumi.get(self, "rule_name")
6722
+
6723
+ @rule_name.setter
6724
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
6725
+ pulumi.set(self, "rule_name", value)
6726
+
6727
+ @property
6728
+ @pulumi.getter(name="securityProfileGroup")
6729
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
6730
+ """
6731
+ (Output)
6732
+ A fully-qualified URL of a SecurityProfile resource instance.
6733
+ Example:
6734
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
6735
+ Must be specified if action is 'apply_security_profile_group'.
6736
+ """
6737
+ return pulumi.get(self, "security_profile_group")
6738
+
6739
+ @security_profile_group.setter
6740
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
6741
+ pulumi.set(self, "security_profile_group", value)
6742
+
6743
+ @property
6744
+ @pulumi.getter(name="targetResources")
6745
+ def target_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6746
+ """
6747
+ (Output)
6748
+ A list of network resource URLs to which this rule applies.
6749
+ This field allows you to control which network's VMs get
6750
+ this rule. If this field is left blank, all VMs
6751
+ within the organization will receive the rule.
6752
+ """
6753
+ return pulumi.get(self, "target_resources")
6754
+
6755
+ @target_resources.setter
6756
+ def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6757
+ pulumi.set(self, "target_resources", value)
6758
+
6759
+ @property
6760
+ @pulumi.getter(name="targetServiceAccounts")
6761
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6762
+ """
6763
+ (Output)
6764
+ A list of service accounts indicating the sets of
6765
+ instances that are applied with this rule.
6766
+ """
6767
+ return pulumi.get(self, "target_service_accounts")
6768
+
6769
+ @target_service_accounts.setter
6770
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6771
+ pulumi.set(self, "target_service_accounts", value)
6772
+
6773
+ @property
6774
+ @pulumi.getter(name="tlsInspect")
6775
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
6776
+ """
6777
+ (Output)
6778
+ Boolean flag indicating if the traffic should be TLS decrypted.
6779
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
6780
+ """
6781
+ return pulumi.get(self, "tls_inspect")
6782
+
6783
+ @tls_inspect.setter
6784
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
6785
+ pulumi.set(self, "tls_inspect", value)
6786
+
6787
+
6788
+ if not MYPY:
6789
+ class FirewallPolicyWithRulesPredefinedRuleMatchArgsDict(TypedDict):
6790
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6791
+ """
6792
+ Address groups which should be matched against the traffic destination.
6793
+ Maximum number of destination address groups is 10.
6794
+ """
6795
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6796
+ """
6797
+ Fully Qualified Domain Name (FQDN) which should be matched against
6798
+ traffic destination. Maximum number of destination fqdn allowed is 100.
6799
+ """
6800
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6801
+ """
6802
+ Destination IP address range in CIDR format. Required for
6803
+ EGRESS rules.
6804
+ """
6805
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6806
+ """
6807
+ Region codes whose IP addresses will be used to match for destination
6808
+ of traffic. Should be specified as 2 letter country code defined as per
6809
+ ISO 3166 alpha-2 country codes. ex."US"
6810
+ Maximum number of destination region codes allowed is 5000.
6811
+ """
6812
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6813
+ """
6814
+ Names of Network Threat Intelligence lists.
6815
+ The IPs in these lists will be matched against traffic destination.
6816
+ """
6817
+ layer4_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict']]]]
6818
+ """
6819
+ Pairs of IP protocols and ports that the rule should match.
6820
+ Structure is documented below.
6821
+
6822
+
6823
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
6824
+ """
6825
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6826
+ """
6827
+ Address groups which should be matched against the traffic source.
6828
+ Maximum number of source address groups is 10.
6829
+ """
6830
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6831
+ """
6832
+ Fully Qualified Domain Name (FQDN) which should be matched against
6833
+ traffic source. Maximum number of source fqdn allowed is 100.
6834
+ """
6835
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6836
+ """
6837
+ Source IP address range in CIDR format. Required for
6838
+ INGRESS rules.
6839
+ """
6840
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6841
+ """
6842
+ Region codes whose IP addresses will be used to match for source
6843
+ of traffic. Should be specified as 2 letter country code defined as per
6844
+ ISO 3166 alpha-2 country codes. ex."US"
6845
+ Maximum number of source region codes allowed is 5000.
6846
+ """
6847
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6848
+ """
6849
+ Names of Network Threat Intelligence lists.
6850
+ The IPs in these lists will be matched against traffic source.
6851
+ """
6852
+ elif False:
6853
+ FirewallPolicyWithRulesPredefinedRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
6854
+
6855
+ @pulumi.input_type
6856
+ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
6857
+ def __init__(__self__, *,
6858
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6859
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6860
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6861
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6862
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6863
+ layer4_configs: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]] = None,
6864
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6865
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6866
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6867
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
6868
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
6869
+ """
6870
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
6871
+ Maximum number of destination address groups is 10.
6872
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
6873
+ traffic destination. Maximum number of destination fqdn allowed is 100.
6874
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
6875
+ EGRESS rules.
6876
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
6877
+ of traffic. Should be specified as 2 letter country code defined as per
6878
+ ISO 3166 alpha-2 country codes. ex."US"
6879
+ Maximum number of destination region codes allowed is 5000.
6880
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
6881
+ The IPs in these lists will be matched against traffic destination.
6882
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6883
+ Structure is documented below.
6884
+
6885
+
6886
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
6887
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
6888
+ Maximum number of source address groups is 10.
6889
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
6890
+ traffic source. Maximum number of source fqdn allowed is 100.
6891
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
6892
+ INGRESS rules.
6893
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
6894
+ of traffic. Should be specified as 2 letter country code defined as per
6895
+ ISO 3166 alpha-2 country codes. ex."US"
6896
+ Maximum number of source region codes allowed is 5000.
6897
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
6898
+ The IPs in these lists will be matched against traffic source.
6899
+ """
6900
+ if dest_address_groups is not None:
6901
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
6902
+ if dest_fqdns is not None:
6903
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
6904
+ if dest_ip_ranges is not None:
6905
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
6906
+ if dest_region_codes is not None:
6907
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
6908
+ if dest_threat_intelligences is not None:
6909
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
6910
+ if layer4_configs is not None:
6911
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
6912
+ if src_address_groups is not None:
6913
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
6914
+ if src_fqdns is not None:
6915
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
6916
+ if src_ip_ranges is not None:
6917
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
6918
+ if src_region_codes is not None:
6919
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
6920
+ if src_threat_intelligences is not None:
6921
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
6922
+
6923
+ @property
6924
+ @pulumi.getter(name="destAddressGroups")
6925
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6926
+ """
6927
+ Address groups which should be matched against the traffic destination.
6928
+ Maximum number of destination address groups is 10.
6929
+ """
6930
+ return pulumi.get(self, "dest_address_groups")
6931
+
6932
+ @dest_address_groups.setter
6933
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6934
+ pulumi.set(self, "dest_address_groups", value)
6935
+
6936
+ @property
6937
+ @pulumi.getter(name="destFqdns")
6938
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6939
+ """
6940
+ Fully Qualified Domain Name (FQDN) which should be matched against
6941
+ traffic destination. Maximum number of destination fqdn allowed is 100.
6942
+ """
6943
+ return pulumi.get(self, "dest_fqdns")
6944
+
6945
+ @dest_fqdns.setter
6946
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6947
+ pulumi.set(self, "dest_fqdns", value)
6948
+
6949
+ @property
6950
+ @pulumi.getter(name="destIpRanges")
6951
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6952
+ """
6953
+ Destination IP address range in CIDR format. Required for
6954
+ EGRESS rules.
6955
+ """
6956
+ return pulumi.get(self, "dest_ip_ranges")
6957
+
6958
+ @dest_ip_ranges.setter
6959
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6960
+ pulumi.set(self, "dest_ip_ranges", value)
6961
+
6962
+ @property
6963
+ @pulumi.getter(name="destRegionCodes")
6964
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6965
+ """
6966
+ Region codes whose IP addresses will be used to match for destination
6967
+ of traffic. Should be specified as 2 letter country code defined as per
6968
+ ISO 3166 alpha-2 country codes. ex."US"
6969
+ Maximum number of destination region codes allowed is 5000.
6970
+ """
6971
+ return pulumi.get(self, "dest_region_codes")
6972
+
6973
+ @dest_region_codes.setter
6974
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6975
+ pulumi.set(self, "dest_region_codes", value)
6976
+
6977
+ @property
6978
+ @pulumi.getter(name="destThreatIntelligences")
6979
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6980
+ """
6981
+ Names of Network Threat Intelligence lists.
6982
+ The IPs in these lists will be matched against traffic destination.
6983
+ """
6984
+ return pulumi.get(self, "dest_threat_intelligences")
6985
+
6986
+ @dest_threat_intelligences.setter
6987
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
6988
+ pulumi.set(self, "dest_threat_intelligences", value)
6989
+
6990
+ @property
6991
+ @pulumi.getter(name="layer4Configs")
6992
+ def layer4_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]:
6993
+ """
6994
+ Pairs of IP protocols and ports that the rule should match.
6995
+ Structure is documented below.
6996
+
6997
+
6998
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
6999
+ """
7000
+ return pulumi.get(self, "layer4_configs")
7001
+
7002
+ @layer4_configs.setter
7003
+ def layer4_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]):
7004
+ pulumi.set(self, "layer4_configs", value)
7005
+
7006
+ @property
7007
+ @pulumi.getter(name="srcAddressGroups")
7008
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7009
+ """
7010
+ Address groups which should be matched against the traffic source.
7011
+ Maximum number of source address groups is 10.
7012
+ """
7013
+ return pulumi.get(self, "src_address_groups")
7014
+
7015
+ @src_address_groups.setter
7016
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7017
+ pulumi.set(self, "src_address_groups", value)
7018
+
7019
+ @property
7020
+ @pulumi.getter(name="srcFqdns")
7021
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7022
+ """
7023
+ Fully Qualified Domain Name (FQDN) which should be matched against
7024
+ traffic source. Maximum number of source fqdn allowed is 100.
7025
+ """
7026
+ return pulumi.get(self, "src_fqdns")
7027
+
7028
+ @src_fqdns.setter
7029
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7030
+ pulumi.set(self, "src_fqdns", value)
7031
+
7032
+ @property
7033
+ @pulumi.getter(name="srcIpRanges")
7034
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7035
+ """
7036
+ Source IP address range in CIDR format. Required for
7037
+ INGRESS rules.
7038
+ """
7039
+ return pulumi.get(self, "src_ip_ranges")
7040
+
7041
+ @src_ip_ranges.setter
7042
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7043
+ pulumi.set(self, "src_ip_ranges", value)
7044
+
7045
+ @property
7046
+ @pulumi.getter(name="srcRegionCodes")
7047
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7048
+ """
7049
+ Region codes whose IP addresses will be used to match for source
7050
+ of traffic. Should be specified as 2 letter country code defined as per
7051
+ ISO 3166 alpha-2 country codes. ex."US"
7052
+ Maximum number of source region codes allowed is 5000.
7053
+ """
7054
+ return pulumi.get(self, "src_region_codes")
7055
+
7056
+ @src_region_codes.setter
7057
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7058
+ pulumi.set(self, "src_region_codes", value)
7059
+
7060
+ @property
7061
+ @pulumi.getter(name="srcThreatIntelligences")
7062
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7063
+ """
7064
+ Names of Network Threat Intelligence lists.
7065
+ The IPs in these lists will be matched against traffic source.
7066
+ """
7067
+ return pulumi.get(self, "src_threat_intelligences")
7068
+
7069
+ @src_threat_intelligences.setter
7070
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7071
+ pulumi.set(self, "src_threat_intelligences", value)
7072
+
7073
+
7074
+ if not MYPY:
7075
+ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict(TypedDict):
7076
+ ip_protocol: NotRequired[pulumi.Input[str]]
7077
+ """
7078
+ (Output)
7079
+ The IP protocol to which this rule applies. The protocol
7080
+ type is required when creating a firewall rule.
7081
+ This value can either be one of the following well
7082
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7083
+ or the IP protocol number.
7084
+ """
7085
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7086
+ """
7087
+ (Output)
7088
+ An optional list of ports to which this rule applies. This field
7089
+ is only applicable for UDP or TCP protocol. Each entry must be
7090
+ either an integer or a range. If not specified, this rule
7091
+ applies to connections through any port.
7092
+ Example inputs include: ["22"], ["80","443"], and
7093
+ ["12345-12349"].
7094
+ """
7095
+ elif False:
7096
+ FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
7097
+
7098
+ @pulumi.input_type
7099
+ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs:
7100
+ def __init__(__self__, *,
7101
+ ip_protocol: Optional[pulumi.Input[str]] = None,
7102
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
7103
+ """
7104
+ :param pulumi.Input[str] ip_protocol: (Output)
7105
+ The IP protocol to which this rule applies. The protocol
7106
+ type is required when creating a firewall rule.
7107
+ This value can either be one of the following well
7108
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7109
+ or the IP protocol number.
7110
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
7111
+ An optional list of ports to which this rule applies. This field
7112
+ is only applicable for UDP or TCP protocol. Each entry must be
7113
+ either an integer or a range. If not specified, this rule
7114
+ applies to connections through any port.
7115
+ Example inputs include: ["22"], ["80","443"], and
7116
+ ["12345-12349"].
7117
+ """
7118
+ if ip_protocol is not None:
7119
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
7120
+ if ports is not None:
7121
+ pulumi.set(__self__, "ports", ports)
7122
+
7123
+ @property
7124
+ @pulumi.getter(name="ipProtocol")
7125
+ def ip_protocol(self) -> Optional[pulumi.Input[str]]:
7126
+ """
7127
+ (Output)
7128
+ The IP protocol to which this rule applies. The protocol
7129
+ type is required when creating a firewall rule.
7130
+ This value can either be one of the following well
7131
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7132
+ or the IP protocol number.
7133
+ """
7134
+ return pulumi.get(self, "ip_protocol")
7135
+
7136
+ @ip_protocol.setter
7137
+ def ip_protocol(self, value: Optional[pulumi.Input[str]]):
7138
+ pulumi.set(self, "ip_protocol", value)
7139
+
7140
+ @property
7141
+ @pulumi.getter
7142
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7143
+ """
7144
+ (Output)
7145
+ An optional list of ports to which this rule applies. This field
7146
+ is only applicable for UDP or TCP protocol. Each entry must be
7147
+ either an integer or a range. If not specified, this rule
7148
+ applies to connections through any port.
7149
+ Example inputs include: ["22"], ["80","443"], and
7150
+ ["12345-12349"].
7151
+ """
7152
+ return pulumi.get(self, "ports")
7153
+
7154
+ @ports.setter
7155
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7156
+ pulumi.set(self, "ports", value)
7157
+
7158
+
7159
+ if not MYPY:
7160
+ class FirewallPolicyWithRulesRuleArgsDict(TypedDict):
7161
+ action: pulumi.Input[str]
7162
+ """
7163
+ The Action to perform when the client connection triggers the rule. Can currently be either
7164
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
7165
+ """
7166
+ match: pulumi.Input['FirewallPolicyWithRulesRuleMatchArgsDict']
7167
+ """
7168
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
7169
+ Structure is documented below.
7170
+ """
7171
+ priority: pulumi.Input[int]
7172
+ """
7173
+ An integer indicating the priority of a rule in the list. The priority must be a value
7174
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
7175
+ highest priority and 2147483647 is the lowest priority.
7176
+ """
7177
+ description: NotRequired[pulumi.Input[str]]
7178
+ """
7179
+ A description of the rule.
7180
+ """
7181
+ direction: NotRequired[pulumi.Input[str]]
7182
+ """
7183
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
7184
+ Possible values are: `INGRESS`, `EGRESS`.
7185
+ """
7186
+ disabled: NotRequired[pulumi.Input[bool]]
7187
+ """
7188
+ Denotes whether the firewall policy rule is disabled. When set to true,
7189
+ the firewall policy rule is not enforced and traffic behaves as if it did
7190
+ not exist. If this is unspecified, the firewall policy rule will be
7191
+ enabled.
7192
+ """
7193
+ enable_logging: NotRequired[pulumi.Input[bool]]
7194
+ """
7195
+ Denotes whether to enable logging for a particular rule.
7196
+ If logging is enabled, logs will be exported to the
7197
+ configured export destination in Stackdriver.
7198
+ """
7199
+ rule_name: NotRequired[pulumi.Input[str]]
7200
+ """
7201
+ An optional name for the rule. This field is not a unique identifier
7202
+ and can be updated.
7203
+ """
7204
+ security_profile_group: NotRequired[pulumi.Input[str]]
7205
+ """
7206
+ A fully-qualified URL of a SecurityProfile resource instance.
7207
+ Example:
7208
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
7209
+ Must be specified if action is 'apply_security_profile_group'.
7210
+ """
7211
+ target_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7212
+ """
7213
+ A list of network resource URLs to which this rule applies.
7214
+ This field allows you to control which network's VMs get
7215
+ this rule. If this field is left blank, all VMs
7216
+ within the organization will receive the rule.
7217
+ """
7218
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7219
+ """
7220
+ A list of service accounts indicating the sets of
7221
+ instances that are applied with this rule.
7222
+ """
7223
+ tls_inspect: NotRequired[pulumi.Input[bool]]
7224
+ """
7225
+ Boolean flag indicating if the traffic should be TLS decrypted.
7226
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
7227
+ """
7228
+ elif False:
7229
+ FirewallPolicyWithRulesRuleArgsDict: TypeAlias = Mapping[str, Any]
7230
+
7231
+ @pulumi.input_type
7232
+ class FirewallPolicyWithRulesRuleArgs:
7233
+ def __init__(__self__, *,
7234
+ action: pulumi.Input[str],
7235
+ match: pulumi.Input['FirewallPolicyWithRulesRuleMatchArgs'],
7236
+ priority: pulumi.Input[int],
7237
+ description: Optional[pulumi.Input[str]] = None,
7238
+ direction: Optional[pulumi.Input[str]] = None,
7239
+ disabled: Optional[pulumi.Input[bool]] = None,
7240
+ enable_logging: Optional[pulumi.Input[bool]] = None,
7241
+ rule_name: Optional[pulumi.Input[str]] = None,
7242
+ security_profile_group: Optional[pulumi.Input[str]] = None,
7243
+ target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7244
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7245
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
7246
+ """
7247
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Can currently be either
7248
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
7249
+ :param pulumi.Input['FirewallPolicyWithRulesRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
7250
+ Structure is documented below.
7251
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a value
7252
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
7253
+ highest priority and 2147483647 is the lowest priority.
7254
+ :param pulumi.Input[str] description: A description of the rule.
7255
+ :param pulumi.Input[str] direction: The direction in which this rule applies. If unspecified an INGRESS rule is created.
7256
+ Possible values are: `INGRESS`, `EGRESS`.
7257
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true,
7258
+ the firewall policy rule is not enforced and traffic behaves as if it did
7259
+ not exist. If this is unspecified, the firewall policy rule will be
7260
+ enabled.
7261
+ :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule.
7262
+ If logging is enabled, logs will be exported to the
7263
+ configured export destination in Stackdriver.
7264
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier
7265
+ and can be updated.
7266
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance.
7267
+ Example:
7268
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
7269
+ Must be specified if action is 'apply_security_profile_group'.
7270
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_resources: A list of network resource URLs to which this rule applies.
7271
+ This field allows you to control which network's VMs get
7272
+ this rule. If this field is left blank, all VMs
7273
+ within the organization will receive the rule.
7274
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of
7275
+ instances that are applied with this rule.
7276
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
7277
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
7278
+ """
7279
+ pulumi.set(__self__, "action", action)
7280
+ pulumi.set(__self__, "match", match)
7281
+ pulumi.set(__self__, "priority", priority)
7282
+ if description is not None:
7283
+ pulumi.set(__self__, "description", description)
7284
+ if direction is not None:
7285
+ pulumi.set(__self__, "direction", direction)
7286
+ if disabled is not None:
7287
+ pulumi.set(__self__, "disabled", disabled)
7288
+ if enable_logging is not None:
7289
+ pulumi.set(__self__, "enable_logging", enable_logging)
7290
+ if rule_name is not None:
7291
+ pulumi.set(__self__, "rule_name", rule_name)
7292
+ if security_profile_group is not None:
7293
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
7294
+ if target_resources is not None:
7295
+ pulumi.set(__self__, "target_resources", target_resources)
7296
+ if target_service_accounts is not None:
7297
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
7298
+ if tls_inspect is not None:
7299
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
7300
+
7301
+ @property
7302
+ @pulumi.getter
7303
+ def action(self) -> pulumi.Input[str]:
7304
+ """
7305
+ The Action to perform when the client connection triggers the rule. Can currently be either
7306
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
7307
+ """
7308
+ return pulumi.get(self, "action")
7309
+
7310
+ @action.setter
7311
+ def action(self, value: pulumi.Input[str]):
7312
+ pulumi.set(self, "action", value)
7313
+
7314
+ @property
7315
+ @pulumi.getter
7316
+ def match(self) -> pulumi.Input['FirewallPolicyWithRulesRuleMatchArgs']:
7317
+ """
7318
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
7319
+ Structure is documented below.
7320
+ """
7321
+ return pulumi.get(self, "match")
7322
+
7323
+ @match.setter
7324
+ def match(self, value: pulumi.Input['FirewallPolicyWithRulesRuleMatchArgs']):
7325
+ pulumi.set(self, "match", value)
7326
+
7327
+ @property
7328
+ @pulumi.getter
7329
+ def priority(self) -> pulumi.Input[int]:
7330
+ """
7331
+ An integer indicating the priority of a rule in the list. The priority must be a value
7332
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
7333
+ highest priority and 2147483647 is the lowest priority.
7334
+ """
7335
+ return pulumi.get(self, "priority")
7336
+
7337
+ @priority.setter
7338
+ def priority(self, value: pulumi.Input[int]):
7339
+ pulumi.set(self, "priority", value)
7340
+
7341
+ @property
7342
+ @pulumi.getter
7343
+ def description(self) -> Optional[pulumi.Input[str]]:
7344
+ """
7345
+ A description of the rule.
7346
+ """
7347
+ return pulumi.get(self, "description")
7348
+
7349
+ @description.setter
7350
+ def description(self, value: Optional[pulumi.Input[str]]):
7351
+ pulumi.set(self, "description", value)
7352
+
7353
+ @property
7354
+ @pulumi.getter
7355
+ def direction(self) -> Optional[pulumi.Input[str]]:
7356
+ """
7357
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
7358
+ Possible values are: `INGRESS`, `EGRESS`.
7359
+ """
7360
+ return pulumi.get(self, "direction")
7361
+
7362
+ @direction.setter
7363
+ def direction(self, value: Optional[pulumi.Input[str]]):
7364
+ pulumi.set(self, "direction", value)
7365
+
7366
+ @property
7367
+ @pulumi.getter
7368
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
7369
+ """
7370
+ Denotes whether the firewall policy rule is disabled. When set to true,
7371
+ the firewall policy rule is not enforced and traffic behaves as if it did
7372
+ not exist. If this is unspecified, the firewall policy rule will be
7373
+ enabled.
7374
+ """
7375
+ return pulumi.get(self, "disabled")
7376
+
7377
+ @disabled.setter
7378
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
7379
+ pulumi.set(self, "disabled", value)
7380
+
7381
+ @property
7382
+ @pulumi.getter(name="enableLogging")
7383
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
7384
+ """
7385
+ Denotes whether to enable logging for a particular rule.
7386
+ If logging is enabled, logs will be exported to the
7387
+ configured export destination in Stackdriver.
7388
+ """
7389
+ return pulumi.get(self, "enable_logging")
7390
+
7391
+ @enable_logging.setter
7392
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
7393
+ pulumi.set(self, "enable_logging", value)
7394
+
7395
+ @property
7396
+ @pulumi.getter(name="ruleName")
7397
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
7398
+ """
7399
+ An optional name for the rule. This field is not a unique identifier
7400
+ and can be updated.
7401
+ """
7402
+ return pulumi.get(self, "rule_name")
7403
+
7404
+ @rule_name.setter
7405
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
7406
+ pulumi.set(self, "rule_name", value)
7407
+
7408
+ @property
7409
+ @pulumi.getter(name="securityProfileGroup")
7410
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
7411
+ """
7412
+ A fully-qualified URL of a SecurityProfile resource instance.
7413
+ Example:
7414
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
7415
+ Must be specified if action is 'apply_security_profile_group'.
7416
+ """
7417
+ return pulumi.get(self, "security_profile_group")
7418
+
7419
+ @security_profile_group.setter
7420
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
7421
+ pulumi.set(self, "security_profile_group", value)
7422
+
7423
+ @property
7424
+ @pulumi.getter(name="targetResources")
7425
+ def target_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7426
+ """
7427
+ A list of network resource URLs to which this rule applies.
7428
+ This field allows you to control which network's VMs get
7429
+ this rule. If this field is left blank, all VMs
7430
+ within the organization will receive the rule.
7431
+ """
7432
+ return pulumi.get(self, "target_resources")
7433
+
7434
+ @target_resources.setter
7435
+ def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7436
+ pulumi.set(self, "target_resources", value)
7437
+
7438
+ @property
7439
+ @pulumi.getter(name="targetServiceAccounts")
7440
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7441
+ """
7442
+ A list of service accounts indicating the sets of
7443
+ instances that are applied with this rule.
7444
+ """
7445
+ return pulumi.get(self, "target_service_accounts")
7446
+
7447
+ @target_service_accounts.setter
7448
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7449
+ pulumi.set(self, "target_service_accounts", value)
7450
+
7451
+ @property
7452
+ @pulumi.getter(name="tlsInspect")
7453
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
7454
+ """
7455
+ Boolean flag indicating if the traffic should be TLS decrypted.
7456
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
7457
+ """
7458
+ return pulumi.get(self, "tls_inspect")
7459
+
7460
+ @tls_inspect.setter
7461
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
7462
+ pulumi.set(self, "tls_inspect", value)
7463
+
7464
+
7465
+ if not MYPY:
7466
+ class FirewallPolicyWithRulesRuleMatchArgsDict(TypedDict):
7467
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict']]]
7468
+ """
7469
+ Pairs of IP protocols and ports that the rule should match.
7470
+ Structure is documented below.
7471
+
7472
+
7473
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
7474
+ """
7475
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7476
+ """
7477
+ Address groups which should be matched against the traffic destination.
7478
+ Maximum number of destination address groups is 10.
7479
+ """
7480
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7481
+ """
7482
+ Fully Qualified Domain Name (FQDN) which should be matched against
7483
+ traffic destination. Maximum number of destination fqdn allowed is 100.
7484
+ """
7485
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7486
+ """
7487
+ Destination IP address range in CIDR format. Required for
7488
+ EGRESS rules.
7489
+ """
7490
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7491
+ """
7492
+ Region codes whose IP addresses will be used to match for destination
7493
+ of traffic. Should be specified as 2 letter country code defined as per
7494
+ ISO 3166 alpha-2 country codes. ex."US"
7495
+ Maximum number of destination region codes allowed is 5000.
7496
+ """
7497
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7498
+ """
7499
+ Names of Network Threat Intelligence lists.
7500
+ The IPs in these lists will be matched against traffic destination.
7501
+ """
7502
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7503
+ """
7504
+ Address groups which should be matched against the traffic source.
7505
+ Maximum number of source address groups is 10.
7506
+ """
7507
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7508
+ """
7509
+ Fully Qualified Domain Name (FQDN) which should be matched against
7510
+ traffic source. Maximum number of source fqdn allowed is 100.
7511
+ """
7512
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7513
+ """
7514
+ Source IP address range in CIDR format. Required for
7515
+ INGRESS rules.
7516
+ """
7517
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7518
+ """
7519
+ Region codes whose IP addresses will be used to match for source
7520
+ of traffic. Should be specified as 2 letter country code defined as per
7521
+ ISO 3166 alpha-2 country codes. ex."US"
7522
+ Maximum number of source region codes allowed is 5000.
7523
+ """
7524
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7525
+ """
7526
+ Names of Network Threat Intelligence lists.
7527
+ The IPs in these lists will be matched against traffic source.
7528
+ """
7529
+ elif False:
7530
+ FirewallPolicyWithRulesRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
7531
+
7532
+ @pulumi.input_type
7533
+ class FirewallPolicyWithRulesRuleMatchArgs:
7534
+ def __init__(__self__, *,
7535
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]],
7536
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7537
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7538
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7539
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7540
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7541
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7542
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7543
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7544
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
7545
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
7546
+ """
7547
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
7548
+ Structure is documented below.
7549
+
7550
+
7551
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
7552
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
7553
+ Maximum number of destination address groups is 10.
7554
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
7555
+ traffic destination. Maximum number of destination fqdn allowed is 100.
7556
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
7557
+ EGRESS rules.
7558
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
7559
+ of traffic. Should be specified as 2 letter country code defined as per
7560
+ ISO 3166 alpha-2 country codes. ex."US"
7561
+ Maximum number of destination region codes allowed is 5000.
7562
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
7563
+ The IPs in these lists will be matched against traffic destination.
7564
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
7565
+ Maximum number of source address groups is 10.
7566
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
7567
+ traffic source. Maximum number of source fqdn allowed is 100.
7568
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
7569
+ INGRESS rules.
7570
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
7571
+ of traffic. Should be specified as 2 letter country code defined as per
7572
+ ISO 3166 alpha-2 country codes. ex."US"
7573
+ Maximum number of source region codes allowed is 5000.
7574
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
7575
+ The IPs in these lists will be matched against traffic source.
7576
+ """
7577
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
7578
+ if dest_address_groups is not None:
7579
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
7580
+ if dest_fqdns is not None:
7581
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
7582
+ if dest_ip_ranges is not None:
7583
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
7584
+ if dest_region_codes is not None:
7585
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
7586
+ if dest_threat_intelligences is not None:
7587
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
7588
+ if src_address_groups is not None:
7589
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
7590
+ if src_fqdns is not None:
7591
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
7592
+ if src_ip_ranges is not None:
7593
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
7594
+ if src_region_codes is not None:
7595
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
7596
+ if src_threat_intelligences is not None:
7597
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
7598
+
7599
+ @property
7600
+ @pulumi.getter(name="layer4Configs")
7601
+ def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]:
7602
+ """
7603
+ Pairs of IP protocols and ports that the rule should match.
7604
+ Structure is documented below.
7605
+
7606
+
7607
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
7608
+ """
7609
+ return pulumi.get(self, "layer4_configs")
7610
+
7611
+ @layer4_configs.setter
7612
+ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]):
7613
+ pulumi.set(self, "layer4_configs", value)
7614
+
7615
+ @property
7616
+ @pulumi.getter(name="destAddressGroups")
7617
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7618
+ """
7619
+ Address groups which should be matched against the traffic destination.
7620
+ Maximum number of destination address groups is 10.
7621
+ """
7622
+ return pulumi.get(self, "dest_address_groups")
7623
+
7624
+ @dest_address_groups.setter
7625
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7626
+ pulumi.set(self, "dest_address_groups", value)
7627
+
7628
+ @property
7629
+ @pulumi.getter(name="destFqdns")
7630
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7631
+ """
7632
+ Fully Qualified Domain Name (FQDN) which should be matched against
7633
+ traffic destination. Maximum number of destination fqdn allowed is 100.
7634
+ """
7635
+ return pulumi.get(self, "dest_fqdns")
7636
+
7637
+ @dest_fqdns.setter
7638
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7639
+ pulumi.set(self, "dest_fqdns", value)
7640
+
7641
+ @property
7642
+ @pulumi.getter(name="destIpRanges")
7643
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7644
+ """
7645
+ Destination IP address range in CIDR format. Required for
7646
+ EGRESS rules.
7647
+ """
7648
+ return pulumi.get(self, "dest_ip_ranges")
7649
+
7650
+ @dest_ip_ranges.setter
7651
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7652
+ pulumi.set(self, "dest_ip_ranges", value)
7653
+
7654
+ @property
7655
+ @pulumi.getter(name="destRegionCodes")
7656
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7657
+ """
7658
+ Region codes whose IP addresses will be used to match for destination
7659
+ of traffic. Should be specified as 2 letter country code defined as per
7660
+ ISO 3166 alpha-2 country codes. ex."US"
7661
+ Maximum number of destination region codes allowed is 5000.
7662
+ """
7663
+ return pulumi.get(self, "dest_region_codes")
7664
+
7665
+ @dest_region_codes.setter
7666
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7667
+ pulumi.set(self, "dest_region_codes", value)
7668
+
7669
+ @property
7670
+ @pulumi.getter(name="destThreatIntelligences")
7671
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7672
+ """
7673
+ Names of Network Threat Intelligence lists.
7674
+ The IPs in these lists will be matched against traffic destination.
7675
+ """
7676
+ return pulumi.get(self, "dest_threat_intelligences")
7677
+
7678
+ @dest_threat_intelligences.setter
7679
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7680
+ pulumi.set(self, "dest_threat_intelligences", value)
7681
+
7682
+ @property
7683
+ @pulumi.getter(name="srcAddressGroups")
7684
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7685
+ """
7686
+ Address groups which should be matched against the traffic source.
7687
+ Maximum number of source address groups is 10.
7688
+ """
7689
+ return pulumi.get(self, "src_address_groups")
7690
+
7691
+ @src_address_groups.setter
7692
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7693
+ pulumi.set(self, "src_address_groups", value)
7694
+
7695
+ @property
7696
+ @pulumi.getter(name="srcFqdns")
7697
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7698
+ """
7699
+ Fully Qualified Domain Name (FQDN) which should be matched against
7700
+ traffic source. Maximum number of source fqdn allowed is 100.
7701
+ """
7702
+ return pulumi.get(self, "src_fqdns")
7703
+
7704
+ @src_fqdns.setter
7705
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7706
+ pulumi.set(self, "src_fqdns", value)
7707
+
7708
+ @property
7709
+ @pulumi.getter(name="srcIpRanges")
7710
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7711
+ """
7712
+ Source IP address range in CIDR format. Required for
7713
+ INGRESS rules.
7714
+ """
7715
+ return pulumi.get(self, "src_ip_ranges")
7716
+
7717
+ @src_ip_ranges.setter
7718
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7719
+ pulumi.set(self, "src_ip_ranges", value)
7720
+
7721
+ @property
7722
+ @pulumi.getter(name="srcRegionCodes")
7723
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7724
+ """
7725
+ Region codes whose IP addresses will be used to match for source
7726
+ of traffic. Should be specified as 2 letter country code defined as per
7727
+ ISO 3166 alpha-2 country codes. ex."US"
7728
+ Maximum number of source region codes allowed is 5000.
7729
+ """
7730
+ return pulumi.get(self, "src_region_codes")
7731
+
7732
+ @src_region_codes.setter
7733
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7734
+ pulumi.set(self, "src_region_codes", value)
7735
+
7736
+ @property
7737
+ @pulumi.getter(name="srcThreatIntelligences")
7738
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7739
+ """
7740
+ Names of Network Threat Intelligence lists.
7741
+ The IPs in these lists will be matched against traffic source.
7742
+ """
7743
+ return pulumi.get(self, "src_threat_intelligences")
7744
+
7745
+ @src_threat_intelligences.setter
7746
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7747
+ pulumi.set(self, "src_threat_intelligences", value)
7748
+
7749
+
7750
+ if not MYPY:
7751
+ class FirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict(TypedDict):
7752
+ ip_protocol: pulumi.Input[str]
7753
+ """
7754
+ (Output)
7755
+ The IP protocol to which this rule applies. The protocol
7756
+ type is required when creating a firewall rule.
7757
+ This value can either be one of the following well
7758
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7759
+ or the IP protocol number.
7760
+ """
7761
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7762
+ """
7763
+ (Output)
7764
+ An optional list of ports to which this rule applies. This field
7765
+ is only applicable for UDP or TCP protocol. Each entry must be
7766
+ either an integer or a range. If not specified, this rule
7767
+ applies to connections through any port.
7768
+ Example inputs include: ["22"], ["80","443"], and
7769
+ ["12345-12349"].
7770
+ """
7771
+ elif False:
7772
+ FirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
7773
+
7774
+ @pulumi.input_type
7775
+ class FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs:
7776
+ def __init__(__self__, *,
7777
+ ip_protocol: pulumi.Input[str],
7778
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
7779
+ """
7780
+ :param pulumi.Input[str] ip_protocol: (Output)
7781
+ The IP protocol to which this rule applies. The protocol
7782
+ type is required when creating a firewall rule.
7783
+ This value can either be one of the following well
7784
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7785
+ or the IP protocol number.
7786
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
7787
+ An optional list of ports to which this rule applies. This field
7788
+ is only applicable for UDP or TCP protocol. Each entry must be
7789
+ either an integer or a range. If not specified, this rule
7790
+ applies to connections through any port.
7791
+ Example inputs include: ["22"], ["80","443"], and
7792
+ ["12345-12349"].
7793
+ """
7794
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
7795
+ if ports is not None:
7796
+ pulumi.set(__self__, "ports", ports)
7797
+
7798
+ @property
7799
+ @pulumi.getter(name="ipProtocol")
7800
+ def ip_protocol(self) -> pulumi.Input[str]:
7801
+ """
7802
+ (Output)
7803
+ The IP protocol to which this rule applies. The protocol
7804
+ type is required when creating a firewall rule.
7805
+ This value can either be one of the following well
7806
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
7807
+ or the IP protocol number.
7808
+ """
7809
+ return pulumi.get(self, "ip_protocol")
7810
+
7811
+ @ip_protocol.setter
7812
+ def ip_protocol(self, value: pulumi.Input[str]):
7813
+ pulumi.set(self, "ip_protocol", value)
7814
+
7815
+ @property
7816
+ @pulumi.getter
7817
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
7818
+ """
7819
+ (Output)
7820
+ An optional list of ports to which this rule applies. This field
7821
+ is only applicable for UDP or TCP protocol. Each entry must be
7822
+ either an integer or a range. If not specified, this rule
7823
+ applies to connections through any port.
7824
+ Example inputs include: ["22"], ["80","443"], and
7825
+ ["12345-12349"].
7826
+ """
7827
+ return pulumi.get(self, "ports")
7828
+
7829
+ @ports.setter
7830
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
7831
+ pulumi.set(self, "ports", value)
7832
+
7833
+
6434
7834
  if not MYPY:
6435
7835
  class ForwardingRuleServiceDirectoryRegistrationsArgsDict(TypedDict):
6436
7836
  namespace: NotRequired[pulumi.Input[str]]