pulumi-gcp 8.1.0a1726293903__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 (128) hide show
  1. pulumi_gcp/__init__.py +62 -0
  2. pulumi_gcp/alloydb/_inputs.py +94 -0
  3. pulumi_gcp/alloydb/cluster.py +94 -1
  4. pulumi_gcp/alloydb/outputs.py +79 -0
  5. pulumi_gcp/assuredworkloads/workload.py +135 -16
  6. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
  8. pulumi_gcp/bigquery/__init__.py +1 -0
  9. pulumi_gcp/bigquery/_inputs.py +33 -0
  10. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  11. pulumi_gcp/bigquery/get_tables.py +143 -0
  12. pulumi_gcp/bigquery/outputs.py +66 -0
  13. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  14. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  15. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  16. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  17. pulumi_gcp/bigtable/_inputs.py +21 -1
  18. pulumi_gcp/bigtable/outputs.py +13 -1
  19. pulumi_gcp/bigtable/table.py +34 -0
  20. pulumi_gcp/certificateauthority/authority.py +14 -7
  21. pulumi_gcp/certificatemanager/__init__.py +1 -0
  22. pulumi_gcp/certificatemanager/certificate.py +28 -0
  23. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  24. pulumi_gcp/certificatemanager/outputs.py +322 -0
  25. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  26. pulumi_gcp/cloudbuild/outputs.py +4 -4
  27. pulumi_gcp/cloudrun/_inputs.py +6 -12
  28. pulumi_gcp/cloudrun/outputs.py +8 -16
  29. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  30. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  31. pulumi_gcp/cloudrunv2/service.py +50 -4
  32. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  33. pulumi_gcp/cloudtasks/outputs.py +479 -0
  34. pulumi_gcp/cloudtasks/queue.py +238 -0
  35. pulumi_gcp/compute/__init__.py +1 -0
  36. pulumi_gcp/compute/_inputs.py +2300 -257
  37. pulumi_gcp/compute/get_instance.py +4 -1
  38. pulumi_gcp/compute/health_check.py +114 -0
  39. pulumi_gcp/compute/instance.py +86 -4
  40. pulumi_gcp/compute/instance_template.py +66 -0
  41. pulumi_gcp/compute/interconnect.py +28 -21
  42. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  43. pulumi_gcp/compute/node_template.py +93 -0
  44. pulumi_gcp/compute/outputs.py +1491 -6
  45. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  46. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  47. pulumi_gcp/compute/service_attachment.py +75 -0
  48. pulumi_gcp/compute/target_http_proxy.py +49 -28
  49. pulumi_gcp/compute/target_https_proxy.py +77 -28
  50. pulumi_gcp/config/__init__.pyi +4 -0
  51. pulumi_gcp/config/vars.py +8 -0
  52. pulumi_gcp/container/_inputs.py +236 -3
  53. pulumi_gcp/container/attached_cluster.py +61 -8
  54. pulumi_gcp/container/outputs.py +276 -2
  55. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  56. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  57. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  58. pulumi_gcp/dataloss/_inputs.py +353 -1
  59. pulumi_gcp/dataloss/outputs.py +274 -3
  60. pulumi_gcp/dataproc/_inputs.py +27 -27
  61. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  62. pulumi_gcp/dataproc/metastore_service.py +2 -0
  63. pulumi_gcp/dataproc/outputs.py +18 -18
  64. pulumi_gcp/datastream/_inputs.py +69 -1
  65. pulumi_gcp/datastream/outputs.py +44 -2
  66. pulumi_gcp/datastream/stream.py +201 -7
  67. pulumi_gcp/developerconnect/__init__.py +11 -0
  68. pulumi_gcp/developerconnect/_inputs.py +301 -0
  69. pulumi_gcp/developerconnect/connection.py +1034 -0
  70. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  71. pulumi_gcp/developerconnect/outputs.py +247 -0
  72. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  73. pulumi_gcp/discoveryengine/data_store.py +14 -14
  74. pulumi_gcp/discoveryengine/outputs.py +153 -1
  75. pulumi_gcp/firebase/database_instance.py +7 -7
  76. pulumi_gcp/gkehub/_inputs.py +25 -1
  77. pulumi_gcp/gkehub/feature_membership.py +12 -6
  78. pulumi_gcp/gkehub/outputs.py +17 -1
  79. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  80. pulumi_gcp/gkeonprem/outputs.py +2 -2
  81. pulumi_gcp/iam/_inputs.py +196 -0
  82. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  83. pulumi_gcp/iam/outputs.py +295 -0
  84. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  85. pulumi_gcp/kms/__init__.py +2 -0
  86. pulumi_gcp/kms/autokey_config.py +10 -2
  87. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  88. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  89. pulumi_gcp/kms/outputs.py +164 -0
  90. pulumi_gcp/memorystore/__init__.py +10 -0
  91. pulumi_gcp/memorystore/_inputs.py +731 -0
  92. pulumi_gcp/memorystore/instance.py +1663 -0
  93. pulumi_gcp/memorystore/outputs.py +598 -0
  94. pulumi_gcp/netapp/active_directory.py +6 -6
  95. pulumi_gcp/netapp/backup.py +6 -6
  96. pulumi_gcp/netapp/backup_policy.py +6 -6
  97. pulumi_gcp/netapp/backup_vault.py +6 -6
  98. pulumi_gcp/netapp/storage_pool.py +4 -4
  99. pulumi_gcp/netapp/volume.py +108 -0
  100. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  101. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  102. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  103. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  104. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  105. pulumi_gcp/organizations/folder.py +52 -33
  106. pulumi_gcp/organizations/get_project.py +13 -3
  107. pulumi_gcp/organizations/project.py +88 -3
  108. pulumi_gcp/parallelstore/instance.py +121 -121
  109. pulumi_gcp/projects/iam_member_remove.py +26 -0
  110. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  111. pulumi_gcp/provider.py +40 -0
  112. pulumi_gcp/pubsub/_inputs.py +40 -0
  113. pulumi_gcp/pubsub/outputs.py +51 -1
  114. pulumi_gcp/pubsub/subscription.py +6 -0
  115. pulumi_gcp/pulumi-plugin.json +1 -1
  116. pulumi_gcp/redis/_inputs.py +419 -0
  117. pulumi_gcp/redis/cluster.py +123 -0
  118. pulumi_gcp/redis/outputs.py +315 -0
  119. pulumi_gcp/securitycenter/__init__.py +2 -0
  120. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  121. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  122. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  123. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  124. pulumi_gcp/vpcaccess/connector.py +21 -28
  125. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  126. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +128 -111
  127. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +1 -1
  128. {pulumi_gcp-8.1.0a1726293903.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',
@@ -407,6 +427,8 @@ __all__ = [
407
427
  'NodeGroupShareSettingsArgsDict',
408
428
  'NodeGroupShareSettingsProjectMapArgs',
409
429
  'NodeGroupShareSettingsProjectMapArgsDict',
430
+ 'NodeTemplateAcceleratorArgs',
431
+ 'NodeTemplateAcceleratorArgsDict',
410
432
  'NodeTemplateNodeTypeFlexibilityArgs',
411
433
  'NodeTemplateNodeTypeFlexibilityArgsDict',
412
434
  'NodeTemplateServerBindingArgs',
@@ -5952,7 +5974,7 @@ if not MYPY:
5952
5974
  is only applicable for UDP or TCP protocol. Each entry must be
5953
5975
  either an integer or a range. If not specified, this rule
5954
5976
  applies to connections through any port.
5955
- Example inputs include: ["22"], ["80","443"], and
5977
+ Example inputs include: [22], [80, 443], and
5956
5978
  ["12345-12349"].
5957
5979
  """
5958
5980
  elif False:
@@ -5972,7 +5994,7 @@ class FirewallAllowArgs:
5972
5994
  is only applicable for UDP or TCP protocol. Each entry must be
5973
5995
  either an integer or a range. If not specified, this rule
5974
5996
  applies to connections through any port.
5975
- Example inputs include: ["22"], ["80","443"], and
5997
+ Example inputs include: [22], [80, 443], and
5976
5998
  ["12345-12349"].
5977
5999
  """
5978
6000
  pulumi.set(__self__, "protocol", protocol)
@@ -6002,7 +6024,7 @@ class FirewallAllowArgs:
6002
6024
  is only applicable for UDP or TCP protocol. Each entry must be
6003
6025
  either an integer or a range. If not specified, this rule
6004
6026
  applies to connections through any port.
6005
- Example inputs include: ["22"], ["80","443"], and
6027
+ Example inputs include: [22], [80, 443], and
6006
6028
  ["12345-12349"].
6007
6029
  """
6008
6030
  return pulumi.get(self, "ports")
@@ -6027,7 +6049,7 @@ if not MYPY:
6027
6049
  is only applicable for UDP or TCP protocol. Each entry must be
6028
6050
  either an integer or a range. If not specified, this rule
6029
6051
  applies to connections through any port.
6030
- Example inputs include: ["22"], ["80","443"], and
6052
+ Example inputs include: [22], [80, 443], and
6031
6053
  ["12345-12349"].
6032
6054
  """
6033
6055
  elif False:
@@ -6047,7 +6069,7 @@ class FirewallDenyArgs:
6047
6069
  is only applicable for UDP or TCP protocol. Each entry must be
6048
6070
  either an integer or a range. If not specified, this rule
6049
6071
  applies to connections through any port.
6050
- Example inputs include: ["22"], ["80","443"], and
6072
+ Example inputs include: [22], [80, 443], and
6051
6073
  ["12345-12349"].
6052
6074
  """
6053
6075
  pulumi.set(__self__, "protocol", protocol)
@@ -6077,7 +6099,7 @@ class FirewallDenyArgs:
6077
6099
  is only applicable for UDP or TCP protocol. Each entry must be
6078
6100
  either an integer or a range. If not specified, this rule
6079
6101
  applies to connections through any port.
6080
- Example inputs include: ["22"], ["80","443"], and
6102
+ Example inputs include: [22], [80, 443], and
6081
6103
  ["12345-12349"].
6082
6104
  """
6083
6105
  return pulumi.get(self, "ports")
@@ -8568,6 +8590,10 @@ if not MYPY:
8568
8590
  alongside the new instance. Either `initialize_params` or `source` must be set.
8569
8591
  Structure is documented below.
8570
8592
  """
8593
+ interface: NotRequired[pulumi.Input[str]]
8594
+ """
8595
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
8596
+ """
8571
8597
  kms_key_self_link: NotRequired[pulumi.Input[str]]
8572
8598
  """
8573
8599
  The self_link of the encryption key that is
@@ -8596,6 +8622,7 @@ class InstanceBootDiskArgs:
8596
8622
  disk_encryption_key_raw: Optional[pulumi.Input[str]] = None,
8597
8623
  disk_encryption_key_sha256: Optional[pulumi.Input[str]] = None,
8598
8624
  initialize_params: Optional[pulumi.Input['InstanceBootDiskInitializeParamsArgs']] = None,
8625
+ interface: Optional[pulumi.Input[str]] = None,
8599
8626
  kms_key_self_link: Optional[pulumi.Input[str]] = None,
8600
8627
  mode: Optional[pulumi.Input[str]] = None,
8601
8628
  source: Optional[pulumi.Input[str]] = None):
@@ -8615,6 +8642,7 @@ class InstanceBootDiskArgs:
8615
8642
  :param pulumi.Input['InstanceBootDiskInitializeParamsArgs'] initialize_params: Parameters for a new disk that will be created
8616
8643
  alongside the new instance. Either `initialize_params` or `source` must be set.
8617
8644
  Structure is documented below.
8645
+ :param pulumi.Input[str] interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
8618
8646
  :param pulumi.Input[str] kms_key_self_link: The self_link of the encryption key that is
8619
8647
  stored in Google Cloud KMS to encrypt this disk. Only one of `kms_key_self_link`
8620
8648
  and `disk_encryption_key_raw` may be set.
@@ -8634,6 +8662,8 @@ class InstanceBootDiskArgs:
8634
8662
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
8635
8663
  if initialize_params is not None:
8636
8664
  pulumi.set(__self__, "initialize_params", initialize_params)
8665
+ if interface is not None:
8666
+ pulumi.set(__self__, "interface", interface)
8637
8667
  if kms_key_self_link is not None:
8638
8668
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
8639
8669
  if mode is not None:
@@ -8711,6 +8741,18 @@ class InstanceBootDiskArgs:
8711
8741
  def initialize_params(self, value: Optional[pulumi.Input['InstanceBootDiskInitializeParamsArgs']]):
8712
8742
  pulumi.set(self, "initialize_params", value)
8713
8743
 
8744
+ @property
8745
+ @pulumi.getter
8746
+ def interface(self) -> Optional[pulumi.Input[str]]:
8747
+ """
8748
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
8749
+ """
8750
+ return pulumi.get(self, "interface")
8751
+
8752
+ @interface.setter
8753
+ def interface(self, value: Optional[pulumi.Input[str]]):
8754
+ pulumi.set(self, "interface", value)
8755
+
8714
8756
  @property
8715
8757
  @pulumi.getter(name="kmsKeySelfLink")
8716
8758
  def kms_key_self_link(self) -> Optional[pulumi.Input[str]]:
@@ -8801,6 +8843,10 @@ if not MYPY:
8801
8843
  """
8802
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.
8803
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
+ """
8804
8850
  size: NotRequired[pulumi.Input[int]]
8805
8851
  """
8806
8852
  The size of the image in gigabytes. If not specified, it
@@ -8829,6 +8875,7 @@ class InstanceBootDiskInitializeParamsArgs:
8829
8875
  provisioned_iops: Optional[pulumi.Input[int]] = None,
8830
8876
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
8831
8877
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
8878
+ resource_policies: Optional[pulumi.Input[str]] = None,
8832
8879
  size: Optional[pulumi.Input[int]] = None,
8833
8880
  storage_pool: Optional[pulumi.Input[str]] = None,
8834
8881
  type: Optional[pulumi.Input[str]] = None):
@@ -8861,6 +8908,7 @@ class InstanceBootDiskInitializeParamsArgs:
8861
8908
  for an update of throughput every 4 hours. To update your hyperdisk more
8862
8909
  frequently, you'll need to manually delete and recreate it.
8863
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.
8864
8912
  :param pulumi.Input[int] size: The size of the image in gigabytes. If not specified, it
8865
8913
  will inherit the size of its base image.
8866
8914
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created.
@@ -8881,6 +8929,8 @@ class InstanceBootDiskInitializeParamsArgs:
8881
8929
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
8882
8930
  if resource_manager_tags is not None:
8883
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)
8884
8934
  if size is not None:
8885
8935
  pulumi.set(__self__, "size", size)
8886
8936
  if storage_pool is not None:
@@ -8982,6 +9032,18 @@ class InstanceBootDiskInitializeParamsArgs:
8982
9032
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
8983
9033
  pulumi.set(self, "resource_manager_tags", value)
8984
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
+
8985
9047
  @property
8986
9048
  @pulumi.getter
8987
9049
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -9300,6 +9362,10 @@ if not MYPY:
9300
9362
  """
9301
9363
  Parameters with which a disk was created alongside the instance.
9302
9364
  """
9365
+ interface: NotRequired[pulumi.Input[str]]
9366
+ """
9367
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
9368
+ """
9303
9369
  kms_key_self_link: NotRequired[pulumi.Input[str]]
9304
9370
  """
9305
9371
  The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
@@ -9323,6 +9389,7 @@ class InstanceFromMachineImageBootDiskArgs:
9323
9389
  disk_encryption_key_raw: Optional[pulumi.Input[str]] = None,
9324
9390
  disk_encryption_key_sha256: Optional[pulumi.Input[str]] = None,
9325
9391
  initialize_params: Optional[pulumi.Input['InstanceFromMachineImageBootDiskInitializeParamsArgs']] = None,
9392
+ interface: Optional[pulumi.Input[str]] = None,
9326
9393
  kms_key_self_link: Optional[pulumi.Input[str]] = None,
9327
9394
  mode: Optional[pulumi.Input[str]] = None,
9328
9395
  source: Optional[pulumi.Input[str]] = None):
@@ -9332,6 +9399,7 @@ class InstanceFromMachineImageBootDiskArgs:
9332
9399
  :param pulumi.Input[str] disk_encryption_key_raw: A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
9333
9400
  :param pulumi.Input[str] disk_encryption_key_sha256: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
9334
9401
  :param pulumi.Input['InstanceFromMachineImageBootDiskInitializeParamsArgs'] initialize_params: Parameters with which a disk was created alongside the instance.
9402
+ :param pulumi.Input[str] interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
9335
9403
  :param pulumi.Input[str] kms_key_self_link: The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
9336
9404
  :param pulumi.Input[str] mode: Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE".
9337
9405
  :param pulumi.Input[str] source: The name or self_link of the disk attached to this instance.
@@ -9346,6 +9414,8 @@ class InstanceFromMachineImageBootDiskArgs:
9346
9414
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
9347
9415
  if initialize_params is not None:
9348
9416
  pulumi.set(__self__, "initialize_params", initialize_params)
9417
+ if interface is not None:
9418
+ pulumi.set(__self__, "interface", interface)
9349
9419
  if kms_key_self_link is not None:
9350
9420
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
9351
9421
  if mode is not None:
@@ -9413,6 +9483,18 @@ class InstanceFromMachineImageBootDiskArgs:
9413
9483
  def initialize_params(self, value: Optional[pulumi.Input['InstanceFromMachineImageBootDiskInitializeParamsArgs']]):
9414
9484
  pulumi.set(self, "initialize_params", value)
9415
9485
 
9486
+ @property
9487
+ @pulumi.getter
9488
+ def interface(self) -> Optional[pulumi.Input[str]]:
9489
+ """
9490
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
9491
+ """
9492
+ return pulumi.get(self, "interface")
9493
+
9494
+ @interface.setter
9495
+ def interface(self, value: Optional[pulumi.Input[str]]):
9496
+ pulumi.set(self, "interface", value)
9497
+
9416
9498
  @property
9417
9499
  @pulumi.getter(name="kmsKeySelfLink")
9418
9500
  def kms_key_self_link(self) -> Optional[pulumi.Input[str]]:
@@ -9476,6 +9558,10 @@ if not MYPY:
9476
9558
  """
9477
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.
9478
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
+ """
9479
9565
  size: NotRequired[pulumi.Input[int]]
9480
9566
  """
9481
9567
  The size of the image in gigabytes.
@@ -9500,6 +9586,7 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9500
9586
  provisioned_iops: Optional[pulumi.Input[int]] = None,
9501
9587
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
9502
9588
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
9589
+ resource_policies: Optional[pulumi.Input[str]] = None,
9503
9590
  size: Optional[pulumi.Input[int]] = None,
9504
9591
  storage_pool: Optional[pulumi.Input[str]] = None,
9505
9592
  type: Optional[pulumi.Input[str]] = None):
@@ -9510,6 +9597,7 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9510
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.
9511
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.
9512
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.
9513
9601
  :param pulumi.Input[int] size: The size of the image in gigabytes.
9514
9602
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created
9515
9603
  :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -9526,6 +9614,8 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9526
9614
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
9527
9615
  if resource_manager_tags is not None:
9528
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)
9529
9619
  if size is not None:
9530
9620
  pulumi.set(__self__, "size", size)
9531
9621
  if storage_pool is not None:
@@ -9605,6 +9695,18 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgs:
9605
9695
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
9606
9696
  pulumi.set(self, "resource_manager_tags", value)
9607
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
+
9608
9710
  @property
9609
9711
  @pulumi.getter
9610
9712
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -11386,6 +11488,10 @@ if not MYPY:
11386
11488
  """
11387
11489
  Parameters with which a disk was created alongside the instance.
11388
11490
  """
11491
+ interface: NotRequired[pulumi.Input[str]]
11492
+ """
11493
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
11494
+ """
11389
11495
  kms_key_self_link: NotRequired[pulumi.Input[str]]
11390
11496
  """
11391
11497
  The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
@@ -11409,6 +11515,7 @@ class InstanceFromTemplateBootDiskArgs:
11409
11515
  disk_encryption_key_raw: Optional[pulumi.Input[str]] = None,
11410
11516
  disk_encryption_key_sha256: Optional[pulumi.Input[str]] = None,
11411
11517
  initialize_params: Optional[pulumi.Input['InstanceFromTemplateBootDiskInitializeParamsArgs']] = None,
11518
+ interface: Optional[pulumi.Input[str]] = None,
11412
11519
  kms_key_self_link: Optional[pulumi.Input[str]] = None,
11413
11520
  mode: Optional[pulumi.Input[str]] = None,
11414
11521
  source: Optional[pulumi.Input[str]] = None):
@@ -11418,6 +11525,7 @@ class InstanceFromTemplateBootDiskArgs:
11418
11525
  :param pulumi.Input[str] disk_encryption_key_raw: A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
11419
11526
  :param pulumi.Input[str] disk_encryption_key_sha256: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
11420
11527
  :param pulumi.Input['InstanceFromTemplateBootDiskInitializeParamsArgs'] initialize_params: Parameters with which a disk was created alongside the instance.
11528
+ :param pulumi.Input[str] interface: The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
11421
11529
  :param pulumi.Input[str] kms_key_self_link: The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link and disk_encryption_key_raw may be set.
11422
11530
  :param pulumi.Input[str] mode: Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE".
11423
11531
  :param pulumi.Input[str] source: The name or self_link of the disk attached to this instance.
@@ -11432,6 +11540,8 @@ class InstanceFromTemplateBootDiskArgs:
11432
11540
  pulumi.set(__self__, "disk_encryption_key_sha256", disk_encryption_key_sha256)
11433
11541
  if initialize_params is not None:
11434
11542
  pulumi.set(__self__, "initialize_params", initialize_params)
11543
+ if interface is not None:
11544
+ pulumi.set(__self__, "interface", interface)
11435
11545
  if kms_key_self_link is not None:
11436
11546
  pulumi.set(__self__, "kms_key_self_link", kms_key_self_link)
11437
11547
  if mode is not None:
@@ -11499,6 +11609,18 @@ class InstanceFromTemplateBootDiskArgs:
11499
11609
  def initialize_params(self, value: Optional[pulumi.Input['InstanceFromTemplateBootDiskInitializeParamsArgs']]):
11500
11610
  pulumi.set(self, "initialize_params", value)
11501
11611
 
11612
+ @property
11613
+ @pulumi.getter
11614
+ def interface(self) -> Optional[pulumi.Input[str]]:
11615
+ """
11616
+ The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.)
11617
+ """
11618
+ return pulumi.get(self, "interface")
11619
+
11620
+ @interface.setter
11621
+ def interface(self, value: Optional[pulumi.Input[str]]):
11622
+ pulumi.set(self, "interface", value)
11623
+
11502
11624
  @property
11503
11625
  @pulumi.getter(name="kmsKeySelfLink")
11504
11626
  def kms_key_self_link(self) -> Optional[pulumi.Input[str]]:
@@ -11562,6 +11684,10 @@ if not MYPY:
11562
11684
  """
11563
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.
11564
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
+ """
11565
11691
  size: NotRequired[pulumi.Input[int]]
11566
11692
  """
11567
11693
  The size of the image in gigabytes.
@@ -11586,6 +11712,7 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11586
11712
  provisioned_iops: Optional[pulumi.Input[int]] = None,
11587
11713
  provisioned_throughput: Optional[pulumi.Input[int]] = None,
11588
11714
  resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
11715
+ resource_policies: Optional[pulumi.Input[str]] = None,
11589
11716
  size: Optional[pulumi.Input[int]] = None,
11590
11717
  storage_pool: Optional[pulumi.Input[str]] = None,
11591
11718
  type: Optional[pulumi.Input[str]] = None):
@@ -11596,6 +11723,7 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11596
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.
11597
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.
11598
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.
11599
11727
  :param pulumi.Input[int] size: The size of the image in gigabytes.
11600
11728
  :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created
11601
11729
  :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.
@@ -11612,6 +11740,8 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11612
11740
  pulumi.set(__self__, "provisioned_throughput", provisioned_throughput)
11613
11741
  if resource_manager_tags is not None:
11614
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)
11615
11745
  if size is not None:
11616
11746
  pulumi.set(__self__, "size", size)
11617
11747
  if storage_pool is not None:
@@ -11691,6 +11821,18 @@ class InstanceFromTemplateBootDiskInitializeParamsArgs:
11691
11821
  def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
11692
11822
  pulumi.set(self, "resource_manager_tags", value)
11693
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
+
11694
11836
  @property
11695
11837
  @pulumi.getter
11696
11838
  def size(self) -> Optional[pulumi.Input[int]]:
@@ -14649,7 +14791,7 @@ if not MYPY:
14649
14791
  subnetwork_project: NotRequired[pulumi.Input[str]]
14650
14792
  """
14651
14793
  The project in which the subnetwork belongs.
14652
- If the `subnetwork` is a self_link, this field is ignored in favor of the project
14794
+ If the `subnetwork` is a self_link, this field is set to the project
14653
14795
  defined in the subnetwork self_link. If the `subnetwork` is a name and this
14654
14796
  field is not provided, the provider project is used.
14655
14797
  """
@@ -14707,7 +14849,7 @@ class InstanceNetworkInterfaceArgs:
14707
14849
  network is in auto subnet mode, specifying the subnetwork is optional. If the network is
14708
14850
  in custom subnet mode, specifying the subnetwork is required.
14709
14851
  :param pulumi.Input[str] subnetwork_project: The project in which the subnetwork belongs.
14710
- If the `subnetwork` is a self_link, this field is ignored in favor of the project
14852
+ If the `subnetwork` is a self_link, this field is set to the project
14711
14853
  defined in the subnetwork self_link. If the `subnetwork` is a name and this
14712
14854
  field is not provided, the provider project is used.
14713
14855
  """
@@ -14944,7 +15086,7 @@ class InstanceNetworkInterfaceArgs:
14944
15086
  def subnetwork_project(self) -> Optional[pulumi.Input[str]]:
14945
15087
  """
14946
15088
  The project in which the subnetwork belongs.
14947
- If the `subnetwork` is a self_link, this field is ignored in favor of the project
15089
+ If the `subnetwork` is a self_link, this field is set to the project
14948
15090
  defined in the subnetwork self_link. If the `subnetwork` is a name and this
14949
15091
  field is not provided, the provider project is used.
14950
15092
  """
@@ -19252,311 +19394,1978 @@ if not MYPY:
19252
19394
  class MangedSslCertificateManagedArgsDict(TypedDict):
19253
19395
  domains: pulumi.Input[Sequence[pulumi.Input[str]]]
19254
19396
  """
19255
- Domains for which a managed SSL certificate will be valid. Currently,
19256
- there can be up to 100 domains in this list.
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]]:
20876
+ """
20877
+ (Output)
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.
20881
+ """
20882
+ return pulumi.get(self, "state")
20883
+
20884
+ @state.setter
20885
+ def state(self, value: Optional[pulumi.Input[str]]):
20886
+ pulumi.set(self, "state", value)
20887
+
20888
+
20889
+ if not MYPY:
20890
+ class NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict(TypedDict):
20891
+ name: NotRequired[pulumi.Input[str]]
20892
+ """
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
+ - - -
19257
20904
  """
19258
20905
  elif False:
19259
- MangedSslCertificateManagedArgsDict: TypeAlias = Mapping[str, Any]
20906
+ NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19260
20907
 
19261
20908
  @pulumi.input_type
19262
- class MangedSslCertificateManagedArgs:
20909
+ class NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs:
19263
20910
  def __init__(__self__, *,
19264
- domains: pulumi.Input[Sequence[pulumi.Input[str]]]):
20911
+ name: Optional[pulumi.Input[str]] = None,
20912
+ state: Optional[pulumi.Input[str]] = None):
19265
20913
  """
19266
- :param pulumi.Input[Sequence[pulumi.Input[str]]] domains: Domains for which a managed SSL certificate will be valid. Currently,
19267
- 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
+ - - -
19268
20922
  """
19269
- 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)
19270
20927
 
19271
20928
  @property
19272
20929
  @pulumi.getter
19273
- def domains(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
20930
+ def name(self) -> Optional[pulumi.Input[str]]:
19274
20931
  """
19275
- Domains for which a managed SSL certificate will be valid. Currently,
19276
- 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]+
19277
20934
  """
19278
- return pulumi.get(self, "domains")
20935
+ return pulumi.get(self, "name")
19279
20936
 
19280
- @domains.setter
19281
- def domains(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
19282
- pulumi.set(self, "domains", value)
20937
+ @name.setter
20938
+ def name(self, value: Optional[pulumi.Input[str]]):
20939
+ pulumi.set(self, "name", value)
20940
+
20941
+ @property
20942
+ @pulumi.getter
20943
+ def state(self) -> Optional[pulumi.Input[str]]:
20944
+ """
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
+ - - -
20951
+ """
20952
+ return pulumi.get(self, "state")
20953
+
20954
+ @state.setter
20955
+ def state(self, value: Optional[pulumi.Input[str]]):
20956
+ pulumi.set(self, "state", value)
19283
20957
 
19284
20958
 
19285
20959
  if not MYPY:
19286
- class NetworkAttachmentConnectionEndpointArgsDict(TypedDict):
19287
- ip_address: NotRequired[pulumi.Input[str]]
20960
+ class NetworkFirewallPolicyWithRulesRuleArgsDict(TypedDict):
20961
+ action: pulumi.Input[str]
19288
20962
  """
19289
- (Output)
19290
- 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".
19291
20965
  """
19292
- project_id_or_num: NotRequired[pulumi.Input[str]]
20966
+ match: pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgsDict']
19293
20967
  """
19294
- (Output)
19295
- 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.
19296
20970
  """
19297
- secondary_ip_cidr_ranges: NotRequired[pulumi.Input[str]]
20971
+ priority: pulumi.Input[int]
19298
20972
  """
19299
- (Output)
19300
- 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.
19301
20976
  """
19302
- status: NotRequired[pulumi.Input[str]]
20977
+ description: NotRequired[pulumi.Input[str]]
19303
20978
  """
19304
- (Output)
19305
- The status of a connected endpoint to this network attachment.
20979
+ A description of the rule.
19306
20980
  """
19307
- subnetwork: NotRequired[pulumi.Input[str]]
20981
+ direction: NotRequired[pulumi.Input[str]]
19308
20982
  """
19309
- (Output)
19310
- 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.
19311
21035
  """
19312
21036
  elif False:
19313
- NetworkAttachmentConnectionEndpointArgsDict: TypeAlias = Mapping[str, Any]
21037
+ NetworkFirewallPolicyWithRulesRuleArgsDict: TypeAlias = Mapping[str, Any]
19314
21038
 
19315
21039
  @pulumi.input_type
19316
- class NetworkAttachmentConnectionEndpointArgs:
21040
+ class NetworkFirewallPolicyWithRulesRuleArgs:
19317
21041
  def __init__(__self__, *,
19318
- ip_address: Optional[pulumi.Input[str]] = None,
19319
- project_id_or_num: Optional[pulumi.Input[str]] = None,
19320
- secondary_ip_cidr_ranges: Optional[pulumi.Input[str]] = None,
19321
- status: Optional[pulumi.Input[str]] = None,
19322
- subnetwork: Optional[pulumi.Input[str]] = None):
19323
- """
19324
- :param pulumi.Input[str] ip_address: (Output)
19325
- The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.
19326
- :param pulumi.Input[str] project_id_or_num: (Output)
19327
- The project id or number of the interface to which the IP was assigned.
19328
- :param pulumi.Input[str] secondary_ip_cidr_ranges: (Output)
19329
- Alias IP ranges from the same subnetwork.
19330
- :param pulumi.Input[str] status: (Output)
19331
- The status of a connected endpoint to this network attachment.
19332
- :param pulumi.Input[str] subnetwork: (Output)
19333
- 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.
19334
21094
  """
19335
- if ip_address is not None:
19336
- pulumi.set(__self__, "ip_address", ip_address)
19337
- if project_id_or_num is not None:
19338
- pulumi.set(__self__, "project_id_or_num", project_id_or_num)
19339
- if secondary_ip_cidr_ranges is not None:
19340
- pulumi.set(__self__, "secondary_ip_cidr_ranges", secondary_ip_cidr_ranges)
19341
- if status is not None:
19342
- pulumi.set(__self__, "status", status)
19343
- if subnetwork is not None:
19344
- 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)
19345
21116
 
19346
21117
  @property
19347
- @pulumi.getter(name="ipAddress")
19348
- def ip_address(self) -> Optional[pulumi.Input[str]]:
21118
+ @pulumi.getter
21119
+ def action(self) -> pulumi.Input[str]:
19349
21120
  """
19350
- (Output)
19351
- 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".
19352
21123
  """
19353
- return pulumi.get(self, "ip_address")
21124
+ return pulumi.get(self, "action")
19354
21125
 
19355
- @ip_address.setter
19356
- def ip_address(self, value: Optional[pulumi.Input[str]]):
19357
- pulumi.set(self, "ip_address", value)
21126
+ @action.setter
21127
+ def action(self, value: pulumi.Input[str]):
21128
+ pulumi.set(self, "action", value)
19358
21129
 
19359
21130
  @property
19360
- @pulumi.getter(name="projectIdOrNum")
19361
- def project_id_or_num(self) -> Optional[pulumi.Input[str]]:
21131
+ @pulumi.getter
21132
+ def match(self) -> pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchArgs']:
19362
21133
  """
19363
- (Output)
19364
- 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.
19365
21136
  """
19366
- return pulumi.get(self, "project_id_or_num")
21137
+ return pulumi.get(self, "match")
19367
21138
 
19368
- @project_id_or_num.setter
19369
- def project_id_or_num(self, value: Optional[pulumi.Input[str]]):
19370
- 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)
19371
21142
 
19372
21143
  @property
19373
- @pulumi.getter(name="secondaryIpCidrRanges")
19374
- def secondary_ip_cidr_ranges(self) -> Optional[pulumi.Input[str]]:
21144
+ @pulumi.getter
21145
+ def priority(self) -> pulumi.Input[int]:
19375
21146
  """
19376
- (Output)
19377
- 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.
19378
21150
  """
19379
- return pulumi.get(self, "secondary_ip_cidr_ranges")
21151
+ return pulumi.get(self, "priority")
19380
21152
 
19381
- @secondary_ip_cidr_ranges.setter
19382
- def secondary_ip_cidr_ranges(self, value: Optional[pulumi.Input[str]]):
19383
- 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)
19384
21156
 
19385
21157
  @property
19386
21158
  @pulumi.getter
19387
- def status(self) -> Optional[pulumi.Input[str]]:
21159
+ def description(self) -> Optional[pulumi.Input[str]]:
19388
21160
  """
19389
- (Output)
19390
- The status of a connected endpoint to this network attachment.
21161
+ A description of the rule.
19391
21162
  """
19392
- return pulumi.get(self, "status")
21163
+ return pulumi.get(self, "description")
19393
21164
 
19394
- @status.setter
19395
- def status(self, value: Optional[pulumi.Input[str]]):
19396
- pulumi.set(self, "status", value)
21165
+ @description.setter
21166
+ def description(self, value: Optional[pulumi.Input[str]]):
21167
+ pulumi.set(self, "description", value)
19397
21168
 
19398
21169
  @property
19399
21170
  @pulumi.getter
19400
- def subnetwork(self) -> Optional[pulumi.Input[str]]:
21171
+ def direction(self) -> Optional[pulumi.Input[str]]:
19401
21172
  """
19402
- (Output)
19403
- 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`.
19404
21175
  """
19405
- return pulumi.get(self, "subnetwork")
19406
-
19407
- @subnetwork.setter
19408
- def subnetwork(self, value: Optional[pulumi.Input[str]]):
19409
- pulumi.set(self, "subnetwork", value)
21176
+ return pulumi.get(self, "direction")
19410
21177
 
21178
+ @direction.setter
21179
+ def direction(self, value: Optional[pulumi.Input[str]]):
21180
+ pulumi.set(self, "direction", value)
19411
21181
 
19412
- if not MYPY:
19413
- class NetworkEndpointListNetworkEndpointArgsDict(TypedDict):
19414
- ip_address: pulumi.Input[str]
21182
+ @property
21183
+ @pulumi.getter
21184
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
19415
21185
  """
19416
- IPv4 address of network endpoint. The IP address must belong
19417
- to a VM in GCE (either the primary IP or as part of an aliased IP
19418
- 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.
19419
21190
  """
19420
- 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]]:
19421
21200
  """
19422
- The name for a specific VM instance that the IP address belongs to.
19423
- This is required for network endpoints of type GCE_VM_IP_PORT.
19424
- 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.
19425
21204
  """
19426
- 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]]:
19427
21214
  """
19428
- Port number of network endpoint.
19429
- **Note** `port` is required unless the Network Endpoint Group is created
19430
- 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.
19431
21217
  """
19432
- elif False:
19433
- NetworkEndpointListNetworkEndpointArgsDict: TypeAlias = Mapping[str, Any]
21218
+ return pulumi.get(self, "rule_name")
19434
21219
 
19435
- @pulumi.input_type
19436
- class NetworkEndpointListNetworkEndpointArgs:
19437
- def __init__(__self__, *,
19438
- ip_address: pulumi.Input[str],
19439
- instance: Optional[pulumi.Input[str]] = None,
19440
- 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]]:
19441
21227
  """
19442
- :param pulumi.Input[str] ip_address: IPv4 address of network endpoint. The IP address must belong
19443
- to a VM in GCE (either the primary IP or as part of an aliased IP
19444
- range).
19445
- :param pulumi.Input[str] instance: The name for a specific VM instance that the IP address belongs to.
19446
- This is required for network endpoints of type GCE_VM_IP_PORT.
19447
- The instance must be in the same zone as the network endpoint group.
19448
- :param pulumi.Input[int] port: Port number of network endpoint.
19449
- **Note** `port` is required unless the Network Endpoint Group is created
19450
- 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'.
19451
21232
  """
19452
- pulumi.set(__self__, "ip_address", ip_address)
19453
- if instance is not None:
19454
- pulumi.set(__self__, "instance", instance)
19455
- if port is not None:
19456
- 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)
19457
21238
 
19458
21239
  @property
19459
- @pulumi.getter(name="ipAddress")
19460
- 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']]]]:
19461
21242
  """
19462
- IPv4 address of network endpoint. The IP address must belong
19463
- to a VM in GCE (either the primary IP or as part of an aliased IP
19464
- 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.
19465
21255
  """
19466
- return pulumi.get(self, "ip_address")
21256
+ return pulumi.get(self, "target_secure_tags")
19467
21257
 
19468
- @ip_address.setter
19469
- def ip_address(self, value: pulumi.Input[str]):
19470
- 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)
19471
21261
 
19472
21262
  @property
19473
- @pulumi.getter
19474
- 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]]]]:
19475
21265
  """
19476
- The name for a specific VM instance that the IP address belongs to.
19477
- This is required for network endpoints of type GCE_VM_IP_PORT.
19478
- 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.
19479
21268
  """
19480
- return pulumi.get(self, "instance")
21269
+ return pulumi.get(self, "target_service_accounts")
19481
21270
 
19482
- @instance.setter
19483
- def instance(self, value: Optional[pulumi.Input[str]]):
19484
- 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)
19485
21274
 
19486
21275
  @property
19487
- @pulumi.getter
19488
- def port(self) -> Optional[pulumi.Input[int]]:
21276
+ @pulumi.getter(name="tlsInspect")
21277
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
19489
21278
  """
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`
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.
19493
21281
  """
19494
- return pulumi.get(self, "port")
21282
+ return pulumi.get(self, "tls_inspect")
19495
21283
 
19496
- @port.setter
19497
- def port(self, value: Optional[pulumi.Input[int]]):
19498
- 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)
19499
21287
 
19500
21288
 
19501
21289
  if not MYPY:
19502
- class NetworkFirewallPolicyRuleMatchArgsDict(TypedDict):
19503
- layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict']]]
21290
+ class NetworkFirewallPolicyWithRulesRuleMatchArgsDict(TypedDict):
21291
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict']]]
19504
21292
  """
19505
21293
  Pairs of IP protocols and ports that the rule should match.
21294
+ Structure is documented below.
19506
21295
  """
19507
21296
  dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19508
21297
  """
19509
- 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.
19510
21300
  """
19511
21301
  dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19512
21302
  """
19513
- 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.
19514
21305
  """
19515
21306
  dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19516
21307
  """
19517
- 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.
19518
21310
  """
19519
21311
  dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19520
21312
  """
19521
- 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.
19522
21317
  """
19523
21318
  dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19524
21319
  """
19525
- 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.
19526
21322
  """
19527
21323
  src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19528
21324
  """
19529
- 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.
19530
21327
  """
19531
21328
  src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19532
21329
  """
19533
- 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.
19534
21332
  """
19535
21333
  src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19536
21334
  """
19537
- 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.
19538
21337
  """
19539
21338
  src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19540
21339
  """
19541
- 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.
19542
21344
  """
19543
- src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict']]]]
21345
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict']]]]
19544
21346
  """
19545
- 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:
19546
21356
  """
19547
21357
  src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19548
21358
  """
19549
- Name of the Google Cloud Threat Intelligence list.
19550
-
19551
- The `layer4_configs` block supports:
21359
+ Names of Network Threat Intelligence lists.
21360
+ The IPs in these lists will be matched against traffic source.
19552
21361
  """
19553
21362
  elif False:
19554
- NetworkFirewallPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
21363
+ NetworkFirewallPolicyWithRulesRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
19555
21364
 
19556
21365
  @pulumi.input_type
19557
- class NetworkFirewallPolicyRuleMatchArgs:
21366
+ class NetworkFirewallPolicyWithRulesRuleMatchArgs:
19558
21367
  def __init__(__self__, *,
19559
- layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]],
21368
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]],
19560
21369
  dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19561
21370
  dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19562
21371
  dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -19566,23 +21375,44 @@ class NetworkFirewallPolicyRuleMatchArgs:
19566
21375
  src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19567
21376
  src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19568
21377
  src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
19569
- src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchSrcSecureTagArgs']]]] = None,
21378
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]] = None,
19570
21379
  src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19571
21380
  """
19572
- :param pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
19573
- :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.
19574
- :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.
19575
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
19576
- :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.
19577
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
19578
- :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.
19579
- :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.
19580
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
19581
- :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.
19582
- :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.
19583
- :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.
19584
21411
 
19585
- 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.
19586
21416
  """
19587
21417
  pulumi.set(__self__, "layer4_configs", layer4_configs)
19588
21418
  if dest_address_groups is not None:
@@ -19610,21 +21440,23 @@ class NetworkFirewallPolicyRuleMatchArgs:
19610
21440
 
19611
21441
  @property
19612
21442
  @pulumi.getter(name="layer4Configs")
19613
- def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]:
21443
+ def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]:
19614
21444
  """
19615
21445
  Pairs of IP protocols and ports that the rule should match.
21446
+ Structure is documented below.
19616
21447
  """
19617
21448
  return pulumi.get(self, "layer4_configs")
19618
21449
 
19619
21450
  @layer4_configs.setter
19620
- def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyRuleMatchLayer4ConfigArgs']]]):
21451
+ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]):
19621
21452
  pulumi.set(self, "layer4_configs", value)
19622
21453
 
19623
21454
  @property
19624
21455
  @pulumi.getter(name="destAddressGroups")
19625
21456
  def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19626
21457
  """
19627
- 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.
19628
21460
  """
19629
21461
  return pulumi.get(self, "dest_address_groups")
19630
21462
 
@@ -19636,7 +21468,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19636
21468
  @pulumi.getter(name="destFqdns")
19637
21469
  def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19638
21470
  """
19639
- 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.
19640
21473
  """
19641
21474
  return pulumi.get(self, "dest_fqdns")
19642
21475
 
@@ -19648,7 +21481,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19648
21481
  @pulumi.getter(name="destIpRanges")
19649
21482
  def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19650
21483
  """
19651
- 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.
19652
21486
  """
19653
21487
  return pulumi.get(self, "dest_ip_ranges")
19654
21488
 
@@ -19660,7 +21494,10 @@ class NetworkFirewallPolicyRuleMatchArgs:
19660
21494
  @pulumi.getter(name="destRegionCodes")
19661
21495
  def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19662
21496
  """
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.
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.
19664
21501
  """
19665
21502
  return pulumi.get(self, "dest_region_codes")
19666
21503
 
@@ -19672,7 +21509,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19672
21509
  @pulumi.getter(name="destThreatIntelligences")
19673
21510
  def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19674
21511
  """
19675
- 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.
19676
21514
  """
19677
21515
  return pulumi.get(self, "dest_threat_intelligences")
19678
21516
 
@@ -19684,7 +21522,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19684
21522
  @pulumi.getter(name="srcAddressGroups")
19685
21523
  def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19686
21524
  """
19687
- 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.
19688
21527
  """
19689
21528
  return pulumi.get(self, "src_address_groups")
19690
21529
 
@@ -19696,7 +21535,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19696
21535
  @pulumi.getter(name="srcFqdns")
19697
21536
  def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19698
21537
  """
19699
- 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.
19700
21540
  """
19701
21541
  return pulumi.get(self, "src_fqdns")
19702
21542
 
@@ -19708,7 +21548,8 @@ class NetworkFirewallPolicyRuleMatchArgs:
19708
21548
  @pulumi.getter(name="srcIpRanges")
19709
21549
  def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19710
21550
  """
19711
- 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.
19712
21553
  """
19713
21554
  return pulumi.get(self, "src_ip_ranges")
19714
21555
 
@@ -19720,7 +21561,10 @@ class NetworkFirewallPolicyRuleMatchArgs:
19720
21561
  @pulumi.getter(name="srcRegionCodes")
19721
21562
  def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19722
21563
  """
19723
- 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.
19724
21568
  """
19725
21569
  return pulumi.get(self, "src_region_codes")
19726
21570
 
@@ -19730,23 +21574,30 @@ class NetworkFirewallPolicyRuleMatchArgs:
19730
21574
 
19731
21575
  @property
19732
21576
  @pulumi.getter(name="srcSecureTags")
19733
- 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']]]]:
19734
21578
  """
19735
- 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:
19736
21588
  """
19737
21589
  return pulumi.get(self, "src_secure_tags")
19738
21590
 
19739
21591
  @src_secure_tags.setter
19740
- 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']]]]):
19741
21593
  pulumi.set(self, "src_secure_tags", value)
19742
21594
 
19743
21595
  @property
19744
21596
  @pulumi.getter(name="srcThreatIntelligences")
19745
21597
  def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19746
21598
  """
19747
- Name of the Google Cloud Threat Intelligence list.
19748
-
19749
- The `layer4_configs` block supports:
21599
+ Names of Network Threat Intelligence lists.
21600
+ The IPs in these lists will be matched against traffic source.
19750
21601
  """
19751
21602
  return pulumi.get(self, "src_threat_intelligences")
19752
21603
 
@@ -19756,26 +21607,48 @@ class NetworkFirewallPolicyRuleMatchArgs:
19756
21607
 
19757
21608
 
19758
21609
  if not MYPY:
19759
- class NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict(TypedDict):
21610
+ class NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict(TypedDict):
19760
21611
  ip_protocol: pulumi.Input[str]
19761
21612
  """
19762
- 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.
19763
21619
  """
19764
21620
  ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
19765
21621
  """
19766
- 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"].
19767
21629
  """
19768
21630
  elif False:
19769
- NetworkFirewallPolicyRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
21631
+ NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
19770
21632
 
19771
21633
  @pulumi.input_type
19772
- class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
21634
+ class NetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs:
19773
21635
  def __init__(__self__, *,
19774
21636
  ip_protocol: pulumi.Input[str],
19775
21637
  ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
19776
21638
  """
19777
- :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.
19778
- :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"].
19779
21652
  """
19780
21653
  pulumi.set(__self__, "ip_protocol", ip_protocol)
19781
21654
  if ports is not None:
@@ -19785,7 +21658,12 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19785
21658
  @pulumi.getter(name="ipProtocol")
19786
21659
  def ip_protocol(self) -> pulumi.Input[str]:
19787
21660
  """
19788
- 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.
19789
21667
  """
19790
21668
  return pulumi.get(self, "ip_protocol")
19791
21669
 
@@ -19797,7 +21675,13 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19797
21675
  @pulumi.getter
19798
21676
  def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
19799
21677
  """
19800
- 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"].
19801
21685
  """
19802
21686
  return pulumi.get(self, "ports")
19803
21687
 
@@ -19807,48 +21691,61 @@ class NetworkFirewallPolicyRuleMatchLayer4ConfigArgs:
19807
21691
 
19808
21692
 
19809
21693
  if not MYPY:
19810
- class NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict(TypedDict):
19811
- name: pulumi.Input[str]
21694
+ class NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict(TypedDict):
21695
+ name: NotRequired[pulumi.Input[str]]
19812
21696
  """
19813
- 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]+
19814
21699
  """
19815
21700
  state: NotRequired[pulumi.Input[str]]
19816
21701
  """
19817
- [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.
19818
21706
  """
19819
21707
  elif False:
19820
- NetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
21708
+ NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19821
21709
 
19822
21710
  @pulumi.input_type
19823
- class NetworkFirewallPolicyRuleMatchSrcSecureTagArgs:
21711
+ class NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs:
19824
21712
  def __init__(__self__, *,
19825
- name: pulumi.Input[str],
21713
+ name: Optional[pulumi.Input[str]] = None,
19826
21714
  state: Optional[pulumi.Input[str]] = None):
19827
21715
  """
19828
- :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19829
- :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.
19830
21722
  """
19831
- pulumi.set(__self__, "name", name)
21723
+ if name is not None:
21724
+ pulumi.set(__self__, "name", name)
19832
21725
  if state is not None:
19833
21726
  pulumi.set(__self__, "state", state)
19834
21727
 
19835
21728
  @property
19836
21729
  @pulumi.getter
19837
- def name(self) -> pulumi.Input[str]:
21730
+ def name(self) -> Optional[pulumi.Input[str]]:
19838
21731
  """
19839
- 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]+
19840
21734
  """
19841
21735
  return pulumi.get(self, "name")
19842
21736
 
19843
21737
  @name.setter
19844
- def name(self, value: pulumi.Input[str]):
21738
+ def name(self, value: Optional[pulumi.Input[str]]):
19845
21739
  pulumi.set(self, "name", value)
19846
21740
 
19847
21741
  @property
19848
21742
  @pulumi.getter
19849
21743
  def state(self) -> Optional[pulumi.Input[str]]:
19850
21744
  """
19851
- [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.
19852
21749
  """
19853
21750
  return pulumi.get(self, "state")
19854
21751
 
@@ -19858,48 +21755,67 @@ class NetworkFirewallPolicyRuleMatchSrcSecureTagArgs:
19858
21755
 
19859
21756
 
19860
21757
  if not MYPY:
19861
- class NetworkFirewallPolicyRuleTargetSecureTagArgsDict(TypedDict):
19862
- name: pulumi.Input[str]
21758
+ class NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict(TypedDict):
21759
+ name: NotRequired[pulumi.Input[str]]
19863
21760
  """
19864
- 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]+
19865
21763
  """
19866
21764
  state: NotRequired[pulumi.Input[str]]
19867
21765
  """
19868
- [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
+ - - -
19869
21772
  """
19870
21773
  elif False:
19871
- NetworkFirewallPolicyRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
21774
+ NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
19872
21775
 
19873
21776
  @pulumi.input_type
19874
- class NetworkFirewallPolicyRuleTargetSecureTagArgs:
21777
+ class NetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs:
19875
21778
  def __init__(__self__, *,
19876
- name: pulumi.Input[str],
21779
+ name: Optional[pulumi.Input[str]] = None,
19877
21780
  state: Optional[pulumi.Input[str]] = None):
19878
21781
  """
19879
- :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API. @pattern tagValues/[0-9]+
19880
- :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
+ - - -
19881
21790
  """
19882
- pulumi.set(__self__, "name", name)
21791
+ if name is not None:
21792
+ pulumi.set(__self__, "name", name)
19883
21793
  if state is not None:
19884
21794
  pulumi.set(__self__, "state", state)
19885
21795
 
19886
21796
  @property
19887
21797
  @pulumi.getter
19888
- def name(self) -> pulumi.Input[str]:
21798
+ def name(self) -> Optional[pulumi.Input[str]]:
19889
21799
  """
19890
- 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]+
19891
21802
  """
19892
21803
  return pulumi.get(self, "name")
19893
21804
 
19894
21805
  @name.setter
19895
- def name(self, value: pulumi.Input[str]):
21806
+ def name(self, value: Optional[pulumi.Input[str]]):
19896
21807
  pulumi.set(self, "name", value)
19897
21808
 
19898
21809
  @property
19899
21810
  @pulumi.getter
19900
21811
  def state(self) -> Optional[pulumi.Input[str]]:
19901
21812
  """
19902
- [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
+ - - -
19903
21819
  """
19904
21820
  return pulumi.get(self, "state")
19905
21821
 
@@ -20142,6 +22058,64 @@ class NodeGroupShareSettingsProjectMapArgs:
20142
22058
  pulumi.set(self, "project_id", value)
20143
22059
 
20144
22060
 
22061
+ if not MYPY:
22062
+ class NodeTemplateAcceleratorArgsDict(TypedDict):
22063
+ accelerator_count: NotRequired[pulumi.Input[int]]
22064
+ """
22065
+ The number of the guest accelerator cards exposed to this
22066
+ node template.
22067
+ """
22068
+ accelerator_type: NotRequired[pulumi.Input[str]]
22069
+ """
22070
+ Full or partial URL of the accelerator type resource to expose
22071
+ to this node template.
22072
+ """
22073
+ elif False:
22074
+ NodeTemplateAcceleratorArgsDict: TypeAlias = Mapping[str, Any]
22075
+
22076
+ @pulumi.input_type
22077
+ class NodeTemplateAcceleratorArgs:
22078
+ def __init__(__self__, *,
22079
+ accelerator_count: Optional[pulumi.Input[int]] = None,
22080
+ accelerator_type: Optional[pulumi.Input[str]] = None):
22081
+ """
22082
+ :param pulumi.Input[int] accelerator_count: The number of the guest accelerator cards exposed to this
22083
+ node template.
22084
+ :param pulumi.Input[str] accelerator_type: Full or partial URL of the accelerator type resource to expose
22085
+ to this node template.
22086
+ """
22087
+ if accelerator_count is not None:
22088
+ pulumi.set(__self__, "accelerator_count", accelerator_count)
22089
+ if accelerator_type is not None:
22090
+ pulumi.set(__self__, "accelerator_type", accelerator_type)
22091
+
22092
+ @property
22093
+ @pulumi.getter(name="acceleratorCount")
22094
+ def accelerator_count(self) -> Optional[pulumi.Input[int]]:
22095
+ """
22096
+ The number of the guest accelerator cards exposed to this
22097
+ node template.
22098
+ """
22099
+ return pulumi.get(self, "accelerator_count")
22100
+
22101
+ @accelerator_count.setter
22102
+ def accelerator_count(self, value: Optional[pulumi.Input[int]]):
22103
+ pulumi.set(self, "accelerator_count", value)
22104
+
22105
+ @property
22106
+ @pulumi.getter(name="acceleratorType")
22107
+ def accelerator_type(self) -> Optional[pulumi.Input[str]]:
22108
+ """
22109
+ Full or partial URL of the accelerator type resource to expose
22110
+ to this node template.
22111
+ """
22112
+ return pulumi.get(self, "accelerator_type")
22113
+
22114
+ @accelerator_type.setter
22115
+ def accelerator_type(self, value: Optional[pulumi.Input[str]]):
22116
+ pulumi.set(self, "accelerator_type", value)
22117
+
22118
+
20145
22119
  if not MYPY:
20146
22120
  class NodeTemplateNodeTypeFlexibilityArgsDict(TypedDict):
20147
22121
  cpus: NotRequired[pulumi.Input[str]]
@@ -45066,11 +47040,26 @@ class SecurityScanConfigScheduleArgs:
45066
47040
 
45067
47041
  if not MYPY:
45068
47042
  class ServiceAttachmentConnectedEndpointArgsDict(TypedDict):
47043
+ consumer_network: NotRequired[pulumi.Input[str]]
47044
+ """
47045
+ (Output)
47046
+ The url of the consumer network.
47047
+ """
45069
47048
  endpoint: NotRequired[pulumi.Input[str]]
45070
47049
  """
45071
47050
  (Output)
45072
47051
  The URL of the consumer forwarding rule.
45073
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
+ """
45074
47063
  status: NotRequired[pulumi.Input[str]]
45075
47064
  """
45076
47065
  (Output)
@@ -45083,20 +47072,48 @@ elif False:
45083
47072
  @pulumi.input_type
45084
47073
  class ServiceAttachmentConnectedEndpointArgs:
45085
47074
  def __init__(__self__, *,
47075
+ consumer_network: Optional[pulumi.Input[str]] = None,
45086
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,
45087
47079
  status: Optional[pulumi.Input[str]] = None):
45088
47080
  """
47081
+ :param pulumi.Input[str] consumer_network: (Output)
47082
+ The url of the consumer network.
45089
47083
  :param pulumi.Input[str] endpoint: (Output)
45090
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.
45091
47089
  :param pulumi.Input[str] status: (Output)
45092
47090
  The status of the connection from the consumer forwarding rule to
45093
47091
  this service attachment.
45094
47092
  """
47093
+ if consumer_network is not None:
47094
+ pulumi.set(__self__, "consumer_network", consumer_network)
45095
47095
  if endpoint is not None:
45096
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)
45097
47101
  if status is not None:
45098
47102
  pulumi.set(__self__, "status", status)
45099
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
+
45100
47117
  @property
45101
47118
  @pulumi.getter
45102
47119
  def endpoint(self) -> Optional[pulumi.Input[str]]:
@@ -45110,6 +47127,32 @@ class ServiceAttachmentConnectedEndpointArgs:
45110
47127
  def endpoint(self, value: Optional[pulumi.Input[str]]):
45111
47128
  pulumi.set(self, "endpoint", value)
45112
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
+
45113
47156
  @property
45114
47157
  @pulumi.getter
45115
47158
  def status(self) -> Optional[pulumi.Input[str]]: