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
@@ -67,6 +67,12 @@ __all__ = [
67
67
  'FirewallLogConfig',
68
68
  'FirewallPolicyRuleMatch',
69
69
  'FirewallPolicyRuleMatchLayer4Config',
70
+ 'FirewallPolicyWithRulesPredefinedRule',
71
+ 'FirewallPolicyWithRulesPredefinedRuleMatch',
72
+ 'FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config',
73
+ 'FirewallPolicyWithRulesRule',
74
+ 'FirewallPolicyWithRulesRuleMatch',
75
+ 'FirewallPolicyWithRulesRuleMatchLayer4Config',
70
76
  'ForwardingRuleServiceDirectoryRegistrations',
71
77
  'GlobalForwardingRuleMetadataFilter',
72
78
  'GlobalForwardingRuleMetadataFilterFilterLabel',
@@ -4625,6 +4631,1019 @@ class FirewallPolicyRuleMatchLayer4Config(dict):
4625
4631
  return pulumi.get(self, "ports")
4626
4632
 
4627
4633
 
4634
+ @pulumi.output_type
4635
+ class FirewallPolicyWithRulesPredefinedRule(dict):
4636
+ @staticmethod
4637
+ def __key_warning(key: str):
4638
+ suggest = None
4639
+ if key == "enableLogging":
4640
+ suggest = "enable_logging"
4641
+ elif key == "ruleName":
4642
+ suggest = "rule_name"
4643
+ elif key == "securityProfileGroup":
4644
+ suggest = "security_profile_group"
4645
+ elif key == "targetResources":
4646
+ suggest = "target_resources"
4647
+ elif key == "targetServiceAccounts":
4648
+ suggest = "target_service_accounts"
4649
+ elif key == "tlsInspect":
4650
+ suggest = "tls_inspect"
4651
+
4652
+ if suggest:
4653
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesPredefinedRule. Access the value via the '{suggest}' property getter instead.")
4654
+
4655
+ def __getitem__(self, key: str) -> Any:
4656
+ FirewallPolicyWithRulesPredefinedRule.__key_warning(key)
4657
+ return super().__getitem__(key)
4658
+
4659
+ def get(self, key: str, default = None) -> Any:
4660
+ FirewallPolicyWithRulesPredefinedRule.__key_warning(key)
4661
+ return super().get(key, default)
4662
+
4663
+ def __init__(__self__, *,
4664
+ action: Optional[str] = None,
4665
+ description: Optional[str] = None,
4666
+ direction: Optional[str] = None,
4667
+ disabled: Optional[bool] = None,
4668
+ enable_logging: Optional[bool] = None,
4669
+ matches: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatch']] = None,
4670
+ priority: Optional[int] = None,
4671
+ rule_name: Optional[str] = None,
4672
+ security_profile_group: Optional[str] = None,
4673
+ target_resources: Optional[Sequence[str]] = None,
4674
+ target_service_accounts: Optional[Sequence[str]] = None,
4675
+ tls_inspect: Optional[bool] = None):
4676
+ """
4677
+ :param str action: (Output)
4678
+ The Action to perform when the client connection triggers the rule. Can currently be either
4679
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
4680
+ :param str description: (Output)
4681
+ A description of the rule.
4682
+ :param str direction: (Output)
4683
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
4684
+ :param bool disabled: (Output)
4685
+ Denotes whether the firewall policy rule is disabled. When set to true,
4686
+ the firewall policy rule is not enforced and traffic behaves as if it did
4687
+ not exist. If this is unspecified, the firewall policy rule will be
4688
+ enabled.
4689
+ :param bool enable_logging: (Output)
4690
+ Denotes whether to enable logging for a particular rule.
4691
+ If logging is enabled, logs will be exported to the
4692
+ configured export destination in Stackdriver.
4693
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchArgs'] matches: (Output)
4694
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
4695
+ Structure is documented below.
4696
+ :param int priority: (Output)
4697
+ An integer indicating the priority of a rule in the list. The priority must be a value
4698
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
4699
+ highest priority and 2147483647 is the lowest priority.
4700
+ :param str rule_name: (Output)
4701
+ An optional name for the rule. This field is not a unique identifier
4702
+ and can be updated.
4703
+ :param str security_profile_group: (Output)
4704
+ A fully-qualified URL of a SecurityProfile resource instance.
4705
+ Example:
4706
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
4707
+ Must be specified if action is 'apply_security_profile_group'.
4708
+ :param Sequence[str] target_resources: (Output)
4709
+ A list of network resource URLs to which this rule applies.
4710
+ This field allows you to control which network's VMs get
4711
+ this rule. If this field is left blank, all VMs
4712
+ within the organization will receive the rule.
4713
+ :param Sequence[str] target_service_accounts: (Output)
4714
+ A list of service accounts indicating the sets of
4715
+ instances that are applied with this rule.
4716
+ :param bool tls_inspect: (Output)
4717
+ Boolean flag indicating if the traffic should be TLS decrypted.
4718
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
4719
+ """
4720
+ if action is not None:
4721
+ pulumi.set(__self__, "action", action)
4722
+ if description is not None:
4723
+ pulumi.set(__self__, "description", description)
4724
+ if direction is not None:
4725
+ pulumi.set(__self__, "direction", direction)
4726
+ if disabled is not None:
4727
+ pulumi.set(__self__, "disabled", disabled)
4728
+ if enable_logging is not None:
4729
+ pulumi.set(__self__, "enable_logging", enable_logging)
4730
+ if matches is not None:
4731
+ pulumi.set(__self__, "matches", matches)
4732
+ if priority is not None:
4733
+ pulumi.set(__self__, "priority", priority)
4734
+ if rule_name is not None:
4735
+ pulumi.set(__self__, "rule_name", rule_name)
4736
+ if security_profile_group is not None:
4737
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
4738
+ if target_resources is not None:
4739
+ pulumi.set(__self__, "target_resources", target_resources)
4740
+ if target_service_accounts is not None:
4741
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
4742
+ if tls_inspect is not None:
4743
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
4744
+
4745
+ @property
4746
+ @pulumi.getter
4747
+ def action(self) -> Optional[str]:
4748
+ """
4749
+ (Output)
4750
+ The Action to perform when the client connection triggers the rule. Can currently be either
4751
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
4752
+ """
4753
+ return pulumi.get(self, "action")
4754
+
4755
+ @property
4756
+ @pulumi.getter
4757
+ def description(self) -> Optional[str]:
4758
+ """
4759
+ (Output)
4760
+ A description of the rule.
4761
+ """
4762
+ return pulumi.get(self, "description")
4763
+
4764
+ @property
4765
+ @pulumi.getter
4766
+ def direction(self) -> Optional[str]:
4767
+ """
4768
+ (Output)
4769
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
4770
+ """
4771
+ return pulumi.get(self, "direction")
4772
+
4773
+ @property
4774
+ @pulumi.getter
4775
+ def disabled(self) -> Optional[bool]:
4776
+ """
4777
+ (Output)
4778
+ Denotes whether the firewall policy rule is disabled. When set to true,
4779
+ the firewall policy rule is not enforced and traffic behaves as if it did
4780
+ not exist. If this is unspecified, the firewall policy rule will be
4781
+ enabled.
4782
+ """
4783
+ return pulumi.get(self, "disabled")
4784
+
4785
+ @property
4786
+ @pulumi.getter(name="enableLogging")
4787
+ def enable_logging(self) -> Optional[bool]:
4788
+ """
4789
+ (Output)
4790
+ Denotes whether to enable logging for a particular rule.
4791
+ If logging is enabled, logs will be exported to the
4792
+ configured export destination in Stackdriver.
4793
+ """
4794
+ return pulumi.get(self, "enable_logging")
4795
+
4796
+ @property
4797
+ @pulumi.getter
4798
+ def matches(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatch']]:
4799
+ """
4800
+ (Output)
4801
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
4802
+ Structure is documented below.
4803
+ """
4804
+ return pulumi.get(self, "matches")
4805
+
4806
+ @property
4807
+ @pulumi.getter
4808
+ def priority(self) -> Optional[int]:
4809
+ """
4810
+ (Output)
4811
+ An integer indicating the priority of a rule in the list. The priority must be a value
4812
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
4813
+ highest priority and 2147483647 is the lowest priority.
4814
+ """
4815
+ return pulumi.get(self, "priority")
4816
+
4817
+ @property
4818
+ @pulumi.getter(name="ruleName")
4819
+ def rule_name(self) -> Optional[str]:
4820
+ """
4821
+ (Output)
4822
+ An optional name for the rule. This field is not a unique identifier
4823
+ and can be updated.
4824
+ """
4825
+ return pulumi.get(self, "rule_name")
4826
+
4827
+ @property
4828
+ @pulumi.getter(name="securityProfileGroup")
4829
+ def security_profile_group(self) -> Optional[str]:
4830
+ """
4831
+ (Output)
4832
+ A fully-qualified URL of a SecurityProfile resource instance.
4833
+ Example:
4834
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
4835
+ Must be specified if action is 'apply_security_profile_group'.
4836
+ """
4837
+ return pulumi.get(self, "security_profile_group")
4838
+
4839
+ @property
4840
+ @pulumi.getter(name="targetResources")
4841
+ def target_resources(self) -> Optional[Sequence[str]]:
4842
+ """
4843
+ (Output)
4844
+ A list of network resource URLs to which this rule applies.
4845
+ This field allows you to control which network's VMs get
4846
+ this rule. If this field is left blank, all VMs
4847
+ within the organization will receive the rule.
4848
+ """
4849
+ return pulumi.get(self, "target_resources")
4850
+
4851
+ @property
4852
+ @pulumi.getter(name="targetServiceAccounts")
4853
+ def target_service_accounts(self) -> Optional[Sequence[str]]:
4854
+ """
4855
+ (Output)
4856
+ A list of service accounts indicating the sets of
4857
+ instances that are applied with this rule.
4858
+ """
4859
+ return pulumi.get(self, "target_service_accounts")
4860
+
4861
+ @property
4862
+ @pulumi.getter(name="tlsInspect")
4863
+ def tls_inspect(self) -> Optional[bool]:
4864
+ """
4865
+ (Output)
4866
+ Boolean flag indicating if the traffic should be TLS decrypted.
4867
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
4868
+ """
4869
+ return pulumi.get(self, "tls_inspect")
4870
+
4871
+
4872
+ @pulumi.output_type
4873
+ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
4874
+ @staticmethod
4875
+ def __key_warning(key: str):
4876
+ suggest = None
4877
+ if key == "destAddressGroups":
4878
+ suggest = "dest_address_groups"
4879
+ elif key == "destFqdns":
4880
+ suggest = "dest_fqdns"
4881
+ elif key == "destIpRanges":
4882
+ suggest = "dest_ip_ranges"
4883
+ elif key == "destRegionCodes":
4884
+ suggest = "dest_region_codes"
4885
+ elif key == "destThreatIntelligences":
4886
+ suggest = "dest_threat_intelligences"
4887
+ elif key == "layer4Configs":
4888
+ suggest = "layer4_configs"
4889
+ elif key == "srcAddressGroups":
4890
+ suggest = "src_address_groups"
4891
+ elif key == "srcFqdns":
4892
+ suggest = "src_fqdns"
4893
+ elif key == "srcIpRanges":
4894
+ suggest = "src_ip_ranges"
4895
+ elif key == "srcRegionCodes":
4896
+ suggest = "src_region_codes"
4897
+ elif key == "srcThreatIntelligences":
4898
+ suggest = "src_threat_intelligences"
4899
+
4900
+ if suggest:
4901
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesPredefinedRuleMatch. Access the value via the '{suggest}' property getter instead.")
4902
+
4903
+ def __getitem__(self, key: str) -> Any:
4904
+ FirewallPolicyWithRulesPredefinedRuleMatch.__key_warning(key)
4905
+ return super().__getitem__(key)
4906
+
4907
+ def get(self, key: str, default = None) -> Any:
4908
+ FirewallPolicyWithRulesPredefinedRuleMatch.__key_warning(key)
4909
+ return super().get(key, default)
4910
+
4911
+ def __init__(__self__, *,
4912
+ dest_address_groups: Optional[Sequence[str]] = None,
4913
+ dest_fqdns: Optional[Sequence[str]] = None,
4914
+ dest_ip_ranges: Optional[Sequence[str]] = None,
4915
+ dest_region_codes: Optional[Sequence[str]] = None,
4916
+ dest_threat_intelligences: Optional[Sequence[str]] = None,
4917
+ layer4_configs: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config']] = None,
4918
+ src_address_groups: Optional[Sequence[str]] = None,
4919
+ src_fqdns: Optional[Sequence[str]] = None,
4920
+ src_ip_ranges: Optional[Sequence[str]] = None,
4921
+ src_region_codes: Optional[Sequence[str]] = None,
4922
+ src_threat_intelligences: Optional[Sequence[str]] = None):
4923
+ """
4924
+ :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination.
4925
+ Maximum number of destination address groups is 10.
4926
+ :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
4927
+ traffic destination. Maximum number of destination fqdn allowed is 100.
4928
+ :param Sequence[str] dest_ip_ranges: Destination IP address range in CIDR format. Required for
4929
+ EGRESS rules.
4930
+ :param Sequence[str] dest_region_codes: Region codes whose IP addresses will be used to match for destination
4931
+ of traffic. Should be specified as 2 letter country code defined as per
4932
+ ISO 3166 alpha-2 country codes. ex."US"
4933
+ Maximum number of destination region codes allowed is 5000.
4934
+ :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists.
4935
+ The IPs in these lists will be matched against traffic destination.
4936
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
4937
+ Structure is documented below.
4938
+
4939
+
4940
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
4941
+ :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source.
4942
+ Maximum number of source address groups is 10.
4943
+ :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
4944
+ traffic source. Maximum number of source fqdn allowed is 100.
4945
+ :param Sequence[str] src_ip_ranges: Source IP address range in CIDR format. Required for
4946
+ INGRESS rules.
4947
+ :param Sequence[str] src_region_codes: Region codes whose IP addresses will be used to match for source
4948
+ of traffic. Should be specified as 2 letter country code defined as per
4949
+ ISO 3166 alpha-2 country codes. ex."US"
4950
+ Maximum number of source region codes allowed is 5000.
4951
+ :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists.
4952
+ The IPs in these lists will be matched against traffic source.
4953
+ """
4954
+ if dest_address_groups is not None:
4955
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
4956
+ if dest_fqdns is not None:
4957
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
4958
+ if dest_ip_ranges is not None:
4959
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
4960
+ if dest_region_codes is not None:
4961
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
4962
+ if dest_threat_intelligences is not None:
4963
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
4964
+ if layer4_configs is not None:
4965
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
4966
+ if src_address_groups is not None:
4967
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
4968
+ if src_fqdns is not None:
4969
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
4970
+ if src_ip_ranges is not None:
4971
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
4972
+ if src_region_codes is not None:
4973
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
4974
+ if src_threat_intelligences is not None:
4975
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
4976
+
4977
+ @property
4978
+ @pulumi.getter(name="destAddressGroups")
4979
+ def dest_address_groups(self) -> Optional[Sequence[str]]:
4980
+ """
4981
+ Address groups which should be matched against the traffic destination.
4982
+ Maximum number of destination address groups is 10.
4983
+ """
4984
+ return pulumi.get(self, "dest_address_groups")
4985
+
4986
+ @property
4987
+ @pulumi.getter(name="destFqdns")
4988
+ def dest_fqdns(self) -> Optional[Sequence[str]]:
4989
+ """
4990
+ Fully Qualified Domain Name (FQDN) which should be matched against
4991
+ traffic destination. Maximum number of destination fqdn allowed is 100.
4992
+ """
4993
+ return pulumi.get(self, "dest_fqdns")
4994
+
4995
+ @property
4996
+ @pulumi.getter(name="destIpRanges")
4997
+ def dest_ip_ranges(self) -> Optional[Sequence[str]]:
4998
+ """
4999
+ Destination IP address range in CIDR format. Required for
5000
+ EGRESS rules.
5001
+ """
5002
+ return pulumi.get(self, "dest_ip_ranges")
5003
+
5004
+ @property
5005
+ @pulumi.getter(name="destRegionCodes")
5006
+ def dest_region_codes(self) -> Optional[Sequence[str]]:
5007
+ """
5008
+ Region codes whose IP addresses will be used to match for destination
5009
+ of traffic. Should be specified as 2 letter country code defined as per
5010
+ ISO 3166 alpha-2 country codes. ex."US"
5011
+ Maximum number of destination region codes allowed is 5000.
5012
+ """
5013
+ return pulumi.get(self, "dest_region_codes")
5014
+
5015
+ @property
5016
+ @pulumi.getter(name="destThreatIntelligences")
5017
+ def dest_threat_intelligences(self) -> Optional[Sequence[str]]:
5018
+ """
5019
+ Names of Network Threat Intelligence lists.
5020
+ The IPs in these lists will be matched against traffic destination.
5021
+ """
5022
+ return pulumi.get(self, "dest_threat_intelligences")
5023
+
5024
+ @property
5025
+ @pulumi.getter(name="layer4Configs")
5026
+ def layer4_configs(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config']]:
5027
+ """
5028
+ Pairs of IP protocols and ports that the rule should match.
5029
+ Structure is documented below.
5030
+
5031
+
5032
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
5033
+ """
5034
+ return pulumi.get(self, "layer4_configs")
5035
+
5036
+ @property
5037
+ @pulumi.getter(name="srcAddressGroups")
5038
+ def src_address_groups(self) -> Optional[Sequence[str]]:
5039
+ """
5040
+ Address groups which should be matched against the traffic source.
5041
+ Maximum number of source address groups is 10.
5042
+ """
5043
+ return pulumi.get(self, "src_address_groups")
5044
+
5045
+ @property
5046
+ @pulumi.getter(name="srcFqdns")
5047
+ def src_fqdns(self) -> Optional[Sequence[str]]:
5048
+ """
5049
+ Fully Qualified Domain Name (FQDN) which should be matched against
5050
+ traffic source. Maximum number of source fqdn allowed is 100.
5051
+ """
5052
+ return pulumi.get(self, "src_fqdns")
5053
+
5054
+ @property
5055
+ @pulumi.getter(name="srcIpRanges")
5056
+ def src_ip_ranges(self) -> Optional[Sequence[str]]:
5057
+ """
5058
+ Source IP address range in CIDR format. Required for
5059
+ INGRESS rules.
5060
+ """
5061
+ return pulumi.get(self, "src_ip_ranges")
5062
+
5063
+ @property
5064
+ @pulumi.getter(name="srcRegionCodes")
5065
+ def src_region_codes(self) -> Optional[Sequence[str]]:
5066
+ """
5067
+ Region codes whose IP addresses will be used to match for source
5068
+ of traffic. Should be specified as 2 letter country code defined as per
5069
+ ISO 3166 alpha-2 country codes. ex."US"
5070
+ Maximum number of source region codes allowed is 5000.
5071
+ """
5072
+ return pulumi.get(self, "src_region_codes")
5073
+
5074
+ @property
5075
+ @pulumi.getter(name="srcThreatIntelligences")
5076
+ def src_threat_intelligences(self) -> Optional[Sequence[str]]:
5077
+ """
5078
+ Names of Network Threat Intelligence lists.
5079
+ The IPs in these lists will be matched against traffic source.
5080
+ """
5081
+ return pulumi.get(self, "src_threat_intelligences")
5082
+
5083
+
5084
+ @pulumi.output_type
5085
+ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config(dict):
5086
+ @staticmethod
5087
+ def __key_warning(key: str):
5088
+ suggest = None
5089
+ if key == "ipProtocol":
5090
+ suggest = "ip_protocol"
5091
+
5092
+ if suggest:
5093
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config. Access the value via the '{suggest}' property getter instead.")
5094
+
5095
+ def __getitem__(self, key: str) -> Any:
5096
+ FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config.__key_warning(key)
5097
+ return super().__getitem__(key)
5098
+
5099
+ def get(self, key: str, default = None) -> Any:
5100
+ FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config.__key_warning(key)
5101
+ return super().get(key, default)
5102
+
5103
+ def __init__(__self__, *,
5104
+ ip_protocol: Optional[str] = None,
5105
+ ports: Optional[Sequence[str]] = None):
5106
+ """
5107
+ :param str ip_protocol: (Output)
5108
+ The IP protocol to which this rule applies. The protocol
5109
+ type is required when creating a firewall rule.
5110
+ This value can either be one of the following well
5111
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
5112
+ or the IP protocol number.
5113
+ :param Sequence[str] ports: (Output)
5114
+ An optional list of ports to which this rule applies. This field
5115
+ is only applicable for UDP or TCP protocol. Each entry must be
5116
+ either an integer or a range. If not specified, this rule
5117
+ applies to connections through any port.
5118
+ Example inputs include: ["22"], ["80","443"], and
5119
+ ["12345-12349"].
5120
+ """
5121
+ if ip_protocol is not None:
5122
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
5123
+ if ports is not None:
5124
+ pulumi.set(__self__, "ports", ports)
5125
+
5126
+ @property
5127
+ @pulumi.getter(name="ipProtocol")
5128
+ def ip_protocol(self) -> Optional[str]:
5129
+ """
5130
+ (Output)
5131
+ The IP protocol to which this rule applies. The protocol
5132
+ type is required when creating a firewall rule.
5133
+ This value can either be one of the following well
5134
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
5135
+ or the IP protocol number.
5136
+ """
5137
+ return pulumi.get(self, "ip_protocol")
5138
+
5139
+ @property
5140
+ @pulumi.getter
5141
+ def ports(self) -> Optional[Sequence[str]]:
5142
+ """
5143
+ (Output)
5144
+ An optional list of ports to which this rule applies. This field
5145
+ is only applicable for UDP or TCP protocol. Each entry must be
5146
+ either an integer or a range. If not specified, this rule
5147
+ applies to connections through any port.
5148
+ Example inputs include: ["22"], ["80","443"], and
5149
+ ["12345-12349"].
5150
+ """
5151
+ return pulumi.get(self, "ports")
5152
+
5153
+
5154
+ @pulumi.output_type
5155
+ class FirewallPolicyWithRulesRule(dict):
5156
+ @staticmethod
5157
+ def __key_warning(key: str):
5158
+ suggest = None
5159
+ if key == "enableLogging":
5160
+ suggest = "enable_logging"
5161
+ elif key == "ruleName":
5162
+ suggest = "rule_name"
5163
+ elif key == "securityProfileGroup":
5164
+ suggest = "security_profile_group"
5165
+ elif key == "targetResources":
5166
+ suggest = "target_resources"
5167
+ elif key == "targetServiceAccounts":
5168
+ suggest = "target_service_accounts"
5169
+ elif key == "tlsInspect":
5170
+ suggest = "tls_inspect"
5171
+
5172
+ if suggest:
5173
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesRule. Access the value via the '{suggest}' property getter instead.")
5174
+
5175
+ def __getitem__(self, key: str) -> Any:
5176
+ FirewallPolicyWithRulesRule.__key_warning(key)
5177
+ return super().__getitem__(key)
5178
+
5179
+ def get(self, key: str, default = None) -> Any:
5180
+ FirewallPolicyWithRulesRule.__key_warning(key)
5181
+ return super().get(key, default)
5182
+
5183
+ def __init__(__self__, *,
5184
+ action: str,
5185
+ match: 'outputs.FirewallPolicyWithRulesRuleMatch',
5186
+ priority: int,
5187
+ description: Optional[str] = None,
5188
+ direction: Optional[str] = None,
5189
+ disabled: Optional[bool] = None,
5190
+ enable_logging: Optional[bool] = None,
5191
+ rule_name: Optional[str] = None,
5192
+ security_profile_group: Optional[str] = None,
5193
+ target_resources: Optional[Sequence[str]] = None,
5194
+ target_service_accounts: Optional[Sequence[str]] = None,
5195
+ tls_inspect: Optional[bool] = None):
5196
+ """
5197
+ :param str action: The Action to perform when the client connection triggers the rule. Can currently be either
5198
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
5199
+ :param 'FirewallPolicyWithRulesRuleMatchArgs' match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
5200
+ Structure is documented below.
5201
+ :param int priority: An integer indicating the priority of a rule in the list. The priority must be a value
5202
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
5203
+ highest priority and 2147483647 is the lowest priority.
5204
+ :param str description: A description of the rule.
5205
+ :param str direction: The direction in which this rule applies. If unspecified an INGRESS rule is created.
5206
+ Possible values are: `INGRESS`, `EGRESS`.
5207
+ :param bool disabled: Denotes whether the firewall policy rule is disabled. When set to true,
5208
+ the firewall policy rule is not enforced and traffic behaves as if it did
5209
+ not exist. If this is unspecified, the firewall policy rule will be
5210
+ enabled.
5211
+ :param bool enable_logging: Denotes whether to enable logging for a particular rule.
5212
+ If logging is enabled, logs will be exported to the
5213
+ configured export destination in Stackdriver.
5214
+ :param str rule_name: An optional name for the rule. This field is not a unique identifier
5215
+ and can be updated.
5216
+ :param str security_profile_group: A fully-qualified URL of a SecurityProfile resource instance.
5217
+ Example:
5218
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
5219
+ Must be specified if action is 'apply_security_profile_group'.
5220
+ :param Sequence[str] target_resources: A list of network resource URLs to which this rule applies.
5221
+ This field allows you to control which network's VMs get
5222
+ this rule. If this field is left blank, all VMs
5223
+ within the organization will receive the rule.
5224
+ :param Sequence[str] target_service_accounts: A list of service accounts indicating the sets of
5225
+ instances that are applied with this rule.
5226
+ :param bool tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
5227
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
5228
+ """
5229
+ pulumi.set(__self__, "action", action)
5230
+ pulumi.set(__self__, "match", match)
5231
+ pulumi.set(__self__, "priority", priority)
5232
+ if description is not None:
5233
+ pulumi.set(__self__, "description", description)
5234
+ if direction is not None:
5235
+ pulumi.set(__self__, "direction", direction)
5236
+ if disabled is not None:
5237
+ pulumi.set(__self__, "disabled", disabled)
5238
+ if enable_logging is not None:
5239
+ pulumi.set(__self__, "enable_logging", enable_logging)
5240
+ if rule_name is not None:
5241
+ pulumi.set(__self__, "rule_name", rule_name)
5242
+ if security_profile_group is not None:
5243
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
5244
+ if target_resources is not None:
5245
+ pulumi.set(__self__, "target_resources", target_resources)
5246
+ if target_service_accounts is not None:
5247
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
5248
+ if tls_inspect is not None:
5249
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
5250
+
5251
+ @property
5252
+ @pulumi.getter
5253
+ def action(self) -> str:
5254
+ """
5255
+ The Action to perform when the client connection triggers the rule. Can currently be either
5256
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
5257
+ """
5258
+ return pulumi.get(self, "action")
5259
+
5260
+ @property
5261
+ @pulumi.getter
5262
+ def match(self) -> 'outputs.FirewallPolicyWithRulesRuleMatch':
5263
+ """
5264
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
5265
+ Structure is documented below.
5266
+ """
5267
+ return pulumi.get(self, "match")
5268
+
5269
+ @property
5270
+ @pulumi.getter
5271
+ def priority(self) -> int:
5272
+ """
5273
+ An integer indicating the priority of a rule in the list. The priority must be a value
5274
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
5275
+ highest priority and 2147483647 is the lowest priority.
5276
+ """
5277
+ return pulumi.get(self, "priority")
5278
+
5279
+ @property
5280
+ @pulumi.getter
5281
+ def description(self) -> Optional[str]:
5282
+ """
5283
+ A description of the rule.
5284
+ """
5285
+ return pulumi.get(self, "description")
5286
+
5287
+ @property
5288
+ @pulumi.getter
5289
+ def direction(self) -> Optional[str]:
5290
+ """
5291
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
5292
+ Possible values are: `INGRESS`, `EGRESS`.
5293
+ """
5294
+ return pulumi.get(self, "direction")
5295
+
5296
+ @property
5297
+ @pulumi.getter
5298
+ def disabled(self) -> Optional[bool]:
5299
+ """
5300
+ Denotes whether the firewall policy rule is disabled. When set to true,
5301
+ the firewall policy rule is not enforced and traffic behaves as if it did
5302
+ not exist. If this is unspecified, the firewall policy rule will be
5303
+ enabled.
5304
+ """
5305
+ return pulumi.get(self, "disabled")
5306
+
5307
+ @property
5308
+ @pulumi.getter(name="enableLogging")
5309
+ def enable_logging(self) -> Optional[bool]:
5310
+ """
5311
+ Denotes whether to enable logging for a particular rule.
5312
+ If logging is enabled, logs will be exported to the
5313
+ configured export destination in Stackdriver.
5314
+ """
5315
+ return pulumi.get(self, "enable_logging")
5316
+
5317
+ @property
5318
+ @pulumi.getter(name="ruleName")
5319
+ def rule_name(self) -> Optional[str]:
5320
+ """
5321
+ An optional name for the rule. This field is not a unique identifier
5322
+ and can be updated.
5323
+ """
5324
+ return pulumi.get(self, "rule_name")
5325
+
5326
+ @property
5327
+ @pulumi.getter(name="securityProfileGroup")
5328
+ def security_profile_group(self) -> Optional[str]:
5329
+ """
5330
+ A fully-qualified URL of a SecurityProfile resource instance.
5331
+ Example:
5332
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
5333
+ Must be specified if action is 'apply_security_profile_group'.
5334
+ """
5335
+ return pulumi.get(self, "security_profile_group")
5336
+
5337
+ @property
5338
+ @pulumi.getter(name="targetResources")
5339
+ def target_resources(self) -> Optional[Sequence[str]]:
5340
+ """
5341
+ A list of network resource URLs to which this rule applies.
5342
+ This field allows you to control which network's VMs get
5343
+ this rule. If this field is left blank, all VMs
5344
+ within the organization will receive the rule.
5345
+ """
5346
+ return pulumi.get(self, "target_resources")
5347
+
5348
+ @property
5349
+ @pulumi.getter(name="targetServiceAccounts")
5350
+ def target_service_accounts(self) -> Optional[Sequence[str]]:
5351
+ """
5352
+ A list of service accounts indicating the sets of
5353
+ instances that are applied with this rule.
5354
+ """
5355
+ return pulumi.get(self, "target_service_accounts")
5356
+
5357
+ @property
5358
+ @pulumi.getter(name="tlsInspect")
5359
+ def tls_inspect(self) -> Optional[bool]:
5360
+ """
5361
+ Boolean flag indicating if the traffic should be TLS decrypted.
5362
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
5363
+ """
5364
+ return pulumi.get(self, "tls_inspect")
5365
+
5366
+
5367
+ @pulumi.output_type
5368
+ class FirewallPolicyWithRulesRuleMatch(dict):
5369
+ @staticmethod
5370
+ def __key_warning(key: str):
5371
+ suggest = None
5372
+ if key == "layer4Configs":
5373
+ suggest = "layer4_configs"
5374
+ elif key == "destAddressGroups":
5375
+ suggest = "dest_address_groups"
5376
+ elif key == "destFqdns":
5377
+ suggest = "dest_fqdns"
5378
+ elif key == "destIpRanges":
5379
+ suggest = "dest_ip_ranges"
5380
+ elif key == "destRegionCodes":
5381
+ suggest = "dest_region_codes"
5382
+ elif key == "destThreatIntelligences":
5383
+ suggest = "dest_threat_intelligences"
5384
+ elif key == "srcAddressGroups":
5385
+ suggest = "src_address_groups"
5386
+ elif key == "srcFqdns":
5387
+ suggest = "src_fqdns"
5388
+ elif key == "srcIpRanges":
5389
+ suggest = "src_ip_ranges"
5390
+ elif key == "srcRegionCodes":
5391
+ suggest = "src_region_codes"
5392
+ elif key == "srcThreatIntelligences":
5393
+ suggest = "src_threat_intelligences"
5394
+
5395
+ if suggest:
5396
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesRuleMatch. Access the value via the '{suggest}' property getter instead.")
5397
+
5398
+ def __getitem__(self, key: str) -> Any:
5399
+ FirewallPolicyWithRulesRuleMatch.__key_warning(key)
5400
+ return super().__getitem__(key)
5401
+
5402
+ def get(self, key: str, default = None) -> Any:
5403
+ FirewallPolicyWithRulesRuleMatch.__key_warning(key)
5404
+ return super().get(key, default)
5405
+
5406
+ def __init__(__self__, *,
5407
+ layer4_configs: Sequence['outputs.FirewallPolicyWithRulesRuleMatchLayer4Config'],
5408
+ dest_address_groups: Optional[Sequence[str]] = None,
5409
+ dest_fqdns: Optional[Sequence[str]] = None,
5410
+ dest_ip_ranges: Optional[Sequence[str]] = None,
5411
+ dest_region_codes: Optional[Sequence[str]] = None,
5412
+ dest_threat_intelligences: Optional[Sequence[str]] = None,
5413
+ src_address_groups: Optional[Sequence[str]] = None,
5414
+ src_fqdns: Optional[Sequence[str]] = None,
5415
+ src_ip_ranges: Optional[Sequence[str]] = None,
5416
+ src_region_codes: Optional[Sequence[str]] = None,
5417
+ src_threat_intelligences: Optional[Sequence[str]] = None):
5418
+ """
5419
+ :param Sequence['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
5420
+ Structure is documented below.
5421
+
5422
+
5423
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
5424
+ :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination.
5425
+ Maximum number of destination address groups is 10.
5426
+ :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
5427
+ traffic destination. Maximum number of destination fqdn allowed is 100.
5428
+ :param Sequence[str] dest_ip_ranges: Destination IP address range in CIDR format. Required for
5429
+ EGRESS rules.
5430
+ :param Sequence[str] dest_region_codes: Region codes whose IP addresses will be used to match for destination
5431
+ of traffic. Should be specified as 2 letter country code defined as per
5432
+ ISO 3166 alpha-2 country codes. ex."US"
5433
+ Maximum number of destination region codes allowed is 5000.
5434
+ :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists.
5435
+ The IPs in these lists will be matched against traffic destination.
5436
+ :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source.
5437
+ Maximum number of source address groups is 10.
5438
+ :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
5439
+ traffic source. Maximum number of source fqdn allowed is 100.
5440
+ :param Sequence[str] src_ip_ranges: Source IP address range in CIDR format. Required for
5441
+ INGRESS rules.
5442
+ :param Sequence[str] src_region_codes: Region codes whose IP addresses will be used to match for source
5443
+ of traffic. Should be specified as 2 letter country code defined as per
5444
+ ISO 3166 alpha-2 country codes. ex."US"
5445
+ Maximum number of source region codes allowed is 5000.
5446
+ :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists.
5447
+ The IPs in these lists will be matched against traffic source.
5448
+ """
5449
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
5450
+ if dest_address_groups is not None:
5451
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
5452
+ if dest_fqdns is not None:
5453
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
5454
+ if dest_ip_ranges is not None:
5455
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
5456
+ if dest_region_codes is not None:
5457
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
5458
+ if dest_threat_intelligences is not None:
5459
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
5460
+ if src_address_groups is not None:
5461
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
5462
+ if src_fqdns is not None:
5463
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
5464
+ if src_ip_ranges is not None:
5465
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
5466
+ if src_region_codes is not None:
5467
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
5468
+ if src_threat_intelligences is not None:
5469
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
5470
+
5471
+ @property
5472
+ @pulumi.getter(name="layer4Configs")
5473
+ def layer4_configs(self) -> Sequence['outputs.FirewallPolicyWithRulesRuleMatchLayer4Config']:
5474
+ """
5475
+ Pairs of IP protocols and ports that the rule should match.
5476
+ Structure is documented below.
5477
+
5478
+
5479
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
5480
+ """
5481
+ return pulumi.get(self, "layer4_configs")
5482
+
5483
+ @property
5484
+ @pulumi.getter(name="destAddressGroups")
5485
+ def dest_address_groups(self) -> Optional[Sequence[str]]:
5486
+ """
5487
+ Address groups which should be matched against the traffic destination.
5488
+ Maximum number of destination address groups is 10.
5489
+ """
5490
+ return pulumi.get(self, "dest_address_groups")
5491
+
5492
+ @property
5493
+ @pulumi.getter(name="destFqdns")
5494
+ def dest_fqdns(self) -> Optional[Sequence[str]]:
5495
+ """
5496
+ Fully Qualified Domain Name (FQDN) which should be matched against
5497
+ traffic destination. Maximum number of destination fqdn allowed is 100.
5498
+ """
5499
+ return pulumi.get(self, "dest_fqdns")
5500
+
5501
+ @property
5502
+ @pulumi.getter(name="destIpRanges")
5503
+ def dest_ip_ranges(self) -> Optional[Sequence[str]]:
5504
+ """
5505
+ Destination IP address range in CIDR format. Required for
5506
+ EGRESS rules.
5507
+ """
5508
+ return pulumi.get(self, "dest_ip_ranges")
5509
+
5510
+ @property
5511
+ @pulumi.getter(name="destRegionCodes")
5512
+ def dest_region_codes(self) -> Optional[Sequence[str]]:
5513
+ """
5514
+ Region codes whose IP addresses will be used to match for destination
5515
+ of traffic. Should be specified as 2 letter country code defined as per
5516
+ ISO 3166 alpha-2 country codes. ex."US"
5517
+ Maximum number of destination region codes allowed is 5000.
5518
+ """
5519
+ return pulumi.get(self, "dest_region_codes")
5520
+
5521
+ @property
5522
+ @pulumi.getter(name="destThreatIntelligences")
5523
+ def dest_threat_intelligences(self) -> Optional[Sequence[str]]:
5524
+ """
5525
+ Names of Network Threat Intelligence lists.
5526
+ The IPs in these lists will be matched against traffic destination.
5527
+ """
5528
+ return pulumi.get(self, "dest_threat_intelligences")
5529
+
5530
+ @property
5531
+ @pulumi.getter(name="srcAddressGroups")
5532
+ def src_address_groups(self) -> Optional[Sequence[str]]:
5533
+ """
5534
+ Address groups which should be matched against the traffic source.
5535
+ Maximum number of source address groups is 10.
5536
+ """
5537
+ return pulumi.get(self, "src_address_groups")
5538
+
5539
+ @property
5540
+ @pulumi.getter(name="srcFqdns")
5541
+ def src_fqdns(self) -> Optional[Sequence[str]]:
5542
+ """
5543
+ Fully Qualified Domain Name (FQDN) which should be matched against
5544
+ traffic source. Maximum number of source fqdn allowed is 100.
5545
+ """
5546
+ return pulumi.get(self, "src_fqdns")
5547
+
5548
+ @property
5549
+ @pulumi.getter(name="srcIpRanges")
5550
+ def src_ip_ranges(self) -> Optional[Sequence[str]]:
5551
+ """
5552
+ Source IP address range in CIDR format. Required for
5553
+ INGRESS rules.
5554
+ """
5555
+ return pulumi.get(self, "src_ip_ranges")
5556
+
5557
+ @property
5558
+ @pulumi.getter(name="srcRegionCodes")
5559
+ def src_region_codes(self) -> Optional[Sequence[str]]:
5560
+ """
5561
+ Region codes whose IP addresses will be used to match for source
5562
+ of traffic. Should be specified as 2 letter country code defined as per
5563
+ ISO 3166 alpha-2 country codes. ex."US"
5564
+ Maximum number of source region codes allowed is 5000.
5565
+ """
5566
+ return pulumi.get(self, "src_region_codes")
5567
+
5568
+ @property
5569
+ @pulumi.getter(name="srcThreatIntelligences")
5570
+ def src_threat_intelligences(self) -> Optional[Sequence[str]]:
5571
+ """
5572
+ Names of Network Threat Intelligence lists.
5573
+ The IPs in these lists will be matched against traffic source.
5574
+ """
5575
+ return pulumi.get(self, "src_threat_intelligences")
5576
+
5577
+
5578
+ @pulumi.output_type
5579
+ class FirewallPolicyWithRulesRuleMatchLayer4Config(dict):
5580
+ @staticmethod
5581
+ def __key_warning(key: str):
5582
+ suggest = None
5583
+ if key == "ipProtocol":
5584
+ suggest = "ip_protocol"
5585
+
5586
+ if suggest:
5587
+ pulumi.log.warn(f"Key '{key}' not found in FirewallPolicyWithRulesRuleMatchLayer4Config. Access the value via the '{suggest}' property getter instead.")
5588
+
5589
+ def __getitem__(self, key: str) -> Any:
5590
+ FirewallPolicyWithRulesRuleMatchLayer4Config.__key_warning(key)
5591
+ return super().__getitem__(key)
5592
+
5593
+ def get(self, key: str, default = None) -> Any:
5594
+ FirewallPolicyWithRulesRuleMatchLayer4Config.__key_warning(key)
5595
+ return super().get(key, default)
5596
+
5597
+ def __init__(__self__, *,
5598
+ ip_protocol: str,
5599
+ ports: Optional[Sequence[str]] = None):
5600
+ """
5601
+ :param str ip_protocol: (Output)
5602
+ The IP protocol to which this rule applies. The protocol
5603
+ type is required when creating a firewall rule.
5604
+ This value can either be one of the following well
5605
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
5606
+ or the IP protocol number.
5607
+ :param Sequence[str] ports: (Output)
5608
+ An optional list of ports to which this rule applies. This field
5609
+ is only applicable for UDP or TCP protocol. Each entry must be
5610
+ either an integer or a range. If not specified, this rule
5611
+ applies to connections through any port.
5612
+ Example inputs include: ["22"], ["80","443"], and
5613
+ ["12345-12349"].
5614
+ """
5615
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
5616
+ if ports is not None:
5617
+ pulumi.set(__self__, "ports", ports)
5618
+
5619
+ @property
5620
+ @pulumi.getter(name="ipProtocol")
5621
+ def ip_protocol(self) -> str:
5622
+ """
5623
+ (Output)
5624
+ The IP protocol to which this rule applies. The protocol
5625
+ type is required when creating a firewall rule.
5626
+ This value can either be one of the following well
5627
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
5628
+ or the IP protocol number.
5629
+ """
5630
+ return pulumi.get(self, "ip_protocol")
5631
+
5632
+ @property
5633
+ @pulumi.getter
5634
+ def ports(self) -> Optional[Sequence[str]]:
5635
+ """
5636
+ (Output)
5637
+ An optional list of ports to which this rule applies. This field
5638
+ is only applicable for UDP or TCP protocol. Each entry must be
5639
+ either an integer or a range. If not specified, this rule
5640
+ applies to connections through any port.
5641
+ Example inputs include: ["22"], ["80","443"], and
5642
+ ["12345-12349"].
5643
+ """
5644
+ return pulumi.get(self, "ports")
5645
+
5646
+
4628
5647
  @pulumi.output_type
4629
5648
  class ForwardingRuleServiceDirectoryRegistrations(dict):
4630
5649
  def __init__(__self__, *,