pulumi-gcp 8.1.0a1726492828__py3-none-any.whl → 8.2.0__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 (43) hide show
  1. pulumi_gcp/__init__.py +38 -0
  2. pulumi_gcp/bigquery/__init__.py +1 -0
  3. pulumi_gcp/bigquery/get_tables.py +143 -0
  4. pulumi_gcp/bigquery/outputs.py +30 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +2208 -285
  7. pulumi_gcp/compute/get_instance.py +3 -0
  8. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  9. pulumi_gcp/compute/outputs.py +1383 -0
  10. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  11. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  12. pulumi_gcp/compute/service_attachment.py +75 -0
  13. pulumi_gcp/compute/target_http_proxy.py +49 -28
  14. pulumi_gcp/compute/target_https_proxy.py +49 -28
  15. pulumi_gcp/config/__init__.pyi +4 -0
  16. pulumi_gcp/config/vars.py +8 -0
  17. pulumi_gcp/container/_inputs.py +96 -0
  18. pulumi_gcp/container/attached_cluster.py +54 -1
  19. pulumi_gcp/container/outputs.py +102 -0
  20. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  21. pulumi_gcp/dataproc/metastore_service.py +2 -0
  22. pulumi_gcp/datastream/stream.py +21 -14
  23. pulumi_gcp/developerconnect/__init__.py +11 -0
  24. pulumi_gcp/developerconnect/_inputs.py +301 -0
  25. pulumi_gcp/developerconnect/connection.py +1034 -0
  26. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  27. pulumi_gcp/developerconnect/outputs.py +247 -0
  28. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  29. pulumi_gcp/gkeonprem/outputs.py +2 -2
  30. pulumi_gcp/memorystore/__init__.py +10 -0
  31. pulumi_gcp/memorystore/_inputs.py +731 -0
  32. pulumi_gcp/memorystore/instance.py +1663 -0
  33. pulumi_gcp/memorystore/outputs.py +598 -0
  34. pulumi_gcp/netapp/volume.py +101 -0
  35. pulumi_gcp/organizations/folder.py +52 -33
  36. pulumi_gcp/provider.py +40 -0
  37. pulumi_gcp/pulumi-plugin.json +1 -1
  38. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  39. pulumi_gcp/vpcaccess/connector.py +21 -28
  40. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  41. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +43 -32
  42. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +0 -0
  43. {pulumi_gcp-8.1.0a1726492828.dist-info → pulumi_gcp-8.2.0.dist-info}/top_level.txt +0 -0
@@ -399,6 +399,26 @@ __all__ = [
399
399
  'NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict',
400
400
  'NetworkFirewallPolicyRuleTargetSecureTagArgs',
401
401
  'NetworkFirewallPolicyRuleTargetSecureTagArgsDict',
402
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleArgs',
403
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleArgsDict',
404
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs',
405
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict',
406
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs',
407
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict',
408
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs',
409
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict',
410
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs',
411
+ 'NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict',
412
+ 'NetworkFirewallPolicyWithRulesRuleArgs',
413
+ 'NetworkFirewallPolicyWithRulesRuleArgsDict',
414
+ 'NetworkFirewallPolicyWithRulesRuleMatchArgs',
415
+ 'NetworkFirewallPolicyWithRulesRuleMatchArgsDict',
416
+ 'NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs',
417
+ 'NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict',
418
+ 'NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs',
419
+ 'NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict',
420
+ 'NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs',
421
+ 'NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict',
402
422
  'NodeGroupAutoscalingPolicyArgs',
403
423
  'NodeGroupAutoscalingPolicyArgsDict',
404
424
  'NodeGroupMaintenanceWindowArgs',
@@ -8823,6 +8843,10 @@ if not MYPY:
8823
8843
  """
8824
8844
  A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
8825
8845
  """
8846
+ resource_policies: NotRequired[pulumi.Input[str]]
8847
+ """
8848
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
8849
+ """
8826
8850
  size: NotRequired[pulumi.Input[int]]
8827
8851
  """
8828
8852
  The size of the image in gigabytes. If not specified, it
@@ -8851,6 +8875,7 @@ class InstanceBootDiskInitializeParamsArgs:
8851
8875
  provisioned_iops: Optional[pulumi.Input[int]] = None,
8852
8876
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
8853
8877
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
8878
+ resource_policies: Optional[pulumi.Input[str]] = None,
8854
8879
  size: Optional[pulumi.Input[int]] = None,
8855
8880
  storage_pool: Optional[pulumi.Input[str]] = None,
8856
8881
  type: Optional[pulumi.Input[str]] = None):
@@ -8883,6 +8908,7 @@ class InstanceBootDiskInitializeParamsArgs:
8883
8908
  for an update of throughput every 4 hours. To update your hyperdisk more
8884
8909
  frequently, you'll need to manually delete and recreate it.
8885
8910
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
8911
+ :param pulumi.Input[str] resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
8886
8912
  :param pulumi.Input[int] size: The size of the image in gigabytes. If not specified, it
8887
8913
  will inherit the size of its base image.
8888
8914
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created.
@@ -8903,6 +8929,8 @@ class InstanceBootDiskInitializeParamsArgs:
8903
8929
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
8904
8930
  if resource_manager_tags is not None:
8905
8931
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
8932
+ if resource_policies is not None:
8933
+ pulumi.set(__self__, "resource_policies", resource_policies)
8906
8934
  if size is not None:
8907
8935
  pulumi.set(__self__, "size", size)
8908
8936
  if storage_pool is not None:
@@ -9004,6 +9032,18 @@ class InstanceBootDiskInitializeParamsArgs:
9004
9032
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
9005
9033
  pulumi.set(self, "resource_manager_tags", value)
9006
9034
 
9035
+ @property
9036
+ @pulumi.getter(name="resourcePolicies")
9037
+ def resource_policies(self) -> Optional[pulumi.Input[str]]:
9038
+ """
9039
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
9040
+ """
9041
+ return pulumi.get(self, "resource_policies")
9042
+
9043
+ @resource_policies.setter
9044
+ def resource_policies(self, value: Optional[pulumi.Input[str]]):
9045
+ pulumi.set(self, "resource_policies", value)
9046
+
9007
9047
  @property
9008
9048
  @pulumi.getter
9009
9049
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -9518,6 +9558,10 @@ if not MYPY:
9518
9558
  """
9519
9559
  A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
9520
9560
  """
9561
+ resource_policies: NotRequired[pulumi.Input[str]]
9562
+ """
9563
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
9564
+ """
9521
9565
  size: NotRequired[pulumi.Input[int]]
9522
9566
  """
9523
9567
  The size of the image in gigabytes.
@@ -9542,6 +9586,7 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9542
9586
  provisioned_iops: Optional[pulumi.Input[int]] = None,
9543
9587
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
9544
9588
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
9589
+ resource_policies: Optional[pulumi.Input[str]] = None,
9545
9590
  size: Optional[pulumi.Input[int]] = None,
9546
9591
  storage_pool: Optional[pulumi.Input[str]] = None,
9547
9592
  type: Optional[pulumi.Input[str]] = None):
@@ -9552,6 +9597,7 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9552
9597
  :param pulumi.Input[int] provisioned_iops: Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.
9553
9598
  :param pulumi.Input[int] provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
9554
9599
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
9600
+ :param pulumi.Input[str] resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
9555
9601
  :param pulumi.Input[int] size: The size of the image in gigabytes.
9556
9602
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created
9557
9603
  :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -9568,6 +9614,8 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9568
9614
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
9569
9615
  if resource_manager_tags is not None:
9570
9616
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
9617
+ if resource_policies is not None:
9618
+ pulumi.set(__self__, "resource_policies", resource_policies)
9571
9619
  if size is not None:
9572
9620
  pulumi.set(__self__, "size", size)
9573
9621
  if storage_pool is not None:
@@ -9647,6 +9695,18 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9647
9695
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
9648
9696
  pulumi.set(self, "resource_manager_tags", value)
9649
9697
 
9698
+ @property
9699
+ @pulumi.getter(name="resourcePolicies")
9700
+ def resource_policies(self) -> Optional[pulumi.Input[str]]:
9701
+ """
9702
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
9703
+ """
9704
+ return pulumi.get(self, "resource_policies")
9705
+
9706
+ @resource_policies.setter
9707
+ def resource_policies(self, value: Optional[pulumi.Input[str]]):
9708
+ pulumi.set(self, "resource_policies", value)
9709
+
9650
9710
  @property
9651
9711
  @pulumi.getter
9652
9712
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -11624,6 +11684,10 @@ if not MYPY:
11624
11684
  """
11625
11685
  A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
11626
11686
  """
11687
+ resource_policies: NotRequired[pulumi.Input[str]]
11688
+ """
11689
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
11690
+ """
11627
11691
  size: NotRequired[pulumi.Input[int]]
11628
11692
  """
11629
11693
  The size of the image in gigabytes.
@@ -11648,6 +11712,7 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11648
11712
  provisioned_iops: Optional[pulumi.Input[int]] = None,
11649
11713
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
11650
11714
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
11715
+ resource_policies: Optional[pulumi.Input[str]] = None,
11651
11716
  size: Optional[pulumi.Input[int]] = None,
11652
11717
  storage_pool: Optional[pulumi.Input[str]] = None,
11653
11718
  type: Optional[pulumi.Input[str]] = None):
@@ -11658,6 +11723,7 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11658
11723
  :param pulumi.Input[int] provisioned_iops: Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.
11659
11724
  :param pulumi.Input[int] provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.
11660
11725
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
11726
+ :param pulumi.Input[str] resource_policies: A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
11661
11727
  :param pulumi.Input[int] size: The size of the image in gigabytes.
11662
11728
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created
11663
11729
  :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -11674,6 +11740,8 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11674
11740
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
11675
11741
  if resource_manager_tags is not None:
11676
11742
  pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
11743
+ if resource_policies is not None:
11744
+ pulumi.set(__self__, "resource_policies", resource_policies)
11677
11745
  if size is not None:
11678
11746
  pulumi.set(__self__, "size", size)
11679
11747
  if storage_pool is not None:
@@ -11753,6 +11821,18 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11753
11821
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
11754
11822
  pulumi.set(self, "resource_manager_tags", value)
11755
11823
 
11824
+ @property
11825
+ @pulumi.getter(name="resourcePolicies")
11826
+ def resource_policies(self) -> Optional[pulumi.Input[str]]:
11827
+ """
11828
+ A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
11829
+ """
11830
+ return pulumi.get(self, "resource_policies")
11831
+
11832
+ @resource_policies.setter
11833
+ def resource_policies(self, value: Optional[pulumi.Input[str]]):
11834
+ pulumi.set(self, "resource_policies", value)
11835
+
11756
11836
  @property
11757
11837
  @pulumi.getter
11758
11838
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -19263,362 +19343,2029 @@ class MachineImageMachineImageEncryptionKeyArgs:
19263
19343
 
19264
19344
  @property
19265
19345
  @pulumi.getter
19266
- def sha256(self) -> Optional[pulumi.Input[str]]:
19346
+ def sha256(self) -> Optional[pulumi.Input[str]]:
19347
+ """
19348
+ (Output)
19349
+ The RFC 4648 base64 encoded SHA-256 hash of the
19350
+ customer-supplied encryption key that protects this resource.
19351
+ """
19352
+ return pulumi.get(self, "sha256")
19353
+
19354
+ @sha256.setter
19355
+ def sha256(self, value: Optional[pulumi.Input[str]]):
19356
+ pulumi.set(self, "sha256", value)
19357
+
19358
+
19359
+ if not MYPY:
19360
+ class ManagedSslCertificateManagedArgsDict(TypedDict):
19361
+ domains: pulumi.Input[Sequence[pulumi.Input[str]]]
19362
+ """
19363
+ Domains for which a managed SSL certificate will be valid. Currently,
19364
+ there can be up to 100 domains in this list.
19365
+ """
19366
+ elif False:
19367
+ ManagedSslCertificateManagedArgsDict: TypeAlias = Mapping[str, Any]
19368
+
19369
+ @pulumi.input_type
19370
+ class ManagedSslCertificateManagedArgs:
19371
+ def __init__(__self__, *,
19372
+ domains: pulumi.Input[Sequence[pulumi.Input[str]]]):
19373
+ """
19374
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Domains for which a managed SSL certificate will be valid. Currently,
19375
+ there can be up to 100 domains in this list.
19376
+ """
19377
+ pulumi.set(__self__, "domains", domains)
19378
+
19379
+ @property
19380
+ @pulumi.getter
19381
+ def domains(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
19382
+ """
19383
+ Domains for which a managed SSL certificate will be valid. Currently,
19384
+ there can be up to 100 domains in this list.
19385
+ """
19386
+ return pulumi.get(self, "domains")
19387
+
19388
+ @domains.setter
19389
+ def domains(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
19390
+ pulumi.set(self, "domains", value)
19391
+
19392
+
19393
+ if not MYPY:
19394
+ class MangedSslCertificateManagedArgsDict(TypedDict):
19395
+ domains: pulumi.Input[Sequence[pulumi.Input[str]]]
19396
+ """
19397
+ Domains for which a managed SSL certificate will be valid. Currently,
19398
+ there can be up to 100 domains in this list.
19399
+ """
19400
+ elif False:
19401
+ MangedSslCertificateManagedArgsDict: TypeAlias = Mapping[str, Any]
19402
+
19403
+ @pulumi.input_type
19404
+ class MangedSslCertificateManagedArgs:
19405
+ def __init__(__self__, *,
19406
+ domains: pulumi.Input[Sequence[pulumi.Input[str]]]):
19407
+ """
19408
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Domains for which a managed SSL certificate will be valid. Currently,
19409
+ there can be up to 100 domains in this list.
19410
+ """
19411
+ pulumi.set(__self__, "domains", domains)
19412
+
19413
+ @property
19414
+ @pulumi.getter
19415
+ def domains(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
19416
+ """
19417
+ Domains for which a managed SSL certificate will be valid. Currently,
19418
+ there can be up to 100 domains in this list.
19419
+ """
19420
+ return pulumi.get(self, "domains")
19421
+
19422
+ @domains.setter
19423
+ def domains(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
19424
+ pulumi.set(self, "domains", value)
19425
+
19426
+
19427
+ if not MYPY:
19428
+ class NetworkAttachmentConnectionEndpointArgsDict(TypedDict):
19429
+ ip_address: NotRequired[pulumi.Input[str]]
19430
+ """
19431
+ (Output)
19432
+ The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
19433
+ """
19434
+ project_id_or_num: NotRequired[pulumi.Input[str]]
19435
+ """
19436
+ (Output)
19437
+ The project id or number of the interface to which the IP was assigned.
19438
+ """
19439
+ secondary_ip_cidr_ranges: NotRequired[pulumi.Input[str]]
19440
+ """
19441
+ (Output)
19442
+ Alias IP ranges from the same subnetwork.
19443
+ """
19444
+ status: NotRequired[pulumi.Input[str]]
19445
+ """
19446
+ (Output)
19447
+ The status of a connected endpoint to this network attachment.
19448
+ """
19449
+ subnetwork: NotRequired[pulumi.Input[str]]
19450
+ """
19451
+ (Output)
19452
+ The subnetwork used to assign the IP to the producer instance network interface.
19453
+ """
19454
+ elif False:
19455
+ NetworkAttachmentConnectionEndpointArgsDict: TypeAlias = Mapping[str, Any]
19456
+
19457
+ @pulumi.input_type
19458
+ class NetworkAttachmentConnectionEndpointArgs:
19459
+ def __init__(__self__, *,
19460
+ ip_address: Optional[pulumi.Input[str]] = None,
19461
+ project_id_or_num: Optional[pulumi.Input[str]] = None,
19462
+ secondary_ip_cidr_ranges: Optional[pulumi.Input[str]] = None,
19463
+ status: Optional[pulumi.Input[str]] = None,
19464
+ subnetwork: Optional[pulumi.Input[str]] = None):
19465
+ """
19466
+ :param pulumi.Input[str] ip_address: (Output)
19467
+ The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
19468
+ :param pulumi.Input[str] project_id_or_num: (Output)
19469
+ The project id or number of the interface to which the IP was assigned.
19470
+ :param pulumi.Input[str] secondary_ip_cidr_ranges: (Output)
19471
+ Alias IP ranges from the same subnetwork.
19472
+ :param pulumi.Input[str] status: (Output)
19473
+ The status of a connected endpoint to this network attachment.
19474
+ :param pulumi.Input[str] subnetwork: (Output)
19475
+ The subnetwork used to assign the IP to the producer instance network interface.
19476
+ """
19477
+ if ip_address is not None:
19478
+ pulumi.set(__self__, "ip_address", ip_address)
19479
+ if project_id_or_num is not None:
19480
+ pulumi.set(__self__, "project_id_or_num", project_id_or_num)
19481
+ if secondary_ip_cidr_ranges is not None:
19482
+ pulumi.set(__self__, "secondary_ip_cidr_ranges", secondary_ip_cidr_ranges)
19483
+ if status is not None:
19484
+ pulumi.set(__self__, "status", status)
19485
+ if subnetwork is not None:
19486
+ pulumi.set(__self__, "subnetwork", subnetwork)
19487
+
19488
+ @property
19489
+ @pulumi.getter(name="ipAddress")
19490
+ def ip_address(self) -> Optional[pulumi.Input[str]]:
19491
+ """
19492
+ (Output)
19493
+ The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
19494
+ """
19495
+ return pulumi.get(self, "ip_address")
19496
+
19497
+ @ip_address.setter
19498
+ def ip_address(self, value: Optional[pulumi.Input[str]]):
19499
+ pulumi.set(self, "ip_address", value)
19500
+
19501
+ @property
19502
+ @pulumi.getter(name="projectIdOrNum")
19503
+ def project_id_or_num(self) -> Optional[pulumi.Input[str]]:
19504
+ """
19505
+ (Output)
19506
+ The project id or number of the interface to which the IP was assigned.
19507
+ """
19508
+ return pulumi.get(self, "project_id_or_num")
19509
+
19510
+ @project_id_or_num.setter
19511
+ def project_id_or_num(self, value: Optional[pulumi.Input[str]]):
19512
+ pulumi.set(self, "project_id_or_num", value)
19513
+
19514
+ @property
19515
+ @pulumi.getter(name="secondaryIpCidrRanges")
19516
+ def secondary_ip_cidr_ranges(self) -> Optional[pulumi.Input[str]]:
19517
+ """
19518
+ (Output)
19519
+ Alias IP ranges from the same subnetwork.
19520
+ """
19521
+ return pulumi.get(self, "secondary_ip_cidr_ranges")
19522
+
19523
+ @secondary_ip_cidr_ranges.setter
19524
+ def secondary_ip_cidr_ranges(self, value: Optional[pulumi.Input[str]]):
19525
+ pulumi.set(self, "secondary_ip_cidr_ranges", value)
19526
+
19527
+ @property
19528
+ @pulumi.getter
19529
+ def status(self) -> Optional[pulumi.Input[str]]:
19530
+ """
19531
+ (Output)
19532
+ The status of a connected endpoint to this network attachment.
19533
+ """
19534
+ return pulumi.get(self, "status")
19535
+
19536
+ @status.setter
19537
+ def status(self, value: Optional[pulumi.Input[str]]):
19538
+ pulumi.set(self, "status", value)
19539
+
19540
+ @property
19541
+ @pulumi.getter
19542
+ def subnetwork(self) -> Optional[pulumi.Input[str]]:
19543
+ """
19544
+ (Output)
19545
+ The subnetwork used to assign the IP to the producer instance network interface.
19546
+ """
19547
+ return pulumi.get(self, "subnetwork")
19548
+
19549
+ @subnetwork.setter
19550
+ def subnetwork(self, value: Optional[pulumi.Input[str]]):
19551
+ pulumi.set(self, "subnetwork", value)
19552
+
19553
+
19554
+ if not MYPY:
19555
+ class NetworkEndpointListNetworkEndpointArgsDict(TypedDict):
19556
+ ip_address: pulumi.Input[str]
19557
+ """
19558
+ IPv4 address of network endpoint. The IP address must belong
19559
+ to a VM in GCE (either the primary IP or as part of an aliased IP
19560
+ range).
19561
+ """
19562
+ instance: NotRequired[pulumi.Input[str]]
19563
+ """
19564
+ The name for a specific VM instance that the IP address belongs to.
19565
+ This is required for network endpoints of type GCE_VM_IP_PORT.
19566
+ The instance must be in the same zone as the network endpoint group.
19567
+ """
19568
+ port: NotRequired[pulumi.Input[int]]
19569
+ """
19570
+ Port number of network endpoint.
19571
+ **Note** `port` is required unless the Network Endpoint Group is created
19572
+ with the type of `GCE_VM_IP`
19573
+ """
19574
+ elif False:
19575
+ NetworkEndpointListNetworkEndpointArgsDict: TypeAlias = Mapping[str, Any]
19576
+
19577
+ @pulumi.input_type
19578
+ class NetworkEndpointListNetworkEndpointArgs:
19579
+ def __init__(__self__, *,
19580
+ ip_address: pulumi.Input[str],
19581
+ instance: Optional[pulumi.Input[str]] = None,
19582
+ port: Optional[pulumi.Input[int]] = None):
19583
+ """
19584
+ :param pulumi.Input[str] ip_address: IPv4 address of network endpoint. The IP address must belong
19585
+ to a VM in GCE (either the primary IP or as part of an aliased IP
19586
+ range).
19587
+ :param pulumi.Input[str] instance: The name for a specific VM instance that the IP address belongs to.
19588
+ This is required for network endpoints of type GCE_VM_IP_PORT.
19589
+ The instance must be in the same zone as the network endpoint group.
19590
+ :param pulumi.Input[int] port: Port number of network endpoint.
19591
+ **Note** `port` is required unless the Network Endpoint Group is created
19592
+ with the type of `GCE_VM_IP`
19593
+ """
19594
+ pulumi.set(__self__, "ip_address", ip_address)
19595
+ if instance is not None:
19596
+ pulumi.set(__self__, "instance", instance)
19597
+ if port is not None:
19598
+ pulumi.set(__self__, "port", port)
19599
+
19600
+ @property
19601
+ @pulumi.getter(name="ipAddress")
19602
+ def ip_address(self) -> pulumi.Input[str]:
19603
+ """
19604
+ IPv4 address of network endpoint. The IP address must belong
19605
+ to a VM in GCE (either the primary IP or as part of an aliased IP
19606
+ range).
19607
+ """
19608
+ return pulumi.get(self, "ip_address")
19609
+
19610
+ @ip_address.setter
19611
+ def ip_address(self, value: pulumi.Input[str]):
19612
+ pulumi.set(self, "ip_address", value)
19613
+
19614
+ @property
19615
+ @pulumi.getter
19616
+ def instance(self) -> Optional[pulumi.Input[str]]:
19617
+ """
19618
+ The name for a specific VM instance that the IP address belongs to.
19619
+ This is required for network endpoints of type GCE_VM_IP_PORT.
19620
+ The instance must be in the same zone as the network endpoint group.
19621
+ """
19622
+ return pulumi.get(self, "instance")
19623
+
19624
+ @instance.setter
19625
+ def instance(self, value: Optional[pulumi.Input[str]]):
19626
+ pulumi.set(self, "instance", value)
19627
+
19628
+ @property
19629
+ @pulumi.getter
19630
+ def port(self) -> Optional[pulumi.Input[int]]:
19631
+ """
19632
+ Port number of network endpoint.
19633
+ **Note** `port` is required unless the Network Endpoint Group is created
19634
+ with the type of `GCE_VM_IP`
19635
+ """
19636
+ return pulumi.get(self, "port")
19637
+
19638
+ @port.setter
19639
+ def port(self, value: Optional[pulumi.Input[int]]):
19640
+ pulumi.set(self, "port", value)
19641
+
19642
+
19643
+ if not MYPY:
19644
+ class NetworkFirewallPolicyRuleMatchArgsDict(TypedDict):
19645
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict']]]
19646
+ """
19647
+ Pairs of IP protocols and ports that the rule should match.
19648
+ """
19649
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19650
+ """
19651
+ Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
19652
+ """
19653
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19654
+ """
19655
+ Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
19656
+ """
19657
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19658
+ """
19659
+ CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
19660
+ """
19661
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19662
+ """
19663
+ The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
19664
+ """
19665
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19666
+ """
19667
+ Name of the Google Cloud Threat Intelligence list.
19668
+ """
19669
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19670
+ """
19671
+ Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
19672
+ """
19673
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19674
+ """
19675
+ Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
19676
+ """
19677
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19678
+ """
19679
+ CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
19680
+ """
19681
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19682
+ """
19683
+ The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
19684
+ """
19685
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict']]]]
19686
+ """
19687
+ List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
19688
+ """
19689
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19690
+ """
19691
+ Name of the Google Cloud Threat Intelligence list.
19692
+
19693
+ The `layer4_configs` block supports:
19694
+ """
19695
+ elif False:
19696
+ NetworkFirewallPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
19697
+
19698
+ @pulumi.input_type
19699
+ class NetworkFirewallPolicyRuleMatchArgs:
19700
+ def __init__(__self__, *,
19701
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]],
19702
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19703
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19704
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19705
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19706
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19707
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19708
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19709
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19710
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19711
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]] = None,
19712
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19713
+ """
19714
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
19715
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
19716
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
19717
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
19718
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
19719
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
19720
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
19721
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
19722
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
19723
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
19724
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
19725
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
19726
+
19727
+ The `layer4_configs` block supports:
19728
+ """
19729
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
19730
+ if dest_address_groups is not None:
19731
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
19732
+ if dest_fqdns is not None:
19733
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
19734
+ if dest_ip_ranges is not None:
19735
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
19736
+ if dest_region_codes is not None:
19737
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
19738
+ if dest_threat_intelligences is not None:
19739
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
19740
+ if src_address_groups is not None:
19741
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
19742
+ if src_fqdns is not None:
19743
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
19744
+ if src_ip_ranges is not None:
19745
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
19746
+ if src_region_codes is not None:
19747
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
19748
+ if src_secure_tags is not None:
19749
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
19750
+ if src_threat_intelligences is not None:
19751
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
19752
+
19753
+ @property
19754
+ @pulumi.getter(name="layer4Configs")
19755
+ def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]:
19756
+ """
19757
+ Pairs of IP protocols and ports that the rule should match.
19758
+ """
19759
+ return pulumi.get(self, "layer4_configs")
19760
+
19761
+ @layer4_configs.setter
19762
+ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]):
19763
+ pulumi.set(self, "layer4_configs", value)
19764
+
19765
+ @property
19766
+ @pulumi.getter(name="destAddressGroups")
19767
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19768
+ """
19769
+ Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
19770
+ """
19771
+ return pulumi.get(self, "dest_address_groups")
19772
+
19773
+ @dest_address_groups.setter
19774
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19775
+ pulumi.set(self, "dest_address_groups", value)
19776
+
19777
+ @property
19778
+ @pulumi.getter(name="destFqdns")
19779
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19780
+ """
19781
+ Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
19782
+ """
19783
+ return pulumi.get(self, "dest_fqdns")
19784
+
19785
+ @dest_fqdns.setter
19786
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19787
+ pulumi.set(self, "dest_fqdns", value)
19788
+
19789
+ @property
19790
+ @pulumi.getter(name="destIpRanges")
19791
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19792
+ """
19793
+ CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
19794
+ """
19795
+ return pulumi.get(self, "dest_ip_ranges")
19796
+
19797
+ @dest_ip_ranges.setter
19798
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19799
+ pulumi.set(self, "dest_ip_ranges", value)
19800
+
19801
+ @property
19802
+ @pulumi.getter(name="destRegionCodes")
19803
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19804
+ """
19805
+ The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
19806
+ """
19807
+ return pulumi.get(self, "dest_region_codes")
19808
+
19809
+ @dest_region_codes.setter
19810
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19811
+ pulumi.set(self, "dest_region_codes", value)
19812
+
19813
+ @property
19814
+ @pulumi.getter(name="destThreatIntelligences")
19815
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19816
+ """
19817
+ Name of the Google Cloud Threat Intelligence list.
19818
+ """
19819
+ return pulumi.get(self, "dest_threat_intelligences")
19820
+
19821
+ @dest_threat_intelligences.setter
19822
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19823
+ pulumi.set(self, "dest_threat_intelligences", value)
19824
+
19825
+ @property
19826
+ @pulumi.getter(name="srcAddressGroups")
19827
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19828
+ """
19829
+ Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
19830
+ """
19831
+ return pulumi.get(self, "src_address_groups")
19832
+
19833
+ @src_address_groups.setter
19834
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19835
+ pulumi.set(self, "src_address_groups", value)
19836
+
19837
+ @property
19838
+ @pulumi.getter(name="srcFqdns")
19839
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19840
+ """
19841
+ Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
19842
+ """
19843
+ return pulumi.get(self, "src_fqdns")
19844
+
19845
+ @src_fqdns.setter
19846
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19847
+ pulumi.set(self, "src_fqdns", value)
19848
+
19849
+ @property
19850
+ @pulumi.getter(name="srcIpRanges")
19851
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19852
+ """
19853
+ CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
19854
+ """
19855
+ return pulumi.get(self, "src_ip_ranges")
19856
+
19857
+ @src_ip_ranges.setter
19858
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19859
+ pulumi.set(self, "src_ip_ranges", value)
19860
+
19861
+ @property
19862
+ @pulumi.getter(name="srcRegionCodes")
19863
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19864
+ """
19865
+ The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
19866
+ """
19867
+ return pulumi.get(self, "src_region_codes")
19868
+
19869
+ @src_region_codes.setter
19870
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19871
+ pulumi.set(self, "src_region_codes", value)
19872
+
19873
+ @property
19874
+ @pulumi.getter(name="srcSecureTags")
19875
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]]:
19876
+ """
19877
+ List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
19878
+ """
19879
+ return pulumi.get(self, "src_secure_tags")
19880
+
19881
+ @src_secure_tags.setter
19882
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]]):
19883
+ pulumi.set(self, "src_secure_tags", value)
19884
+
19885
+ @property
19886
+ @pulumi.getter(name="srcThreatIntelligences")
19887
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19888
+ """
19889
+ Name of the Google Cloud Threat Intelligence list.
19890
+
19891
+ The `layer4_configs` block supports:
19892
+ """
19893
+ return pulumi.get(self, "src_threat_intelligences")
19894
+
19895
+ @src_threat_intelligences.setter
19896
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19897
+ pulumi.set(self, "src_threat_intelligences", value)
19898
+
19899
+
19900
+ if not MYPY:
19901
+ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict(TypedDict):
19902
+ ip_protocol: pulumi.Input[str]
19903
+ """
19904
+ The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
19905
+ """
19906
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19907
+ """
19908
+ An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
19909
+ """
19910
+ elif False:
19911
+ NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
19912
+
19913
+ @pulumi.input_type
19914
+ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19915
+ def __init__(__self__, *,
19916
+ ip_protocol: pulumi.Input[str],
19917
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19918
+ """
19919
+ :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
19920
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
19921
+ """
19922
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
19923
+ if ports is not None:
19924
+ pulumi.set(__self__, "ports", ports)
19925
+
19926
+ @property
19927
+ @pulumi.getter(name="ipProtocol")
19928
+ def ip_protocol(self) -> pulumi.Input[str]:
19929
+ """
19930
+ The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
19931
+ """
19932
+ return pulumi.get(self, "ip_protocol")
19933
+
19934
+ @ip_protocol.setter
19935
+ def ip_protocol(self, value: pulumi.Input[str]):
19936
+ pulumi.set(self, "ip_protocol", value)
19937
+
19938
+ @property
19939
+ @pulumi.getter
19940
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19941
+ """
19942
+ An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
19943
+ """
19944
+ return pulumi.get(self, "ports")
19945
+
19946
+ @ports.setter
19947
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
19948
+ pulumi.set(self, "ports", value)
19949
+
19950
+
19951
+ if not MYPY:
19952
+ class NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict(TypedDict):
19953
+ name: pulumi.Input[str]
19954
+ """
19955
+ Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19956
+ """
19957
+ state: NotRequired[pulumi.Input[str]]
19958
+ """
19959
+ [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
19960
+ """
19961
+ elif False:
19962
+ NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19963
+
19964
+ @pulumi.input_type
19965
+ class NetworkFirewallPolicyRuleMatchSrcSecureTagArgs:
19966
+ def __init__(__self__, *,
19967
+ name: pulumi.Input[str],
19968
+ state: Optional[pulumi.Input[str]] = None):
19969
+ """
19970
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19971
+ :param pulumi.Input[str] state: [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
19972
+ """
19973
+ pulumi.set(__self__, "name", name)
19974
+ if state is not None:
19975
+ pulumi.set(__self__, "state", state)
19976
+
19977
+ @property
19978
+ @pulumi.getter
19979
+ def name(self) -> pulumi.Input[str]:
19980
+ """
19981
+ Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19982
+ """
19983
+ return pulumi.get(self, "name")
19984
+
19985
+ @name.setter
19986
+ def name(self, value: pulumi.Input[str]):
19987
+ pulumi.set(self, "name", value)
19988
+
19989
+ @property
19990
+ @pulumi.getter
19991
+ def state(self) -> Optional[pulumi.Input[str]]:
19992
+ """
19993
+ [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
19994
+ """
19995
+ return pulumi.get(self, "state")
19996
+
19997
+ @state.setter
19998
+ def state(self, value: Optional[pulumi.Input[str]]):
19999
+ pulumi.set(self, "state", value)
20000
+
20001
+
20002
+ if not MYPY:
20003
+ class NetworkFirewallPolicyRuleTargetSecureTagArgsDict(TypedDict):
20004
+ name: pulumi.Input[str]
20005
+ """
20006
+ Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
20007
+ """
20008
+ state: NotRequired[pulumi.Input[str]]
20009
+ """
20010
+ [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
20011
+ """
20012
+ elif False:
20013
+ NetworkFirewallPolicyRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
20014
+
20015
+ @pulumi.input_type
20016
+ class NetworkFirewallPolicyRuleTargetSecureTagArgs:
20017
+ def __init__(__self__, *,
20018
+ name: pulumi.Input[str],
20019
+ state: Optional[pulumi.Input[str]] = None):
20020
+ """
20021
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
20022
+ :param pulumi.Input[str] state: [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
20023
+ """
20024
+ pulumi.set(__self__, "name", name)
20025
+ if state is not None:
20026
+ pulumi.set(__self__, "state", state)
20027
+
20028
+ @property
20029
+ @pulumi.getter
20030
+ def name(self) -> pulumi.Input[str]:
20031
+ """
20032
+ Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
20033
+ """
20034
+ return pulumi.get(self, "name")
20035
+
20036
+ @name.setter
20037
+ def name(self, value: pulumi.Input[str]):
20038
+ pulumi.set(self, "name", value)
20039
+
20040
+ @property
20041
+ @pulumi.getter
20042
+ def state(self) -> Optional[pulumi.Input[str]]:
20043
+ """
20044
+ [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
20045
+ """
20046
+ return pulumi.get(self, "state")
20047
+
20048
+ @state.setter
20049
+ def state(self, value: Optional[pulumi.Input[str]]):
20050
+ pulumi.set(self, "state", value)
20051
+
20052
+
20053
+ if not MYPY:
20054
+ class NetworkFirewallPolicyWithRulesPredefinedRuleArgsDict(TypedDict):
20055
+ action: NotRequired[pulumi.Input[str]]
20056
+ """
20057
+ (Output)
20058
+ The Action to perform when the client connection triggers the rule. Can currently be either
20059
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
20060
+ """
20061
+ description: NotRequired[pulumi.Input[str]]
20062
+ """
20063
+ (Output)
20064
+ A description of the rule.
20065
+ """
20066
+ direction: NotRequired[pulumi.Input[str]]
20067
+ """
20068
+ (Output)
20069
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
20070
+ """
20071
+ disabled: NotRequired[pulumi.Input[bool]]
20072
+ """
20073
+ (Output)
20074
+ Denotes whether the firewall policy rule is disabled. When set to true,
20075
+ the firewall policy rule is not enforced and traffic behaves as if it did
20076
+ not exist. If this is unspecified, the firewall policy rule will be
20077
+ enabled.
20078
+ """
20079
+ enable_logging: NotRequired[pulumi.Input[bool]]
20080
+ """
20081
+ (Output)
20082
+ Denotes whether to enable logging for a particular rule.
20083
+ If logging is enabled, logs will be exported to the
20084
+ configured export destination in Stackdriver.
20085
+ """
20086
+ matches: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict']]]]
20087
+ """
20088
+ (Output)
20089
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
20090
+ Structure is documented below.
20091
+ """
20092
+ priority: NotRequired[pulumi.Input[int]]
20093
+ """
20094
+ (Output)
20095
+ An integer indicating the priority of a rule in the list. The priority must be a value
20096
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
20097
+ highest priority and 2147483647 is the lowest priority.
20098
+ """
20099
+ rule_name: NotRequired[pulumi.Input[str]]
20100
+ """
20101
+ (Output)
20102
+ An optional name for the rule. This field is not a unique identifier
20103
+ and can be updated.
20104
+ """
20105
+ security_profile_group: NotRequired[pulumi.Input[str]]
20106
+ """
20107
+ (Output)
20108
+ A fully-qualified URL of a SecurityProfile resource instance.
20109
+ Example:
20110
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
20111
+ Must be specified if action is 'apply_security_profile_group'.
20112
+ """
20113
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict']]]]
20114
+ """
20115
+ (Output)
20116
+ A list of secure tags that controls which instances the firewall rule
20117
+ applies to. If <code>targetSecureTag</code> are specified, then the
20118
+ firewall rule applies only to instances in the VPC network that have one
20119
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
20120
+ INEFFECTIVE state, then this rule will be ignored.
20121
+ <code>targetSecureTag</code> may not be set at the same time as
20122
+ <code>targetServiceAccounts</code>.
20123
+ If neither <code>targetServiceAccounts</code> nor
20124
+ <code>targetSecureTag</code> are specified, the firewall rule applies
20125
+ to all instances on the specified network.
20126
+ Maximum number of target label tags allowed is 256.
20127
+ Structure is documented below.
20128
+ """
20129
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20130
+ """
20131
+ (Output)
20132
+ A list of service accounts indicating the sets of
20133
+ instances that are applied with this rule.
20134
+ """
20135
+ tls_inspect: NotRequired[pulumi.Input[bool]]
20136
+ """
20137
+ (Output)
20138
+ Boolean flag indicating if the traffic should be TLS decrypted.
20139
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
20140
+ """
20141
+ elif False:
20142
+ NetworkFirewallPolicyWithRulesPredefinedRuleArgsDict: TypeAlias = Mapping[str, Any]
20143
+
20144
+ @pulumi.input_type
20145
+ class NetworkFirewallPolicyWithRulesPredefinedRuleArgs:
20146
+ def __init__(__self__, *,
20147
+ action: Optional[pulumi.Input[str]] = None,
20148
+ description: Optional[pulumi.Input[str]] = None,
20149
+ direction: Optional[pulumi.Input[str]] = None,
20150
+ disabled: Optional[pulumi.Input[bool]] = None,
20151
+ enable_logging: Optional[pulumi.Input[bool]] = None,
20152
+ matches: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]] = None,
20153
+ priority: Optional[pulumi.Input[int]] = None,
20154
+ rule_name: Optional[pulumi.Input[str]] = None,
20155
+ security_profile_group: Optional[pulumi.Input[str]] = None,
20156
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]] = None,
20157
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20158
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
20159
+ """
20160
+ :param pulumi.Input[str] action: (Output)
20161
+ The Action to perform when the client connection triggers the rule. Can currently be either
20162
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
20163
+ :param pulumi.Input[str] description: (Output)
20164
+ A description of the rule.
20165
+ :param pulumi.Input[str] direction: (Output)
20166
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
20167
+ :param pulumi.Input[bool] disabled: (Output)
20168
+ Denotes whether the firewall policy rule is disabled. When set to true,
20169
+ the firewall policy rule is not enforced and traffic behaves as if it did
20170
+ not exist. If this is unspecified, the firewall policy rule will be
20171
+ enabled.
20172
+ :param pulumi.Input[bool] enable_logging: (Output)
20173
+ Denotes whether to enable logging for a particular rule.
20174
+ If logging is enabled, logs will be exported to the
20175
+ configured export destination in Stackdriver.
20176
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]] matches: (Output)
20177
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
20178
+ Structure is documented below.
20179
+ :param pulumi.Input[int] priority: (Output)
20180
+ An integer indicating the priority of a rule in the list. The priority must be a value
20181
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
20182
+ highest priority and 2147483647 is the lowest priority.
20183
+ :param pulumi.Input[str] rule_name: (Output)
20184
+ An optional name for the rule. This field is not a unique identifier
20185
+ and can be updated.
20186
+ :param pulumi.Input[str] security_profile_group: (Output)
20187
+ A fully-qualified URL of a SecurityProfile resource instance.
20188
+ Example:
20189
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
20190
+ Must be specified if action is 'apply_security_profile_group'.
20191
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]] target_secure_tags: (Output)
20192
+ A list of secure tags that controls which instances the firewall rule
20193
+ applies to. If <code>targetSecureTag</code> are specified, then the
20194
+ firewall rule applies only to instances in the VPC network that have one
20195
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
20196
+ INEFFECTIVE state, then this rule will be ignored.
20197
+ <code>targetSecureTag</code> may not be set at the same time as
20198
+ <code>targetServiceAccounts</code>.
20199
+ If neither <code>targetServiceAccounts</code> nor
20200
+ <code>targetSecureTag</code> are specified, the firewall rule applies
20201
+ to all instances on the specified network.
20202
+ Maximum number of target label tags allowed is 256.
20203
+ Structure is documented below.
20204
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: (Output)
20205
+ A list of service accounts indicating the sets of
20206
+ instances that are applied with this rule.
20207
+ :param pulumi.Input[bool] tls_inspect: (Output)
20208
+ Boolean flag indicating if the traffic should be TLS decrypted.
20209
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
20210
+ """
20211
+ if action is not None:
20212
+ pulumi.set(__self__, "action", action)
20213
+ if description is not None:
20214
+ pulumi.set(__self__, "description", description)
20215
+ if direction is not None:
20216
+ pulumi.set(__self__, "direction", direction)
20217
+ if disabled is not None:
20218
+ pulumi.set(__self__, "disabled", disabled)
20219
+ if enable_logging is not None:
20220
+ pulumi.set(__self__, "enable_logging", enable_logging)
20221
+ if matches is not None:
20222
+ pulumi.set(__self__, "matches", matches)
20223
+ if priority is not None:
20224
+ pulumi.set(__self__, "priority", priority)
20225
+ if rule_name is not None:
20226
+ pulumi.set(__self__, "rule_name", rule_name)
20227
+ if security_profile_group is not None:
20228
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
20229
+ if target_secure_tags is not None:
20230
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
20231
+ if target_service_accounts is not None:
20232
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
20233
+ if tls_inspect is not None:
20234
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
20235
+
20236
+ @property
20237
+ @pulumi.getter
20238
+ def action(self) -> Optional[pulumi.Input[str]]:
20239
+ """
20240
+ (Output)
20241
+ The Action to perform when the client connection triggers the rule. Can currently be either
20242
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
20243
+ """
20244
+ return pulumi.get(self, "action")
20245
+
20246
+ @action.setter
20247
+ def action(self, value: Optional[pulumi.Input[str]]):
20248
+ pulumi.set(self, "action", value)
20249
+
20250
+ @property
20251
+ @pulumi.getter
20252
+ def description(self) -> Optional[pulumi.Input[str]]:
20253
+ """
20254
+ (Output)
20255
+ A description of the rule.
20256
+ """
20257
+ return pulumi.get(self, "description")
20258
+
20259
+ @description.setter
20260
+ def description(self, value: Optional[pulumi.Input[str]]):
20261
+ pulumi.set(self, "description", value)
20262
+
20263
+ @property
20264
+ @pulumi.getter
20265
+ def direction(self) -> Optional[pulumi.Input[str]]:
20266
+ """
20267
+ (Output)
20268
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
20269
+ """
20270
+ return pulumi.get(self, "direction")
20271
+
20272
+ @direction.setter
20273
+ def direction(self, value: Optional[pulumi.Input[str]]):
20274
+ pulumi.set(self, "direction", value)
20275
+
20276
+ @property
20277
+ @pulumi.getter
20278
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
20279
+ """
20280
+ (Output)
20281
+ Denotes whether the firewall policy rule is disabled. When set to true,
20282
+ the firewall policy rule is not enforced and traffic behaves as if it did
20283
+ not exist. If this is unspecified, the firewall policy rule will be
20284
+ enabled.
20285
+ """
20286
+ return pulumi.get(self, "disabled")
20287
+
20288
+ @disabled.setter
20289
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
20290
+ pulumi.set(self, "disabled", value)
20291
+
20292
+ @property
20293
+ @pulumi.getter(name="enableLogging")
20294
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
20295
+ """
20296
+ (Output)
20297
+ Denotes whether to enable logging for a particular rule.
20298
+ If logging is enabled, logs will be exported to the
20299
+ configured export destination in Stackdriver.
20300
+ """
20301
+ return pulumi.get(self, "enable_logging")
20302
+
20303
+ @enable_logging.setter
20304
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
20305
+ pulumi.set(self, "enable_logging", value)
20306
+
20307
+ @property
20308
+ @pulumi.getter
20309
+ def matches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]:
20310
+ """
20311
+ (Output)
20312
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
20313
+ Structure is documented below.
20314
+ """
20315
+ return pulumi.get(self, "matches")
20316
+
20317
+ @matches.setter
20318
+ def matches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]):
20319
+ pulumi.set(self, "matches", value)
20320
+
20321
+ @property
20322
+ @pulumi.getter
20323
+ def priority(self) -> Optional[pulumi.Input[int]]:
20324
+ """
20325
+ (Output)
20326
+ An integer indicating the priority of a rule in the list. The priority must be a value
20327
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
20328
+ highest priority and 2147483647 is the lowest priority.
20329
+ """
20330
+ return pulumi.get(self, "priority")
20331
+
20332
+ @priority.setter
20333
+ def priority(self, value: Optional[pulumi.Input[int]]):
20334
+ pulumi.set(self, "priority", value)
20335
+
20336
+ @property
20337
+ @pulumi.getter(name="ruleName")
20338
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
20339
+ """
20340
+ (Output)
20341
+ An optional name for the rule. This field is not a unique identifier
20342
+ and can be updated.
20343
+ """
20344
+ return pulumi.get(self, "rule_name")
20345
+
20346
+ @rule_name.setter
20347
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
20348
+ pulumi.set(self, "rule_name", value)
20349
+
20350
+ @property
20351
+ @pulumi.getter(name="securityProfileGroup")
20352
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
20353
+ """
20354
+ (Output)
20355
+ A fully-qualified URL of a SecurityProfile resource instance.
20356
+ Example:
20357
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
20358
+ Must be specified if action is 'apply_security_profile_group'.
20359
+ """
20360
+ return pulumi.get(self, "security_profile_group")
20361
+
20362
+ @security_profile_group.setter
20363
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
20364
+ pulumi.set(self, "security_profile_group", value)
20365
+
20366
+ @property
20367
+ @pulumi.getter(name="targetSecureTags")
20368
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]:
20369
+ """
20370
+ (Output)
20371
+ A list of secure tags that controls which instances the firewall rule
20372
+ applies to. If <code>targetSecureTag</code> are specified, then the
20373
+ firewall rule applies only to instances in the VPC network that have one
20374
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
20375
+ INEFFECTIVE state, then this rule will be ignored.
20376
+ <code>targetSecureTag</code> may not be set at the same time as
20377
+ <code>targetServiceAccounts</code>.
20378
+ If neither <code>targetServiceAccounts</code> nor
20379
+ <code>targetSecureTag</code> are specified, the firewall rule applies
20380
+ to all instances on the specified network.
20381
+ Maximum number of target label tags allowed is 256.
20382
+ Structure is documented below.
20383
+ """
20384
+ return pulumi.get(self, "target_secure_tags")
20385
+
20386
+ @target_secure_tags.setter
20387
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]):
20388
+ pulumi.set(self, "target_secure_tags", value)
20389
+
20390
+ @property
20391
+ @pulumi.getter(name="targetServiceAccounts")
20392
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20393
+ """
20394
+ (Output)
20395
+ A list of service accounts indicating the sets of
20396
+ instances that are applied with this rule.
20397
+ """
20398
+ return pulumi.get(self, "target_service_accounts")
20399
+
20400
+ @target_service_accounts.setter
20401
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20402
+ pulumi.set(self, "target_service_accounts", value)
20403
+
20404
+ @property
20405
+ @pulumi.getter(name="tlsInspect")
20406
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
20407
+ """
20408
+ (Output)
20409
+ Boolean flag indicating if the traffic should be TLS decrypted.
20410
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
20411
+ """
20412
+ return pulumi.get(self, "tls_inspect")
20413
+
20414
+ @tls_inspect.setter
20415
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
20416
+ pulumi.set(self, "tls_inspect", value)
20417
+
20418
+
20419
+ if not MYPY:
20420
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict(TypedDict):
20421
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20422
+ """
20423
+ Address groups which should be matched against the traffic destination.
20424
+ Maximum number of destination address groups is 10.
20425
+ """
20426
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20427
+ """
20428
+ Fully Qualified Domain Name (FQDN) which should be matched against
20429
+ traffic destination. Maximum number of destination fqdn allowed is 100.
20430
+ """
20431
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20432
+ """
20433
+ Destination IP address range in CIDR format. Required for
20434
+ EGRESS rules.
20435
+ """
20436
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20437
+ """
20438
+ Region codes whose IP addresses will be used to match for destination
20439
+ of traffic. Should be specified as 2 letter country code defined as per
20440
+ ISO 3166 alpha-2 country codes. ex."US"
20441
+ Maximum number of destination region codes allowed is 5000.
20442
+ """
20443
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20444
+ """
20445
+ Names of Network Threat Intelligence lists.
20446
+ The IPs in these lists will be matched against traffic destination.
20447
+ """
20448
+ layer4_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict']]]]
20449
+ """
20450
+ Pairs of IP protocols and ports that the rule should match.
20451
+ Structure is documented below.
20452
+ """
20453
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20454
+ """
20455
+ Address groups which should be matched against the traffic source.
20456
+ Maximum number of source address groups is 10.
20457
+ """
20458
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20459
+ """
20460
+ Fully Qualified Domain Name (FQDN) which should be matched against
20461
+ traffic source. Maximum number of source fqdn allowed is 100.
20462
+ """
20463
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20464
+ """
20465
+ Source IP address range in CIDR format. Required for
20466
+ INGRESS rules.
20467
+ """
20468
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20469
+ """
20470
+ Region codes whose IP addresses will be used to match for source
20471
+ of traffic. Should be specified as 2 letter country code defined as per
20472
+ ISO 3166 alpha-2 country codes. ex."US"
20473
+ Maximum number of source region codes allowed is 5000.
20474
+ """
20475
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict']]]]
20476
+ """
20477
+ List of secure tag values, which should be matched at the source
20478
+ of the traffic.
20479
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
20480
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
20481
+ Maximum number of source tag values allowed is 256.
20482
+ Structure is documented below.
20483
+
20484
+
20485
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
20486
+ """
20487
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20488
+ """
20489
+ Names of Network Threat Intelligence lists.
20490
+ The IPs in these lists will be matched against traffic source.
20491
+ """
20492
+ elif False:
20493
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
20494
+
20495
+ @pulumi.input_type
20496
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs:
20497
+ def __init__(__self__, *,
20498
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20499
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20500
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20501
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20502
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20503
+ layer4_configs: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]] = None,
20504
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20505
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20506
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20507
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
20508
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]] = None,
20509
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
20510
+ """
20511
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
20512
+ Maximum number of destination address groups is 10.
20513
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
20514
+ traffic destination. Maximum number of destination fqdn allowed is 100.
20515
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
20516
+ EGRESS rules.
20517
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
20518
+ of traffic. Should be specified as 2 letter country code defined as per
20519
+ ISO 3166 alpha-2 country codes. ex."US"
20520
+ Maximum number of destination region codes allowed is 5000.
20521
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
20522
+ The IPs in these lists will be matched against traffic destination.
20523
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
20524
+ Structure is documented below.
20525
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
20526
+ Maximum number of source address groups is 10.
20527
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
20528
+ traffic source. Maximum number of source fqdn allowed is 100.
20529
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
20530
+ INGRESS rules.
20531
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
20532
+ of traffic. Should be specified as 2 letter country code defined as per
20533
+ ISO 3166 alpha-2 country codes. ex."US"
20534
+ Maximum number of source region codes allowed is 5000.
20535
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
20536
+ of the traffic.
20537
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
20538
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
20539
+ Maximum number of source tag values allowed is 256.
20540
+ Structure is documented below.
20541
+
20542
+
20543
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
20544
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
20545
+ The IPs in these lists will be matched against traffic source.
20546
+ """
20547
+ if dest_address_groups is not None:
20548
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
20549
+ if dest_fqdns is not None:
20550
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
20551
+ if dest_ip_ranges is not None:
20552
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
20553
+ if dest_region_codes is not None:
20554
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
20555
+ if dest_threat_intelligences is not None:
20556
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
20557
+ if layer4_configs is not None:
20558
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
20559
+ if src_address_groups is not None:
20560
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
20561
+ if src_fqdns is not None:
20562
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
20563
+ if src_ip_ranges is not None:
20564
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
20565
+ if src_region_codes is not None:
20566
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
20567
+ if src_secure_tags is not None:
20568
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
20569
+ if src_threat_intelligences is not None:
20570
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
20571
+
20572
+ @property
20573
+ @pulumi.getter(name="destAddressGroups")
20574
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20575
+ """
20576
+ Address groups which should be matched against the traffic destination.
20577
+ Maximum number of destination address groups is 10.
20578
+ """
20579
+ return pulumi.get(self, "dest_address_groups")
20580
+
20581
+ @dest_address_groups.setter
20582
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20583
+ pulumi.set(self, "dest_address_groups", value)
20584
+
20585
+ @property
20586
+ @pulumi.getter(name="destFqdns")
20587
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20588
+ """
20589
+ Fully Qualified Domain Name (FQDN) which should be matched against
20590
+ traffic destination. Maximum number of destination fqdn allowed is 100.
20591
+ """
20592
+ return pulumi.get(self, "dest_fqdns")
20593
+
20594
+ @dest_fqdns.setter
20595
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20596
+ pulumi.set(self, "dest_fqdns", value)
20597
+
20598
+ @property
20599
+ @pulumi.getter(name="destIpRanges")
20600
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20601
+ """
20602
+ Destination IP address range in CIDR format. Required for
20603
+ EGRESS rules.
20604
+ """
20605
+ return pulumi.get(self, "dest_ip_ranges")
20606
+
20607
+ @dest_ip_ranges.setter
20608
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20609
+ pulumi.set(self, "dest_ip_ranges", value)
20610
+
20611
+ @property
20612
+ @pulumi.getter(name="destRegionCodes")
20613
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20614
+ """
20615
+ Region codes whose IP addresses will be used to match for destination
20616
+ of traffic. Should be specified as 2 letter country code defined as per
20617
+ ISO 3166 alpha-2 country codes. ex."US"
20618
+ Maximum number of destination region codes allowed is 5000.
20619
+ """
20620
+ return pulumi.get(self, "dest_region_codes")
20621
+
20622
+ @dest_region_codes.setter
20623
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20624
+ pulumi.set(self, "dest_region_codes", value)
20625
+
20626
+ @property
20627
+ @pulumi.getter(name="destThreatIntelligences")
20628
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20629
+ """
20630
+ Names of Network Threat Intelligence lists.
20631
+ The IPs in these lists will be matched against traffic destination.
20632
+ """
20633
+ return pulumi.get(self, "dest_threat_intelligences")
20634
+
20635
+ @dest_threat_intelligences.setter
20636
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20637
+ pulumi.set(self, "dest_threat_intelligences", value)
20638
+
20639
+ @property
20640
+ @pulumi.getter(name="layer4Configs")
20641
+ def layer4_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]:
20642
+ """
20643
+ Pairs of IP protocols and ports that the rule should match.
20644
+ Structure is documented below.
20645
+ """
20646
+ return pulumi.get(self, "layer4_configs")
20647
+
20648
+ @layer4_configs.setter
20649
+ def layer4_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]):
20650
+ pulumi.set(self, "layer4_configs", value)
20651
+
20652
+ @property
20653
+ @pulumi.getter(name="srcAddressGroups")
20654
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20655
+ """
20656
+ Address groups which should be matched against the traffic source.
20657
+ Maximum number of source address groups is 10.
20658
+ """
20659
+ return pulumi.get(self, "src_address_groups")
20660
+
20661
+ @src_address_groups.setter
20662
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20663
+ pulumi.set(self, "src_address_groups", value)
20664
+
20665
+ @property
20666
+ @pulumi.getter(name="srcFqdns")
20667
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20668
+ """
20669
+ Fully Qualified Domain Name (FQDN) which should be matched against
20670
+ traffic source. Maximum number of source fqdn allowed is 100.
20671
+ """
20672
+ return pulumi.get(self, "src_fqdns")
20673
+
20674
+ @src_fqdns.setter
20675
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20676
+ pulumi.set(self, "src_fqdns", value)
20677
+
20678
+ @property
20679
+ @pulumi.getter(name="srcIpRanges")
20680
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20681
+ """
20682
+ Source IP address range in CIDR format. Required for
20683
+ INGRESS rules.
20684
+ """
20685
+ return pulumi.get(self, "src_ip_ranges")
20686
+
20687
+ @src_ip_ranges.setter
20688
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20689
+ pulumi.set(self, "src_ip_ranges", value)
20690
+
20691
+ @property
20692
+ @pulumi.getter(name="srcRegionCodes")
20693
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20694
+ """
20695
+ Region codes whose IP addresses will be used to match for source
20696
+ of traffic. Should be specified as 2 letter country code defined as per
20697
+ ISO 3166 alpha-2 country codes. ex."US"
20698
+ Maximum number of source region codes allowed is 5000.
20699
+ """
20700
+ return pulumi.get(self, "src_region_codes")
20701
+
20702
+ @src_region_codes.setter
20703
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20704
+ pulumi.set(self, "src_region_codes", value)
20705
+
20706
+ @property
20707
+ @pulumi.getter(name="srcSecureTags")
20708
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]:
20709
+ """
20710
+ List of secure tag values, which should be matched at the source
20711
+ of the traffic.
20712
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
20713
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
20714
+ Maximum number of source tag values allowed is 256.
20715
+ Structure is documented below.
20716
+
20717
+
20718
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
20719
+ """
20720
+ return pulumi.get(self, "src_secure_tags")
20721
+
20722
+ @src_secure_tags.setter
20723
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]):
20724
+ pulumi.set(self, "src_secure_tags", value)
20725
+
20726
+ @property
20727
+ @pulumi.getter(name="srcThreatIntelligences")
20728
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20729
+ """
20730
+ Names of Network Threat Intelligence lists.
20731
+ The IPs in these lists will be matched against traffic source.
20732
+ """
20733
+ return pulumi.get(self, "src_threat_intelligences")
20734
+
20735
+ @src_threat_intelligences.setter
20736
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20737
+ pulumi.set(self, "src_threat_intelligences", value)
20738
+
20739
+
20740
+ if not MYPY:
20741
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict(TypedDict):
20742
+ ip_protocol: NotRequired[pulumi.Input[str]]
20743
+ """
20744
+ (Output)
20745
+ The IP protocol to which this rule applies. The protocol
20746
+ type is required when creating a firewall rule.
20747
+ This value can either be one of the following well
20748
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
20749
+ or the IP protocol number.
20750
+ """
20751
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
20752
+ """
20753
+ (Output)
20754
+ An optional list of ports to which this rule applies. This field
20755
+ is only applicable for UDP or TCP protocol. Each entry must be
20756
+ either an integer or a range. If not specified, this rule
20757
+ applies to connections through any port.
20758
+ Example inputs include: ["22"], ["80","443"], and
20759
+ ["12345-12349"].
20760
+ """
20761
+ elif False:
20762
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
20763
+
20764
+ @pulumi.input_type
20765
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs:
20766
+ def __init__(__self__, *,
20767
+ ip_protocol: Optional[pulumi.Input[str]] = None,
20768
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
20769
+ """
20770
+ :param pulumi.Input[str] ip_protocol: (Output)
20771
+ The IP protocol to which this rule applies. The protocol
20772
+ type is required when creating a firewall rule.
20773
+ This value can either be one of the following well
20774
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
20775
+ or the IP protocol number.
20776
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
20777
+ An optional list of ports to which this rule applies. This field
20778
+ is only applicable for UDP or TCP protocol. Each entry must be
20779
+ either an integer or a range. If not specified, this rule
20780
+ applies to connections through any port.
20781
+ Example inputs include: ["22"], ["80","443"], and
20782
+ ["12345-12349"].
20783
+ """
20784
+ if ip_protocol is not None:
20785
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
20786
+ if ports is not None:
20787
+ pulumi.set(__self__, "ports", ports)
20788
+
20789
+ @property
20790
+ @pulumi.getter(name="ipProtocol")
20791
+ def ip_protocol(self) -> Optional[pulumi.Input[str]]:
20792
+ """
20793
+ (Output)
20794
+ The IP protocol to which this rule applies. The protocol
20795
+ type is required when creating a firewall rule.
20796
+ This value can either be one of the following well
20797
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
20798
+ or the IP protocol number.
20799
+ """
20800
+ return pulumi.get(self, "ip_protocol")
20801
+
20802
+ @ip_protocol.setter
20803
+ def ip_protocol(self, value: Optional[pulumi.Input[str]]):
20804
+ pulumi.set(self, "ip_protocol", value)
20805
+
20806
+ @property
20807
+ @pulumi.getter
20808
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
20809
+ """
20810
+ (Output)
20811
+ An optional list of ports to which this rule applies. This field
20812
+ is only applicable for UDP or TCP protocol. Each entry must be
20813
+ either an integer or a range. If not specified, this rule
20814
+ applies to connections through any port.
20815
+ Example inputs include: ["22"], ["80","443"], and
20816
+ ["12345-12349"].
20817
+ """
20818
+ return pulumi.get(self, "ports")
20819
+
20820
+ @ports.setter
20821
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
20822
+ pulumi.set(self, "ports", value)
20823
+
20824
+
20825
+ if not MYPY:
20826
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict(TypedDict):
20827
+ name: NotRequired[pulumi.Input[str]]
20828
+ """
20829
+ Name of the secure tag, created with TagManager's TagValue API.
20830
+ @pattern tagValues/[0-9]+
20831
+ """
20832
+ state: NotRequired[pulumi.Input[str]]
20833
+ """
20834
+ (Output)
20835
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20836
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20837
+ or its network is deleted.
20838
+ """
20839
+ elif False:
20840
+ NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
20841
+
20842
+ @pulumi.input_type
20843
+ class NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs:
20844
+ def __init__(__self__, *,
20845
+ name: Optional[pulumi.Input[str]] = None,
20846
+ state: Optional[pulumi.Input[str]] = None):
20847
+ """
20848
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
20849
+ @pattern tagValues/[0-9]+
20850
+ :param pulumi.Input[str] state: (Output)
20851
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20852
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20853
+ or its network is deleted.
20854
+ """
20855
+ if name is not None:
20856
+ pulumi.set(__self__, "name", name)
20857
+ if state is not None:
20858
+ pulumi.set(__self__, "state", state)
20859
+
20860
+ @property
20861
+ @pulumi.getter
20862
+ def name(self) -> Optional[pulumi.Input[str]]:
20863
+ """
20864
+ Name of the secure tag, created with TagManager's TagValue API.
20865
+ @pattern tagValues/[0-9]+
20866
+ """
20867
+ return pulumi.get(self, "name")
20868
+
20869
+ @name.setter
20870
+ def name(self, value: Optional[pulumi.Input[str]]):
20871
+ pulumi.set(self, "name", value)
20872
+
20873
+ @property
20874
+ @pulumi.getter
20875
+ def state(self) -> Optional[pulumi.Input[str]]:
19267
20876
  """
19268
20877
  (Output)
19269
- The RFC 4648 base64 encoded SHA-256 hash of the
19270
- customer-supplied encryption key that protects this resource.
20878
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20879
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20880
+ or its network is deleted.
19271
20881
  """
19272
- return pulumi.get(self, "sha256")
20882
+ return pulumi.get(self, "state")
19273
20883
 
19274
- @sha256.setter
19275
- def sha256(self, value: Optional[pulumi.Input[str]]):
19276
- pulumi.set(self, "sha256", value)
20884
+ @state.setter
20885
+ def state(self, value: Optional[pulumi.Input[str]]):
20886
+ pulumi.set(self, "state", value)
19277
20887
 
19278
20888
 
19279
20889
  if not MYPY:
19280
- class ManagedSslCertificateManagedArgsDict(TypedDict):
19281
- domains: pulumi.Input[Sequence[pulumi.Input[str]]]
20890
+ class NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict(TypedDict):
20891
+ name: NotRequired[pulumi.Input[str]]
19282
20892
  """
19283
- Domains for which a managed SSL certificate will be valid. Currently,
19284
- there can be up to 100 domains in this list.
20893
+ Name of the secure tag, created with TagManager's TagValue API.
20894
+ @pattern tagValues/[0-9]+
20895
+ """
20896
+ state: NotRequired[pulumi.Input[str]]
20897
+ """
20898
+ (Output)
20899
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20900
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20901
+ or its network is deleted.
20902
+
20903
+ - - -
19285
20904
  """
19286
20905
  elif False:
19287
- ManagedSslCertificateManagedArgsDict: TypeAlias = Mapping[str, Any]
20906
+ NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19288
20907
 
19289
20908
  @pulumi.input_type
19290
- class ManagedSslCertificateManagedArgs:
20909
+ class NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs:
19291
20910
  def __init__(__self__, *,
19292
- domains: pulumi.Input[Sequence[pulumi.Input[str]]]):
20911
+ name: Optional[pulumi.Input[str]] = None,
20912
+ state: Optional[pulumi.Input[str]] = None):
19293
20913
  """
19294
- :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Domains for which a managed SSL certificate will be valid. Currently,
19295
- there can be up to 100 domains in this list.
20914
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
20915
+ @pattern tagValues/[0-9]+
20916
+ :param pulumi.Input[str] state: (Output)
20917
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20918
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20919
+ or its network is deleted.
20920
+
20921
+ - - -
19296
20922
  """
19297
- pulumi.set(__self__, "domains", domains)
20923
+ if name is not None:
20924
+ pulumi.set(__self__, "name", name)
20925
+ if state is not None:
20926
+ pulumi.set(__self__, "state", state)
19298
20927
 
19299
20928
  @property
19300
20929
  @pulumi.getter
19301
- def domains(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
19302
- """
19303
- Domains for which a managed SSL certificate will be valid. Currently,
19304
- there can be up to 100 domains in this list.
19305
- """
19306
- return pulumi.get(self, "domains")
19307
-
19308
- @domains.setter
19309
- def domains(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
19310
- pulumi.set(self, "domains", value)
19311
-
19312
-
19313
- if not MYPY:
19314
- class MangedSslCertificateManagedArgsDict(TypedDict):
19315
- domains: pulumi.Input[Sequence[pulumi.Input[str]]]
20930
+ def name(self) -> Optional[pulumi.Input[str]]:
19316
20931
  """
19317
- Domains for which a managed SSL certificate will be valid. Currently,
19318
- there can be up to 100 domains in this list.
20932
+ Name of the secure tag, created with TagManager's TagValue API.
20933
+ @pattern tagValues/[0-9]+
19319
20934
  """
19320
- elif False:
19321
- MangedSslCertificateManagedArgsDict: TypeAlias = Mapping[str, Any]
20935
+ return pulumi.get(self, "name")
19322
20936
 
19323
- @pulumi.input_type
19324
- class MangedSslCertificateManagedArgs:
19325
- def __init__(__self__, *,
19326
- domains: pulumi.Input[Sequence[pulumi.Input[str]]]):
19327
- """
19328
- :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Domains for which a managed SSL certificate will be valid. Currently,
19329
- there can be up to 100 domains in this list.
19330
- """
19331
- pulumi.set(__self__, "domains", domains)
20937
+ @name.setter
20938
+ def name(self, value: Optional[pulumi.Input[str]]):
20939
+ pulumi.set(self, "name", value)
19332
20940
 
19333
20941
  @property
19334
20942
  @pulumi.getter
19335
- def domains(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
20943
+ def state(self) -> Optional[pulumi.Input[str]]:
19336
20944
  """
19337
- Domains for which a managed SSL certificate will be valid. Currently,
19338
- there can be up to 100 domains in this list.
20945
+ (Output)
20946
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
20947
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
20948
+ or its network is deleted.
20949
+
20950
+ - - -
19339
20951
  """
19340
- return pulumi.get(self, "domains")
20952
+ return pulumi.get(self, "state")
19341
20953
 
19342
- @domains.setter
19343
- def domains(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
19344
- pulumi.set(self, "domains", value)
20954
+ @state.setter
20955
+ def state(self, value: Optional[pulumi.Input[str]]):
20956
+ pulumi.set(self, "state", value)
19345
20957
 
19346
20958
 
19347
20959
  if not MYPY:
19348
- class NetworkAttachmentConnectionEndpointArgsDict(TypedDict):
19349
- ip_address: NotRequired[pulumi.Input[str]]
20960
+ class NetworkFirewallPolicyWithRulesRuleArgsDict(TypedDict):
20961
+ action: pulumi.Input[str]
19350
20962
  """
19351
- (Output)
19352
- The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
20963
+ The Action to perform when the client connection triggers the rule. Can currently be either
20964
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
19353
20965
  """
19354
- project_id_or_num: NotRequired[pulumi.Input[str]]
20966
+ match: pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgsDict']
19355
20967
  """
19356
- (Output)
19357
- The project id or number of the interface to which the IP was assigned.
20968
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
20969
+ Structure is documented below.
19358
20970
  """
19359
- secondary_ip_cidr_ranges: NotRequired[pulumi.Input[str]]
20971
+ priority: pulumi.Input[int]
19360
20972
  """
19361
- (Output)
19362
- Alias IP ranges from the same subnetwork.
20973
+ An integer indicating the priority of a rule in the list. The priority must be a value
20974
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
20975
+ highest priority and 2147483647 is the lowest priority.
19363
20976
  """
19364
- status: NotRequired[pulumi.Input[str]]
20977
+ description: NotRequired[pulumi.Input[str]]
19365
20978
  """
19366
- (Output)
19367
- The status of a connected endpoint to this network attachment.
20979
+ A description of the rule.
19368
20980
  """
19369
- subnetwork: NotRequired[pulumi.Input[str]]
20981
+ direction: NotRequired[pulumi.Input[str]]
19370
20982
  """
19371
- (Output)
19372
- The subnetwork used to assign the IP to the producer instance network interface.
20983
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
20984
+ Possible values are: `INGRESS`, `EGRESS`.
20985
+ """
20986
+ disabled: NotRequired[pulumi.Input[bool]]
20987
+ """
20988
+ Denotes whether the firewall policy rule is disabled. When set to true,
20989
+ the firewall policy rule is not enforced and traffic behaves as if it did
20990
+ not exist. If this is unspecified, the firewall policy rule will be
20991
+ enabled.
20992
+ """
20993
+ enable_logging: NotRequired[pulumi.Input[bool]]
20994
+ """
20995
+ Denotes whether to enable logging for a particular rule.
20996
+ If logging is enabled, logs will be exported to the
20997
+ configured export destination in Stackdriver.
20998
+ """
20999
+ rule_name: NotRequired[pulumi.Input[str]]
21000
+ """
21001
+ An optional name for the rule. This field is not a unique identifier
21002
+ and can be updated.
21003
+ """
21004
+ security_profile_group: NotRequired[pulumi.Input[str]]
21005
+ """
21006
+ A fully-qualified URL of a SecurityProfile resource instance.
21007
+ Example:
21008
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
21009
+ Must be specified if action is 'apply_security_profile_group'.
21010
+ """
21011
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict']]]]
21012
+ """
21013
+ A list of secure tags that controls which instances the firewall rule
21014
+ applies to. If <code>targetSecureTag</code> are specified, then the
21015
+ firewall rule applies only to instances in the VPC network that have one
21016
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
21017
+ INEFFECTIVE state, then this rule will be ignored.
21018
+ <code>targetSecureTag</code> may not be set at the same time as
21019
+ <code>targetServiceAccounts</code>.
21020
+ If neither <code>targetServiceAccounts</code> nor
21021
+ <code>targetSecureTag</code> are specified, the firewall rule applies
21022
+ to all instances on the specified network.
21023
+ Maximum number of target label tags allowed is 256.
21024
+ Structure is documented below.
21025
+ """
21026
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
21027
+ """
21028
+ A list of service accounts indicating the sets of
21029
+ instances that are applied with this rule.
21030
+ """
21031
+ tls_inspect: NotRequired[pulumi.Input[bool]]
21032
+ """
21033
+ Boolean flag indicating if the traffic should be TLS decrypted.
21034
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
19373
21035
  """
19374
21036
  elif False:
19375
- NetworkAttachmentConnectionEndpointArgsDict: TypeAlias = Mapping[str, Any]
21037
+ NetworkFirewallPolicyWithRulesRuleArgsDict: TypeAlias = Mapping[str, Any]
19376
21038
 
19377
21039
  @pulumi.input_type
19378
- class NetworkAttachmentConnectionEndpointArgs:
21040
+ class NetworkFirewallPolicyWithRulesRuleArgs:
19379
21041
  def __init__(__self__, *,
19380
- ip_address: Optional[pulumi.Input[str]] = None,
19381
- project_id_or_num: Optional[pulumi.Input[str]] = None,
19382
- secondary_ip_cidr_ranges: Optional[pulumi.Input[str]] = None,
19383
- status: Optional[pulumi.Input[str]] = None,
19384
- subnetwork: Optional[pulumi.Input[str]] = None):
19385
- """
19386
- :param pulumi.Input[str] ip_address: (Output)
19387
- The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
19388
- :param pulumi.Input[str] project_id_or_num: (Output)
19389
- The project id or number of the interface to which the IP was assigned.
19390
- :param pulumi.Input[str] secondary_ip_cidr_ranges: (Output)
19391
- Alias IP ranges from the same subnetwork.
19392
- :param pulumi.Input[str] status: (Output)
19393
- The status of a connected endpoint to this network attachment.
19394
- :param pulumi.Input[str] subnetwork: (Output)
19395
- The subnetwork used to assign the IP to the producer instance network interface.
21042
+ action: pulumi.Input[str],
21043
+ match: pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgs'],
21044
+ priority: pulumi.Input[int],
21045
+ description: Optional[pulumi.Input[str]] = None,
21046
+ direction: Optional[pulumi.Input[str]] = None,
21047
+ disabled: Optional[pulumi.Input[bool]] = None,
21048
+ enable_logging: Optional[pulumi.Input[bool]] = None,
21049
+ rule_name: Optional[pulumi.Input[str]] = None,
21050
+ security_profile_group: Optional[pulumi.Input[str]] = None,
21051
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]] = None,
21052
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
21053
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
21054
+ """
21055
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Can currently be either
21056
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
21057
+ :param pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
21058
+ Structure is documented below.
21059
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a value
21060
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
21061
+ highest priority and 2147483647 is the lowest priority.
21062
+ :param pulumi.Input[str] description: A description of the rule.
21063
+ :param pulumi.Input[str] direction: The direction in which this rule applies. If unspecified an INGRESS rule is created.
21064
+ Possible values are: `INGRESS`, `EGRESS`.
21065
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true,
21066
+ the firewall policy rule is not enforced and traffic behaves as if it did
21067
+ not exist. If this is unspecified, the firewall policy rule will be
21068
+ enabled.
21069
+ :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule.
21070
+ If logging is enabled, logs will be exported to the
21071
+ configured export destination in Stackdriver.
21072
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier
21073
+ and can be updated.
21074
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance.
21075
+ Example:
21076
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
21077
+ Must be specified if action is 'apply_security_profile_group'.
21078
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule
21079
+ applies to. If <code>targetSecureTag</code> are specified, then the
21080
+ firewall rule applies only to instances in the VPC network that have one
21081
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
21082
+ INEFFECTIVE state, then this rule will be ignored.
21083
+ <code>targetSecureTag</code> may not be set at the same time as
21084
+ <code>targetServiceAccounts</code>.
21085
+ If neither <code>targetServiceAccounts</code> nor
21086
+ <code>targetSecureTag</code> are specified, the firewall rule applies
21087
+ to all instances on the specified network.
21088
+ Maximum number of target label tags allowed is 256.
21089
+ Structure is documented below.
21090
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of
21091
+ instances that are applied with this rule.
21092
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
21093
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
19396
21094
  """
19397
- if ip_address is not None:
19398
- pulumi.set(__self__, "ip_address", ip_address)
19399
- if project_id_or_num is not None:
19400
- pulumi.set(__self__, "project_id_or_num", project_id_or_num)
19401
- if secondary_ip_cidr_ranges is not None:
19402
- pulumi.set(__self__, "secondary_ip_cidr_ranges", secondary_ip_cidr_ranges)
19403
- if status is not None:
19404
- pulumi.set(__self__, "status", status)
19405
- if subnetwork is not None:
19406
- pulumi.set(__self__, "subnetwork", subnetwork)
21095
+ pulumi.set(__self__, "action", action)
21096
+ pulumi.set(__self__, "match", match)
21097
+ pulumi.set(__self__, "priority", priority)
21098
+ if description is not None:
21099
+ pulumi.set(__self__, "description", description)
21100
+ if direction is not None:
21101
+ pulumi.set(__self__, "direction", direction)
21102
+ if disabled is not None:
21103
+ pulumi.set(__self__, "disabled", disabled)
21104
+ if enable_logging is not None:
21105
+ pulumi.set(__self__, "enable_logging", enable_logging)
21106
+ if rule_name is not None:
21107
+ pulumi.set(__self__, "rule_name", rule_name)
21108
+ if security_profile_group is not None:
21109
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
21110
+ if target_secure_tags is not None:
21111
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
21112
+ if target_service_accounts is not None:
21113
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
21114
+ if tls_inspect is not None:
21115
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
19407
21116
 
19408
21117
  @property
19409
- @pulumi.getter(name="ipAddress")
19410
- def ip_address(self) -> Optional[pulumi.Input[str]]:
21118
+ @pulumi.getter
21119
+ def action(self) -> pulumi.Input[str]:
19411
21120
  """
19412
- (Output)
19413
- The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
21121
+ The Action to perform when the client connection triggers the rule. Can currently be either
21122
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
19414
21123
  """
19415
- return pulumi.get(self, "ip_address")
21124
+ return pulumi.get(self, "action")
19416
21125
 
19417
- @ip_address.setter
19418
- def ip_address(self, value: Optional[pulumi.Input[str]]):
19419
- pulumi.set(self, "ip_address", value)
21126
+ @action.setter
21127
+ def action(self, value: pulumi.Input[str]):
21128
+ pulumi.set(self, "action", value)
19420
21129
 
19421
21130
  @property
19422
- @pulumi.getter(name="projectIdOrNum")
19423
- def project_id_or_num(self) -> Optional[pulumi.Input[str]]:
21131
+ @pulumi.getter
21132
+ def match(self) -> pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgs']:
19424
21133
  """
19425
- (Output)
19426
- The project id or number of the interface to which the IP was assigned.
21134
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
21135
+ Structure is documented below.
19427
21136
  """
19428
- return pulumi.get(self, "project_id_or_num")
21137
+ return pulumi.get(self, "match")
19429
21138
 
19430
- @project_id_or_num.setter
19431
- def project_id_or_num(self, value: Optional[pulumi.Input[str]]):
19432
- pulumi.set(self, "project_id_or_num", value)
21139
+ @match.setter
21140
+ def match(self, value: pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgs']):
21141
+ pulumi.set(self, "match", value)
19433
21142
 
19434
21143
  @property
19435
- @pulumi.getter(name="secondaryIpCidrRanges")
19436
- def secondary_ip_cidr_ranges(self) -> Optional[pulumi.Input[str]]:
21144
+ @pulumi.getter
21145
+ def priority(self) -> pulumi.Input[int]:
19437
21146
  """
19438
- (Output)
19439
- Alias IP ranges from the same subnetwork.
21147
+ An integer indicating the priority of a rule in the list. The priority must be a value
21148
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
21149
+ highest priority and 2147483647 is the lowest priority.
19440
21150
  """
19441
- return pulumi.get(self, "secondary_ip_cidr_ranges")
21151
+ return pulumi.get(self, "priority")
19442
21152
 
19443
- @secondary_ip_cidr_ranges.setter
19444
- def secondary_ip_cidr_ranges(self, value: Optional[pulumi.Input[str]]):
19445
- pulumi.set(self, "secondary_ip_cidr_ranges", value)
21153
+ @priority.setter
21154
+ def priority(self, value: pulumi.Input[int]):
21155
+ pulumi.set(self, "priority", value)
19446
21156
 
19447
21157
  @property
19448
21158
  @pulumi.getter
19449
- def status(self) -> Optional[pulumi.Input[str]]:
21159
+ def description(self) -> Optional[pulumi.Input[str]]:
19450
21160
  """
19451
- (Output)
19452
- The status of a connected endpoint to this network attachment.
21161
+ A description of the rule.
19453
21162
  """
19454
- return pulumi.get(self, "status")
21163
+ return pulumi.get(self, "description")
19455
21164
 
19456
- @status.setter
19457
- def status(self, value: Optional[pulumi.Input[str]]):
19458
- pulumi.set(self, "status", value)
21165
+ @description.setter
21166
+ def description(self, value: Optional[pulumi.Input[str]]):
21167
+ pulumi.set(self, "description", value)
19459
21168
 
19460
21169
  @property
19461
21170
  @pulumi.getter
19462
- def subnetwork(self) -> Optional[pulumi.Input[str]]:
21171
+ def direction(self) -> Optional[pulumi.Input[str]]:
19463
21172
  """
19464
- (Output)
19465
- The subnetwork used to assign the IP to the producer instance network interface.
21173
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
21174
+ Possible values are: `INGRESS`, `EGRESS`.
19466
21175
  """
19467
- return pulumi.get(self, "subnetwork")
19468
-
19469
- @subnetwork.setter
19470
- def subnetwork(self, value: Optional[pulumi.Input[str]]):
19471
- pulumi.set(self, "subnetwork", value)
21176
+ return pulumi.get(self, "direction")
19472
21177
 
21178
+ @direction.setter
21179
+ def direction(self, value: Optional[pulumi.Input[str]]):
21180
+ pulumi.set(self, "direction", value)
19473
21181
 
19474
- if not MYPY:
19475
- class NetworkEndpointListNetworkEndpointArgsDict(TypedDict):
19476
- ip_address: pulumi.Input[str]
21182
+ @property
21183
+ @pulumi.getter
21184
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
19477
21185
  """
19478
- IPv4 address of network endpoint. The IP address must belong
19479
- to a VM in GCE (either the primary IP or as part of an aliased IP
19480
- range).
21186
+ Denotes whether the firewall policy rule is disabled. When set to true,
21187
+ the firewall policy rule is not enforced and traffic behaves as if it did
21188
+ not exist. If this is unspecified, the firewall policy rule will be
21189
+ enabled.
19481
21190
  """
19482
- instance: NotRequired[pulumi.Input[str]]
21191
+ return pulumi.get(self, "disabled")
21192
+
21193
+ @disabled.setter
21194
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
21195
+ pulumi.set(self, "disabled", value)
21196
+
21197
+ @property
21198
+ @pulumi.getter(name="enableLogging")
21199
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
19483
21200
  """
19484
- The name for a specific VM instance that the IP address belongs to.
19485
- This is required for network endpoints of type GCE_VM_IP_PORT.
19486
- The instance must be in the same zone as the network endpoint group.
21201
+ Denotes whether to enable logging for a particular rule.
21202
+ If logging is enabled, logs will be exported to the
21203
+ configured export destination in Stackdriver.
19487
21204
  """
19488
- port: NotRequired[pulumi.Input[int]]
21205
+ return pulumi.get(self, "enable_logging")
21206
+
21207
+ @enable_logging.setter
21208
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
21209
+ pulumi.set(self, "enable_logging", value)
21210
+
21211
+ @property
21212
+ @pulumi.getter(name="ruleName")
21213
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
19489
21214
  """
19490
- Port number of network endpoint.
19491
- **Note** `port` is required unless the Network Endpoint Group is created
19492
- with the type of `GCE_VM_IP`
21215
+ An optional name for the rule. This field is not a unique identifier
21216
+ and can be updated.
19493
21217
  """
19494
- elif False:
19495
- NetworkEndpointListNetworkEndpointArgsDict: TypeAlias = Mapping[str, Any]
21218
+ return pulumi.get(self, "rule_name")
19496
21219
 
19497
- @pulumi.input_type
19498
- class NetworkEndpointListNetworkEndpointArgs:
19499
- def __init__(__self__, *,
19500
- ip_address: pulumi.Input[str],
19501
- instance: Optional[pulumi.Input[str]] = None,
19502
- port: Optional[pulumi.Input[int]] = None):
21220
+ @rule_name.setter
21221
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
21222
+ pulumi.set(self, "rule_name", value)
21223
+
21224
+ @property
21225
+ @pulumi.getter(name="securityProfileGroup")
21226
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
19503
21227
  """
19504
- :param pulumi.Input[str] ip_address: IPv4 address of network endpoint. The IP address must belong
19505
- to a VM in GCE (either the primary IP or as part of an aliased IP
19506
- range).
19507
- :param pulumi.Input[str] instance: The name for a specific VM instance that the IP address belongs to.
19508
- This is required for network endpoints of type GCE_VM_IP_PORT.
19509
- The instance must be in the same zone as the network endpoint group.
19510
- :param pulumi.Input[int] port: Port number of network endpoint.
19511
- **Note** `port` is required unless the Network Endpoint Group is created
19512
- with the type of `GCE_VM_IP`
21228
+ A fully-qualified URL of a SecurityProfile resource instance.
21229
+ Example:
21230
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
21231
+ Must be specified if action is 'apply_security_profile_group'.
19513
21232
  """
19514
- pulumi.set(__self__, "ip_address", ip_address)
19515
- if instance is not None:
19516
- pulumi.set(__self__, "instance", instance)
19517
- if port is not None:
19518
- pulumi.set(__self__, "port", port)
21233
+ return pulumi.get(self, "security_profile_group")
21234
+
21235
+ @security_profile_group.setter
21236
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
21237
+ pulumi.set(self, "security_profile_group", value)
19519
21238
 
19520
21239
  @property
19521
- @pulumi.getter(name="ipAddress")
19522
- def ip_address(self) -> pulumi.Input[str]:
21240
+ @pulumi.getter(name="targetSecureTags")
21241
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]:
19523
21242
  """
19524
- IPv4 address of network endpoint. The IP address must belong
19525
- to a VM in GCE (either the primary IP or as part of an aliased IP
19526
- range).
21243
+ A list of secure tags that controls which instances the firewall rule
21244
+ applies to. If <code>targetSecureTag</code> are specified, then the
21245
+ firewall rule applies only to instances in the VPC network that have one
21246
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
21247
+ INEFFECTIVE state, then this rule will be ignored.
21248
+ <code>targetSecureTag</code> may not be set at the same time as
21249
+ <code>targetServiceAccounts</code>.
21250
+ If neither <code>targetServiceAccounts</code> nor
21251
+ <code>targetSecureTag</code> are specified, the firewall rule applies
21252
+ to all instances on the specified network.
21253
+ Maximum number of target label tags allowed is 256.
21254
+ Structure is documented below.
19527
21255
  """
19528
- return pulumi.get(self, "ip_address")
21256
+ return pulumi.get(self, "target_secure_tags")
19529
21257
 
19530
- @ip_address.setter
19531
- def ip_address(self, value: pulumi.Input[str]):
19532
- pulumi.set(self, "ip_address", value)
21258
+ @target_secure_tags.setter
21259
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]):
21260
+ pulumi.set(self, "target_secure_tags", value)
19533
21261
 
19534
21262
  @property
19535
- @pulumi.getter
19536
- def instance(self) -> Optional[pulumi.Input[str]]:
21263
+ @pulumi.getter(name="targetServiceAccounts")
21264
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19537
21265
  """
19538
- The name for a specific VM instance that the IP address belongs to.
19539
- This is required for network endpoints of type GCE_VM_IP_PORT.
19540
- The instance must be in the same zone as the network endpoint group.
21266
+ A list of service accounts indicating the sets of
21267
+ instances that are applied with this rule.
19541
21268
  """
19542
- return pulumi.get(self, "instance")
21269
+ return pulumi.get(self, "target_service_accounts")
19543
21270
 
19544
- @instance.setter
19545
- def instance(self, value: Optional[pulumi.Input[str]]):
19546
- pulumi.set(self, "instance", value)
21271
+ @target_service_accounts.setter
21272
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
21273
+ pulumi.set(self, "target_service_accounts", value)
19547
21274
 
19548
21275
  @property
19549
- @pulumi.getter
19550
- def port(self) -> Optional[pulumi.Input[int]]:
21276
+ @pulumi.getter(name="tlsInspect")
21277
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
19551
21278
  """
19552
- Port number of network endpoint.
19553
- **Note** `port` is required unless the Network Endpoint Group is created
19554
- with the type of `GCE_VM_IP`
21279
+ Boolean flag indicating if the traffic should be TLS decrypted.
21280
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
19555
21281
  """
19556
- return pulumi.get(self, "port")
21282
+ return pulumi.get(self, "tls_inspect")
19557
21283
 
19558
- @port.setter
19559
- def port(self, value: Optional[pulumi.Input[int]]):
19560
- pulumi.set(self, "port", value)
21284
+ @tls_inspect.setter
21285
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
21286
+ pulumi.set(self, "tls_inspect", value)
19561
21287
 
19562
21288
 
19563
21289
  if not MYPY:
19564
- class NetworkFirewallPolicyRuleMatchArgsDict(TypedDict):
19565
- layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict']]]
21290
+ class NetworkFirewallPolicyWithRulesRuleMatchArgsDict(TypedDict):
21291
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict']]]
19566
21292
  """
19567
21293
  Pairs of IP protocols and ports that the rule should match.
21294
+ Structure is documented below.
19568
21295
  """
19569
21296
  dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19570
21297
  """
19571
- Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
21298
+ Address groups which should be matched against the traffic destination.
21299
+ Maximum number of destination address groups is 10.
19572
21300
  """
19573
21301
  dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19574
21302
  """
19575
- Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
21303
+ Fully Qualified Domain Name (FQDN) which should be matched against
21304
+ traffic destination. Maximum number of destination fqdn allowed is 100.
19576
21305
  """
19577
21306
  dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19578
21307
  """
19579
- CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
21308
+ Destination IP address range in CIDR format. Required for
21309
+ EGRESS rules.
19580
21310
  """
19581
21311
  dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19582
21312
  """
19583
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
21313
+ Region codes whose IP addresses will be used to match for destination
21314
+ of traffic. Should be specified as 2 letter country code defined as per
21315
+ ISO 3166 alpha-2 country codes. ex."US"
21316
+ Maximum number of destination region codes allowed is 5000.
19584
21317
  """
19585
21318
  dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19586
21319
  """
19587
- Name of the Google Cloud Threat Intelligence list.
21320
+ Names of Network Threat Intelligence lists.
21321
+ The IPs in these lists will be matched against traffic destination.
19588
21322
  """
19589
21323
  src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19590
21324
  """
19591
- Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
21325
+ Address groups which should be matched against the traffic source.
21326
+ Maximum number of source address groups is 10.
19592
21327
  """
19593
21328
  src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19594
21329
  """
19595
- Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
21330
+ Fully Qualified Domain Name (FQDN) which should be matched against
21331
+ traffic source. Maximum number of source fqdn allowed is 100.
19596
21332
  """
19597
21333
  src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19598
21334
  """
19599
- CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
21335
+ Source IP address range in CIDR format. Required for
21336
+ INGRESS rules.
19600
21337
  """
19601
21338
  src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19602
21339
  """
19603
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
21340
+ Region codes whose IP addresses will be used to match for source
21341
+ of traffic. Should be specified as 2 letter country code defined as per
21342
+ ISO 3166 alpha-2 country codes. ex."US"
21343
+ Maximum number of source region codes allowed is 5000.
19604
21344
  """
19605
- src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict']]]]
21345
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict']]]]
19606
21346
  """
19607
- List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
21347
+ List of secure tag values, which should be matched at the source
21348
+ of the traffic.
21349
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
21350
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
21351
+ Maximum number of source tag values allowed is 256.
21352
+ Structure is documented below.
21353
+
21354
+
21355
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
19608
21356
  """
19609
21357
  src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19610
21358
  """
19611
- Name of the Google Cloud Threat Intelligence list.
19612
-
19613
- The `layer4_configs` block supports:
21359
+ Names of Network Threat Intelligence lists.
21360
+ The IPs in these lists will be matched against traffic source.
19614
21361
  """
19615
21362
  elif False:
19616
- NetworkFirewallPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
21363
+ NetworkFirewallPolicyWithRulesRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
19617
21364
 
19618
21365
  @pulumi.input_type
19619
- class NetworkFirewallPolicyRuleMatchArgs:
21366
+ class NetworkFirewallPolicyWithRulesRuleMatchArgs:
19620
21367
  def __init__(__self__, *,
19621
- layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]],
21368
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]],
19622
21369
  dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19623
21370
  dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19624
21371
  dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -19628,23 +21375,44 @@ class NetworkFirewallPolicyRuleMatchArgs:
19628
21375
  src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19629
21376
  src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19630
21377
  src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19631
- src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]] = None,
21378
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]] = None,
19632
21379
  src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19633
21380
  """
19634
- :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
19635
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
19636
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
19637
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
19638
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
19639
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
19640
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
19641
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
19642
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
19643
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
19644
- :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
19645
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
21381
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
21382
+ Structure is documented below.
21383
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
21384
+ Maximum number of destination address groups is 10.
21385
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
21386
+ traffic destination. Maximum number of destination fqdn allowed is 100.
21387
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
21388
+ EGRESS rules.
21389
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
21390
+ of traffic. Should be specified as 2 letter country code defined as per
21391
+ ISO 3166 alpha-2 country codes. ex."US"
21392
+ Maximum number of destination region codes allowed is 5000.
21393
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
21394
+ The IPs in these lists will be matched against traffic destination.
21395
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
21396
+ Maximum number of source address groups is 10.
21397
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
21398
+ traffic source. Maximum number of source fqdn allowed is 100.
21399
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
21400
+ INGRESS rules.
21401
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
21402
+ of traffic. Should be specified as 2 letter country code defined as per
21403
+ ISO 3166 alpha-2 country codes. ex."US"
21404
+ Maximum number of source region codes allowed is 5000.
21405
+ :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
21406
+ of the traffic.
21407
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
21408
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
21409
+ Maximum number of source tag values allowed is 256.
21410
+ Structure is documented below.
19646
21411
 
19647
- The `layer4_configs` block supports:
21412
+
21413
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
21414
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
21415
+ The IPs in these lists will be matched against traffic source.
19648
21416
  """
19649
21417
  pulumi.set(__self__, "layer4_configs", layer4_configs)
19650
21418
  if dest_address_groups is not None:
@@ -19672,21 +21440,23 @@ class NetworkFirewallPolicyRuleMatchArgs:
19672
21440
 
19673
21441
  @property
19674
21442
  @pulumi.getter(name="layer4Configs")
19675
- def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]:
21443
+ def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]:
19676
21444
  """
19677
21445
  Pairs of IP protocols and ports that the rule should match.
21446
+ Structure is documented below.
19678
21447
  """
19679
21448
  return pulumi.get(self, "layer4_configs")
19680
21449
 
19681
21450
  @layer4_configs.setter
19682
- def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]):
21451
+ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]):
19683
21452
  pulumi.set(self, "layer4_configs", value)
19684
21453
 
19685
21454
  @property
19686
21455
  @pulumi.getter(name="destAddressGroups")
19687
21456
  def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19688
21457
  """
19689
- Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
21458
+ Address groups which should be matched against the traffic destination.
21459
+ Maximum number of destination address groups is 10.
19690
21460
  """
19691
21461
  return pulumi.get(self, "dest_address_groups")
19692
21462
 
@@ -19698,7 +21468,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19698
21468
  @pulumi.getter(name="destFqdns")
19699
21469
  def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19700
21470
  """
19701
- Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
21471
+ Fully Qualified Domain Name (FQDN) which should be matched against
21472
+ traffic destination. Maximum number of destination fqdn allowed is 100.
19702
21473
  """
19703
21474
  return pulumi.get(self, "dest_fqdns")
19704
21475
 
@@ -19710,7 +21481,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19710
21481
  @pulumi.getter(name="destIpRanges")
19711
21482
  def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19712
21483
  """
19713
- CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
21484
+ Destination IP address range in CIDR format. Required for
21485
+ EGRESS rules.
19714
21486
  """
19715
21487
  return pulumi.get(self, "dest_ip_ranges")
19716
21488
 
@@ -19722,7 +21494,10 @@ class NetworkFirewallPolicyRuleMatchArgs:
19722
21494
  @pulumi.getter(name="destRegionCodes")
19723
21495
  def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19724
21496
  """
19725
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
21497
+ Region codes whose IP addresses will be used to match for destination
21498
+ of traffic. Should be specified as 2 letter country code defined as per
21499
+ ISO 3166 alpha-2 country codes. ex."US"
21500
+ Maximum number of destination region codes allowed is 5000.
19726
21501
  """
19727
21502
  return pulumi.get(self, "dest_region_codes")
19728
21503
 
@@ -19734,7 +21509,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19734
21509
  @pulumi.getter(name="destThreatIntelligences")
19735
21510
  def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19736
21511
  """
19737
- Name of the Google Cloud Threat Intelligence list.
21512
+ Names of Network Threat Intelligence lists.
21513
+ The IPs in these lists will be matched against traffic destination.
19738
21514
  """
19739
21515
  return pulumi.get(self, "dest_threat_intelligences")
19740
21516
 
@@ -19746,7 +21522,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19746
21522
  @pulumi.getter(name="srcAddressGroups")
19747
21523
  def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19748
21524
  """
19749
- Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
21525
+ Address groups which should be matched against the traffic source.
21526
+ Maximum number of source address groups is 10.
19750
21527
  """
19751
21528
  return pulumi.get(self, "src_address_groups")
19752
21529
 
@@ -19758,7 +21535,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19758
21535
  @pulumi.getter(name="srcFqdns")
19759
21536
  def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19760
21537
  """
19761
- Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
21538
+ Fully Qualified Domain Name (FQDN) which should be matched against
21539
+ traffic source. Maximum number of source fqdn allowed is 100.
19762
21540
  """
19763
21541
  return pulumi.get(self, "src_fqdns")
19764
21542
 
@@ -19770,7 +21548,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19770
21548
  @pulumi.getter(name="srcIpRanges")
19771
21549
  def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19772
21550
  """
19773
- CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
21551
+ Source IP address range in CIDR format. Required for
21552
+ INGRESS rules.
19774
21553
  """
19775
21554
  return pulumi.get(self, "src_ip_ranges")
19776
21555
 
@@ -19782,7 +21561,10 @@ class NetworkFirewallPolicyRuleMatchArgs:
19782
21561
  @pulumi.getter(name="srcRegionCodes")
19783
21562
  def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19784
21563
  """
19785
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
21564
+ Region codes whose IP addresses will be used to match for source
21565
+ of traffic. Should be specified as 2 letter country code defined as per
21566
+ ISO 3166 alpha-2 country codes. ex."US"
21567
+ Maximum number of source region codes allowed is 5000.
19786
21568
  """
19787
21569
  return pulumi.get(self, "src_region_codes")
19788
21570
 
@@ -19792,23 +21574,30 @@ class NetworkFirewallPolicyRuleMatchArgs:
19792
21574
 
19793
21575
  @property
19794
21576
  @pulumi.getter(name="srcSecureTags")
19795
- def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]]:
21577
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]:
19796
21578
  """
19797
- List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE, and there is no <code>srcIpRange</code>, this rule will be ignored. Maximum number of source tag values allowed is 256.
21579
+ List of secure tag values, which should be matched at the source
21580
+ of the traffic.
21581
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
21582
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
21583
+ Maximum number of source tag values allowed is 256.
21584
+ Structure is documented below.
21585
+
21586
+
21587
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
19798
21588
  """
19799
21589
  return pulumi.get(self, "src_secure_tags")
19800
21590
 
19801
21591
  @src_secure_tags.setter
19802
- def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]]):
21592
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]):
19803
21593
  pulumi.set(self, "src_secure_tags", value)
19804
21594
 
19805
21595
  @property
19806
21596
  @pulumi.getter(name="srcThreatIntelligences")
19807
21597
  def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19808
21598
  """
19809
- Name of the Google Cloud Threat Intelligence list.
19810
-
19811
- The `layer4_configs` block supports:
21599
+ Names of Network Threat Intelligence lists.
21600
+ The IPs in these lists will be matched against traffic source.
19812
21601
  """
19813
21602
  return pulumi.get(self, "src_threat_intelligences")
19814
21603
 
@@ -19818,26 +21607,48 @@ class NetworkFirewallPolicyRuleMatchArgs:
19818
21607
 
19819
21608
 
19820
21609
  if not MYPY:
19821
- class NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict(TypedDict):
21610
+ class NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict(TypedDict):
19822
21611
  ip_protocol: pulumi.Input[str]
19823
21612
  """
19824
- The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
21613
+ (Output)
21614
+ The IP protocol to which this rule applies. The protocol
21615
+ type is required when creating a firewall rule.
21616
+ This value can either be one of the following well
21617
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
21618
+ or the IP protocol number.
19825
21619
  """
19826
21620
  ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19827
21621
  """
19828
- An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
21622
+ (Output)
21623
+ An optional list of ports to which this rule applies. This field
21624
+ is only applicable for UDP or TCP protocol. Each entry must be
21625
+ either an integer or a range. If not specified, this rule
21626
+ applies to connections through any port.
21627
+ Example inputs include: ["22"], ["80","443"], and
21628
+ ["12345-12349"].
19829
21629
  """
19830
21630
  elif False:
19831
- NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
21631
+ NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
19832
21632
 
19833
21633
  @pulumi.input_type
19834
- class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
21634
+ class NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs:
19835
21635
  def __init__(__self__, *,
19836
21636
  ip_protocol: pulumi.Input[str],
19837
21637
  ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19838
21638
  """
19839
- :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
19840
- :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
21639
+ :param pulumi.Input[str] ip_protocol: (Output)
21640
+ The IP protocol to which this rule applies. The protocol
21641
+ type is required when creating a firewall rule.
21642
+ This value can either be one of the following well
21643
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
21644
+ or the IP protocol number.
21645
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
21646
+ An optional list of ports to which this rule applies. This field
21647
+ is only applicable for UDP or TCP protocol. Each entry must be
21648
+ either an integer or a range. If not specified, this rule
21649
+ applies to connections through any port.
21650
+ Example inputs include: ["22"], ["80","443"], and
21651
+ ["12345-12349"].
19841
21652
  """
19842
21653
  pulumi.set(__self__, "ip_protocol", ip_protocol)
19843
21654
  if ports is not None:
@@ -19847,7 +21658,12 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19847
21658
  @pulumi.getter(name="ipProtocol")
19848
21659
  def ip_protocol(self) -> pulumi.Input[str]:
19849
21660
  """
19850
- The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
21661
+ (Output)
21662
+ The IP protocol to which this rule applies. The protocol
21663
+ type is required when creating a firewall rule.
21664
+ This value can either be one of the following well
21665
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
21666
+ or the IP protocol number.
19851
21667
  """
19852
21668
  return pulumi.get(self, "ip_protocol")
19853
21669
 
@@ -19859,7 +21675,13 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19859
21675
  @pulumi.getter
19860
21676
  def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19861
21677
  """
19862
- An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
21678
+ (Output)
21679
+ An optional list of ports to which this rule applies. This field
21680
+ is only applicable for UDP or TCP protocol. Each entry must be
21681
+ either an integer or a range. If not specified, this rule
21682
+ applies to connections through any port.
21683
+ Example inputs include: ["22"], ["80","443"], and
21684
+ ["12345-12349"].
19863
21685
  """
19864
21686
  return pulumi.get(self, "ports")
19865
21687
 
@@ -19869,48 +21691,61 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19869
21691
 
19870
21692
 
19871
21693
  if not MYPY:
19872
- class NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict(TypedDict):
19873
- name: pulumi.Input[str]
21694
+ class NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict(TypedDict):
21695
+ name: NotRequired[pulumi.Input[str]]
19874
21696
  """
19875
- Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
21697
+ Name of the secure tag, created with TagManager's TagValue API.
21698
+ @pattern tagValues/[0-9]+
19876
21699
  """
19877
21700
  state: NotRequired[pulumi.Input[str]]
19878
21701
  """
19879
- [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21702
+ (Output)
21703
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21704
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21705
+ or its network is deleted.
19880
21706
  """
19881
21707
  elif False:
19882
- NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
21708
+ NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19883
21709
 
19884
21710
  @pulumi.input_type
19885
- class NetworkFirewallPolicyRuleMatchSrcSecureTagArgs:
21711
+ class NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs:
19886
21712
  def __init__(__self__, *,
19887
- name: pulumi.Input[str],
21713
+ name: Optional[pulumi.Input[str]] = None,
19888
21714
  state: Optional[pulumi.Input[str]] = None):
19889
21715
  """
19890
- :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19891
- :param pulumi.Input[str] state: [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21716
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
21717
+ @pattern tagValues/[0-9]+
21718
+ :param pulumi.Input[str] state: (Output)
21719
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21720
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21721
+ or its network is deleted.
19892
21722
  """
19893
- pulumi.set(__self__, "name", name)
21723
+ if name is not None:
21724
+ pulumi.set(__self__, "name", name)
19894
21725
  if state is not None:
19895
21726
  pulumi.set(__self__, "state", state)
19896
21727
 
19897
21728
  @property
19898
21729
  @pulumi.getter
19899
- def name(self) -> pulumi.Input[str]:
21730
+ def name(self) -> Optional[pulumi.Input[str]]:
19900
21731
  """
19901
- Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
21732
+ Name of the secure tag, created with TagManager's TagValue API.
21733
+ @pattern tagValues/[0-9]+
19902
21734
  """
19903
21735
  return pulumi.get(self, "name")
19904
21736
 
19905
21737
  @name.setter
19906
- def name(self, value: pulumi.Input[str]):
21738
+ def name(self, value: Optional[pulumi.Input[str]]):
19907
21739
  pulumi.set(self, "name", value)
19908
21740
 
19909
21741
  @property
19910
21742
  @pulumi.getter
19911
21743
  def state(self) -> Optional[pulumi.Input[str]]:
19912
21744
  """
19913
- [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21745
+ (Output)
21746
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21747
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21748
+ or its network is deleted.
19914
21749
  """
19915
21750
  return pulumi.get(self, "state")
19916
21751
 
@@ -19920,48 +21755,67 @@ class NetworkFirewallPolicyRuleMatchSrcSecureTagArgs:
19920
21755
 
19921
21756
 
19922
21757
  if not MYPY:
19923
- class NetworkFirewallPolicyRuleTargetSecureTagArgsDict(TypedDict):
19924
- name: pulumi.Input[str]
21758
+ class NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict(TypedDict):
21759
+ name: NotRequired[pulumi.Input[str]]
19925
21760
  """
19926
- Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
21761
+ Name of the secure tag, created with TagManager's TagValue API.
21762
+ @pattern tagValues/[0-9]+
19927
21763
  """
19928
21764
  state: NotRequired[pulumi.Input[str]]
19929
21765
  """
19930
- [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21766
+ (Output)
21767
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21768
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21769
+ or its network is deleted.
21770
+
21771
+ - - -
19931
21772
  """
19932
21773
  elif False:
19933
- NetworkFirewallPolicyRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
21774
+ NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19934
21775
 
19935
21776
  @pulumi.input_type
19936
- class NetworkFirewallPolicyRuleTargetSecureTagArgs:
21777
+ class NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs:
19937
21778
  def __init__(__self__, *,
19938
- name: pulumi.Input[str],
21779
+ name: Optional[pulumi.Input[str]] = None,
19939
21780
  state: Optional[pulumi.Input[str]] = None):
19940
21781
  """
19941
- :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19942
- :param pulumi.Input[str] state: [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21782
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
21783
+ @pattern tagValues/[0-9]+
21784
+ :param pulumi.Input[str] state: (Output)
21785
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21786
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21787
+ or its network is deleted.
21788
+
21789
+ - - -
19943
21790
  """
19944
- pulumi.set(__self__, "name", name)
21791
+ if name is not None:
21792
+ pulumi.set(__self__, "name", name)
19945
21793
  if state is not None:
19946
21794
  pulumi.set(__self__, "state", state)
19947
21795
 
19948
21796
  @property
19949
21797
  @pulumi.getter
19950
- def name(self) -> pulumi.Input[str]:
21798
+ def name(self) -> Optional[pulumi.Input[str]]:
19951
21799
  """
19952
- Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
21800
+ Name of the secure tag, created with TagManager's TagValue API.
21801
+ @pattern tagValues/[0-9]+
19953
21802
  """
19954
21803
  return pulumi.get(self, "name")
19955
21804
 
19956
21805
  @name.setter
19957
- def name(self, value: pulumi.Input[str]):
21806
+ def name(self, value: Optional[pulumi.Input[str]]):
19958
21807
  pulumi.set(self, "name", value)
19959
21808
 
19960
21809
  @property
19961
21810
  @pulumi.getter
19962
21811
  def state(self) -> Optional[pulumi.Input[str]]:
19963
21812
  """
19964
- [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
21813
+ (Output)
21814
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
21815
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
21816
+ or its network is deleted.
21817
+
21818
+ - - -
19965
21819
  """
19966
21820
  return pulumi.get(self, "state")
19967
21821
 
@@ -45186,11 +47040,26 @@ class SecurityScanConfigScheduleArgs:
45186
47040
 
45187
47041
  if not MYPY:
45188
47042
  class ServiceAttachmentConnectedEndpointArgsDict(TypedDict):
47043
+ consumer_network: NotRequired[pulumi.Input[str]]
47044
+ """
47045
+ (Output)
47046
+ The url of the consumer network.
47047
+ """
45189
47048
  endpoint: NotRequired[pulumi.Input[str]]
45190
47049
  """
45191
47050
  (Output)
45192
47051
  The URL of the consumer forwarding rule.
45193
47052
  """
47053
+ propagated_connection_count: NotRequired[pulumi.Input[int]]
47054
+ """
47055
+ (Output, Beta)
47056
+ The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.
47057
+ """
47058
+ psc_connection_id: NotRequired[pulumi.Input[str]]
47059
+ """
47060
+ (Output)
47061
+ The PSC connection id of the connected endpoint.
47062
+ """
45194
47063
  status: NotRequired[pulumi.Input[str]]
45195
47064
  """
45196
47065
  (Output)
@@ -45203,20 +47072,48 @@ elif False:
45203
47072
  @pulumi.input_type
45204
47073
  class ServiceAttachmentConnectedEndpointArgs:
45205
47074
  def __init__(__self__, *,
47075
+ consumer_network: Optional[pulumi.Input[str]] = None,
45206
47076
  endpoint: Optional[pulumi.Input[str]] = None,
47077
+ propagated_connection_count: Optional[pulumi.Input[int]] = None,
47078
+ psc_connection_id: Optional[pulumi.Input[str]] = None,
45207
47079
  status: Optional[pulumi.Input[str]] = None):
45208
47080
  """
47081
+ :param pulumi.Input[str] consumer_network: (Output)
47082
+ The url of the consumer network.
45209
47083
  :param pulumi.Input[str] endpoint: (Output)
45210
47084
  The URL of the consumer forwarding rule.
47085
+ :param pulumi.Input[int] propagated_connection_count: (Output, Beta)
47086
+ The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.
47087
+ :param pulumi.Input[str] psc_connection_id: (Output)
47088
+ The PSC connection id of the connected endpoint.
45211
47089
  :param pulumi.Input[str] status: (Output)
45212
47090
  The status of the connection from the consumer forwarding rule to
45213
47091
  this service attachment.
45214
47092
  """
47093
+ if consumer_network is not None:
47094
+ pulumi.set(__self__, "consumer_network", consumer_network)
45215
47095
  if endpoint is not None:
45216
47096
  pulumi.set(__self__, "endpoint", endpoint)
47097
+ if propagated_connection_count is not None:
47098
+ pulumi.set(__self__, "propagated_connection_count", propagated_connection_count)
47099
+ if psc_connection_id is not None:
47100
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
45217
47101
  if status is not None:
45218
47102
  pulumi.set(__self__, "status", status)
45219
47103
 
47104
+ @property
47105
+ @pulumi.getter(name="consumerNetwork")
47106
+ def consumer_network(self) -> Optional[pulumi.Input[str]]:
47107
+ """
47108
+ (Output)
47109
+ The url of the consumer network.
47110
+ """
47111
+ return pulumi.get(self, "consumer_network")
47112
+
47113
+ @consumer_network.setter
47114
+ def consumer_network(self, value: Optional[pulumi.Input[str]]):
47115
+ pulumi.set(self, "consumer_network", value)
47116
+
45220
47117
  @property
45221
47118
  @pulumi.getter
45222
47119
  def endpoint(self) -> Optional[pulumi.Input[str]]:
@@ -45230,6 +47127,32 @@ class ServiceAttachmentConnectedEndpointArgs:
45230
47127
  def endpoint(self, value: Optional[pulumi.Input[str]]):
45231
47128
  pulumi.set(self, "endpoint", value)
45232
47129
 
47130
+ @property
47131
+ @pulumi.getter(name="propagatedConnectionCount")
47132
+ def propagated_connection_count(self) -> Optional[pulumi.Input[int]]:
47133
+ """
47134
+ (Output, Beta)
47135
+ The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.
47136
+ """
47137
+ return pulumi.get(self, "propagated_connection_count")
47138
+
47139
+ @propagated_connection_count.setter
47140
+ def propagated_connection_count(self, value: Optional[pulumi.Input[int]]):
47141
+ pulumi.set(self, "propagated_connection_count", value)
47142
+
47143
+ @property
47144
+ @pulumi.getter(name="pscConnectionId")
47145
+ def psc_connection_id(self) -> Optional[pulumi.Input[str]]:
47146
+ """
47147
+ (Output)
47148
+ The PSC connection id of the connected endpoint.
47149
+ """
47150
+ return pulumi.get(self, "psc_connection_id")
47151
+
47152
+ @psc_connection_id.setter
47153
+ def psc_connection_id(self, value: Optional[pulumi.Input[str]]):
47154
+ pulumi.set(self, "psc_connection_id", value)
47155
+
45233
47156
  @property
45234
47157
  @pulumi.getter
45235
47158
  def status(self) -> Optional[pulumi.Input[str]]: