pulumi-gcp 8.3.1a1727284265__py3-none-any.whl → 8.4.0a1727795436__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 (49) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/apigee/nat_address.py +155 -2
  3. pulumi_gcp/bigquery/_inputs.py +102 -0
  4. pulumi_gcp/bigquery/outputs.py +83 -0
  5. pulumi_gcp/bigquery/table.py +47 -0
  6. pulumi_gcp/cloudrun/_inputs.py +26 -0
  7. pulumi_gcp/cloudrun/outputs.py +33 -0
  8. pulumi_gcp/cloudrun/service.py +76 -0
  9. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  10. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  11. pulumi_gcp/cloudrunv2/service.py +64 -0
  12. pulumi_gcp/compute/__init__.py +3 -0
  13. pulumi_gcp/compute/_inputs.py +1941 -2
  14. pulumi_gcp/compute/get_region_instance_group_manager.py +438 -0
  15. pulumi_gcp/compute/get_router_nat.py +11 -1
  16. pulumi_gcp/compute/instance.py +7 -7
  17. pulumi_gcp/compute/instance_from_machine_image.py +7 -7
  18. pulumi_gcp/compute/instance_from_template.py +7 -7
  19. pulumi_gcp/compute/interconnect.py +76 -64
  20. pulumi_gcp/compute/outputs.py +4637 -2640
  21. pulumi_gcp/compute/region_commitment.py +47 -0
  22. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +835 -0
  23. pulumi_gcp/compute/router_nat.py +56 -2
  24. pulumi_gcp/compute/router_nat_address.py +514 -0
  25. pulumi_gcp/compute/subnetwork.py +14 -14
  26. pulumi_gcp/container/_inputs.py +222 -0
  27. pulumi_gcp/container/outputs.py +279 -2
  28. pulumi_gcp/logging/__init__.py +1 -0
  29. pulumi_gcp/logging/log_scope.py +492 -0
  30. pulumi_gcp/looker/_inputs.py +157 -0
  31. pulumi_gcp/looker/instance.py +143 -0
  32. pulumi_gcp/looker/outputs.py +136 -0
  33. pulumi_gcp/networkconnectivity/_inputs.py +72 -3
  34. pulumi_gcp/networkconnectivity/outputs.py +51 -3
  35. pulumi_gcp/networkconnectivity/spoke.py +310 -0
  36. pulumi_gcp/networksecurity/security_profile.py +2 -2
  37. pulumi_gcp/privilegedaccessmanager/__init__.py +1 -0
  38. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +219 -0
  39. pulumi_gcp/privilegedaccessmanager/outputs.py +312 -0
  40. pulumi_gcp/pulumi-plugin.json +1 -1
  41. pulumi_gcp/secretmanager/__init__.py +2 -0
  42. pulumi_gcp/secretmanager/get_regional_secret_version.py +2 -2
  43. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +188 -0
  44. pulumi_gcp/secretmanager/get_regional_secrets.py +156 -0
  45. pulumi_gcp/secretmanager/outputs.py +265 -0
  46. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/METADATA +1 -1
  47. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/RECORD +49 -42
  48. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/WHEEL +0 -0
  49. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/top_level.txt +0 -0
@@ -653,6 +653,26 @@ __all__ = [
653
653
  'RegionNetworkFirewallPolicyRuleMatchSrcSecureTagArgsDict',
654
654
  'RegionNetworkFirewallPolicyRuleTargetSecureTagArgs',
655
655
  'RegionNetworkFirewallPolicyRuleTargetSecureTagArgsDict',
656
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs',
657
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgsDict',
658
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs',
659
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict',
660
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs',
661
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict',
662
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs',
663
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict',
664
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs',
665
+ 'RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict',
666
+ 'RegionNetworkFirewallPolicyWithRulesRuleArgs',
667
+ 'RegionNetworkFirewallPolicyWithRulesRuleArgsDict',
668
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchArgs',
669
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchArgsDict',
670
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs',
671
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict',
672
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs',
673
+ 'RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict',
674
+ 'RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs',
675
+ 'RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict',
656
676
  'RegionPerInstanceConfigPreservedStateArgs',
657
677
  'RegionPerInstanceConfigPreservedStateArgsDict',
658
678
  'RegionPerInstanceConfigPreservedStateDiskArgs',
@@ -12037,6 +12057,10 @@ if not MYPY:
12037
12057
  """
12038
12058
  Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
12039
12059
  """
12060
+ host_error_timeout_seconds: NotRequired[pulumi.Input[int]]
12061
+ """
12062
+ Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
12063
+ """
12040
12064
  instance_termination_action: NotRequired[pulumi.Input[str]]
12041
12065
  """
12042
12066
  Specifies the action GCE should take when SPOT VM is preempted.
@@ -12084,6 +12108,7 @@ elif False:
12084
12108
  class InstanceFromMachineImageSchedulingArgs:
12085
12109
  def __init__(__self__, *,
12086
12110
  automatic_restart: Optional[pulumi.Input[bool]] = None,
12111
+ host_error_timeout_seconds: Optional[pulumi.Input[int]] = None,
12087
12112
  instance_termination_action: Optional[pulumi.Input[str]] = None,
12088
12113
  local_ssd_recovery_timeout: Optional[pulumi.Input['InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs']] = None,
12089
12114
  maintenance_interval: Optional[pulumi.Input[str]] = None,
@@ -12096,6 +12121,7 @@ class InstanceFromMachineImageSchedulingArgs:
12096
12121
  provisioning_model: Optional[pulumi.Input[str]] = None):
12097
12122
  """
12098
12123
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
12124
+ :param pulumi.Input[int] host_error_timeout_seconds: Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
12099
12125
  :param pulumi.Input[str] instance_termination_action: Specifies the action GCE should take when SPOT VM is preempted.
12100
12126
  :param pulumi.Input['InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
12101
12127
  recovery of the Local Ssd state is attempted. Its value should be in
@@ -12111,6 +12137,8 @@ class InstanceFromMachineImageSchedulingArgs:
12111
12137
  """
12112
12138
  if automatic_restart is not None:
12113
12139
  pulumi.set(__self__, "automatic_restart", automatic_restart)
12140
+ if host_error_timeout_seconds is not None:
12141
+ pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
12114
12142
  if instance_termination_action is not None:
12115
12143
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
12116
12144
  if local_ssd_recovery_timeout is not None:
@@ -12144,6 +12172,18 @@ class InstanceFromMachineImageSchedulingArgs:
12144
12172
  def automatic_restart(self, value: Optional[pulumi.Input[bool]]):
12145
12173
  pulumi.set(self, "automatic_restart", value)
12146
12174
 
12175
+ @property
12176
+ @pulumi.getter(name="hostErrorTimeoutSeconds")
12177
+ def host_error_timeout_seconds(self) -> Optional[pulumi.Input[int]]:
12178
+ """
12179
+ Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
12180
+ """
12181
+ return pulumi.get(self, "host_error_timeout_seconds")
12182
+
12183
+ @host_error_timeout_seconds.setter
12184
+ def host_error_timeout_seconds(self, value: Optional[pulumi.Input[int]]):
12185
+ pulumi.set(self, "host_error_timeout_seconds", value)
12186
+
12147
12187
  @property
12148
12188
  @pulumi.getter(name="instanceTerminationAction")
12149
12189
  def instance_termination_action(self) -> Optional[pulumi.Input[str]]:
@@ -14163,6 +14203,10 @@ if not MYPY:
14163
14203
  """
14164
14204
  Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
14165
14205
  """
14206
+ host_error_timeout_seconds: NotRequired[pulumi.Input[int]]
14207
+ """
14208
+ Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
14209
+ """
14166
14210
  instance_termination_action: NotRequired[pulumi.Input[str]]
14167
14211
  """
14168
14212
  Specifies the action GCE should take when SPOT VM is preempted.
@@ -14210,6 +14254,7 @@ elif False:
14210
14254
  class InstanceFromTemplateSchedulingArgs:
14211
14255
  def __init__(__self__, *,
14212
14256
  automatic_restart: Optional[pulumi.Input[bool]] = None,
14257
+ host_error_timeout_seconds: Optional[pulumi.Input[int]] = None,
14213
14258
  instance_termination_action: Optional[pulumi.Input[str]] = None,
14214
14259
  local_ssd_recovery_timeout: Optional[pulumi.Input['InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs']] = None,
14215
14260
  maintenance_interval: Optional[pulumi.Input[str]] = None,
@@ -14222,6 +14267,7 @@ class InstanceFromTemplateSchedulingArgs:
14222
14267
  provisioning_model: Optional[pulumi.Input[str]] = None):
14223
14268
  """
14224
14269
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
14270
+ :param pulumi.Input[int] host_error_timeout_seconds: Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
14225
14271
  :param pulumi.Input[str] instance_termination_action: Specifies the action GCE should take when SPOT VM is preempted.
14226
14272
  :param pulumi.Input['InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
14227
14273
  recovery of the Local Ssd state is attempted. Its value should be in
@@ -14237,6 +14283,8 @@ class InstanceFromTemplateSchedulingArgs:
14237
14283
  """
14238
14284
  if automatic_restart is not None:
14239
14285
  pulumi.set(__self__, "automatic_restart", automatic_restart)
14286
+ if host_error_timeout_seconds is not None:
14287
+ pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
14240
14288
  if instance_termination_action is not None:
14241
14289
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
14242
14290
  if local_ssd_recovery_timeout is not None:
@@ -14270,6 +14318,18 @@ class InstanceFromTemplateSchedulingArgs:
14270
14318
  def automatic_restart(self, value: Optional[pulumi.Input[bool]]):
14271
14319
  pulumi.set(self, "automatic_restart", value)
14272
14320
 
14321
+ @property
14322
+ @pulumi.getter(name="hostErrorTimeoutSeconds")
14323
+ def host_error_timeout_seconds(self) -> Optional[pulumi.Input[int]]:
14324
+ """
14325
+ Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
14326
+ """
14327
+ return pulumi.get(self, "host_error_timeout_seconds")
14328
+
14329
+ @host_error_timeout_seconds.setter
14330
+ def host_error_timeout_seconds(self, value: Optional[pulumi.Input[int]]):
14331
+ pulumi.set(self, "host_error_timeout_seconds", value)
14332
+
14273
14333
  @property
14274
14334
  @pulumi.getter(name="instanceTerminationAction")
14275
14335
  def instance_termination_action(self) -> Optional[pulumi.Input[str]]:
@@ -16976,6 +17036,10 @@ if not MYPY:
16976
17036
  restarted if it was terminated by Compute Engine (not a user).
16977
17037
  Defaults to true.
16978
17038
  """
17039
+ host_error_timeout_seconds: NotRequired[pulumi.Input[int]]
17040
+ """
17041
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
17042
+ """
16979
17043
  instance_termination_action: NotRequired[pulumi.Input[str]]
16980
17044
  """
16981
17045
  Describe the type of termination action for VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
@@ -17037,6 +17101,7 @@ elif False:
17037
17101
  class InstanceSchedulingArgs:
17038
17102
  def __init__(__self__, *,
17039
17103
  automatic_restart: Optional[pulumi.Input[bool]] = None,
17104
+ host_error_timeout_seconds: Optional[pulumi.Input[int]] = None,
17040
17105
  instance_termination_action: Optional[pulumi.Input[str]] = None,
17041
17106
  local_ssd_recovery_timeout: Optional[pulumi.Input['InstanceSchedulingLocalSsdRecoveryTimeoutArgs']] = None,
17042
17107
  maintenance_interval: Optional[pulumi.Input[str]] = None,
@@ -17051,6 +17116,7 @@ class InstanceSchedulingArgs:
17051
17116
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be
17052
17117
  restarted if it was terminated by Compute Engine (not a user).
17053
17118
  Defaults to true.
17119
+ :param pulumi.Input[int] host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
17054
17120
  :param pulumi.Input[str] instance_termination_action: Describe the type of termination action for VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
17055
17121
  :param pulumi.Input['InstanceSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
17056
17122
  recovery of the Local Ssd state is attempted. Its value should be in
@@ -17078,6 +17144,8 @@ class InstanceSchedulingArgs:
17078
17144
  """
17079
17145
  if automatic_restart is not None:
17080
17146
  pulumi.set(__self__, "automatic_restart", automatic_restart)
17147
+ if host_error_timeout_seconds is not None:
17148
+ pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
17081
17149
  if instance_termination_action is not None:
17082
17150
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
17083
17151
  if local_ssd_recovery_timeout is not None:
@@ -17113,6 +17181,18 @@ class InstanceSchedulingArgs:
17113
17181
  def automatic_restart(self, value: Optional[pulumi.Input[bool]]):
17114
17182
  pulumi.set(self, "automatic_restart", value)
17115
17183
 
17184
+ @property
17185
+ @pulumi.getter(name="hostErrorTimeoutSeconds")
17186
+ def host_error_timeout_seconds(self) -> Optional[pulumi.Input[int]]:
17187
+ """
17188
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
17189
+ """
17190
+ return pulumi.get(self, "host_error_timeout_seconds")
17191
+
17192
+ @host_error_timeout_seconds.setter
17193
+ def host_error_timeout_seconds(self, value: Optional[pulumi.Input[int]]):
17194
+ pulumi.set(self, "host_error_timeout_seconds", value)
17195
+
17116
17196
  @property
17117
17197
  @pulumi.getter(name="instanceTerminationAction")
17118
17198
  def instance_termination_action(self) -> Optional[pulumi.Input[str]]:
@@ -19338,6 +19418,10 @@ if not MYPY:
19338
19418
  automatically restarted if it is terminated by Compute Engine (not
19339
19419
  terminated by a user). This defaults to true.
19340
19420
  """
19421
+ host_error_timeout_seconds: NotRequired[pulumi.Input[int]]
19422
+ """
19423
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
19424
+ """
19341
19425
  instance_termination_action: NotRequired[pulumi.Input[str]]
19342
19426
  """
19343
19427
  Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
@@ -19398,6 +19482,7 @@ elif False:
19398
19482
  class InstanceTemplateSchedulingArgs:
19399
19483
  def __init__(__self__, *,
19400
19484
  automatic_restart: Optional[pulumi.Input[bool]] = None,
19485
+ host_error_timeout_seconds: Optional[pulumi.Input[int]] = None,
19401
19486
  instance_termination_action: Optional[pulumi.Input[str]] = None,
19402
19487
  local_ssd_recovery_timeouts: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs']]]] = None,
19403
19488
  maintenance_interval: Optional[pulumi.Input[str]] = None,
@@ -19412,6 +19497,7 @@ class InstanceTemplateSchedulingArgs:
19412
19497
  :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be
19413
19498
  automatically restarted if it is terminated by Compute Engine (not
19414
19499
  terminated by a user). This defaults to true.
19500
+ :param pulumi.Input[int] host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
19415
19501
  :param pulumi.Input[str] instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
19416
19502
  :param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs']]] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
19417
19503
  recovery of the Local Ssd state is attempted. Its value should be in
@@ -19438,6 +19524,8 @@ class InstanceTemplateSchedulingArgs:
19438
19524
  """
19439
19525
  if automatic_restart is not None:
19440
19526
  pulumi.set(__self__, "automatic_restart", automatic_restart)
19527
+ if host_error_timeout_seconds is not None:
19528
+ pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
19441
19529
  if instance_termination_action is not None:
19442
19530
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
19443
19531
  if local_ssd_recovery_timeouts is not None:
@@ -19473,6 +19561,18 @@ class InstanceTemplateSchedulingArgs:
19473
19561
  def automatic_restart(self, value: Optional[pulumi.Input[bool]]):
19474
19562
  pulumi.set(self, "automatic_restart", value)
19475
19563
 
19564
+ @property
19565
+ @pulumi.getter(name="hostErrorTimeoutSeconds")
19566
+ def host_error_timeout_seconds(self) -> Optional[pulumi.Input[int]]:
19567
+ """
19568
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
19569
+ """
19570
+ return pulumi.get(self, "host_error_timeout_seconds")
19571
+
19572
+ @host_error_timeout_seconds.setter
19573
+ def host_error_timeout_seconds(self, value: Optional[pulumi.Input[int]]):
19574
+ pulumi.set(self, "host_error_timeout_seconds", value)
19575
+
19476
19576
  @property
19477
19577
  @pulumi.getter(name="instanceTerminationAction")
19478
19578
  def instance_termination_action(self) -> Optional[pulumi.Input[str]]:
@@ -20372,21 +20472,37 @@ if not MYPY:
20372
20472
  or re-establishing a MACsec secure link.
20373
20473
  Structure is documented below.
20374
20474
  """
20475
+ fail_open: NotRequired[pulumi.Input[bool]]
20476
+ """
20477
+ If set to true, the Interconnect connection is configured with a should-secure
20478
+ MACsec security policy, that allows the Google router to fallback to cleartext
20479
+ traffic if the MKA session cannot be established. By default, the Interconnect
20480
+ connection is configured with a must-secure security policy that drops all traffic
20481
+ if the MKA session cannot be established with your router.
20482
+ """
20375
20483
  elif False:
20376
20484
  InterconnectMacsecArgsDict: TypeAlias = Mapping[str, Any]
20377
20485
 
20378
20486
  @pulumi.input_type
20379
20487
  class InterconnectMacsecArgs:
20380
20488
  def __init__(__self__, *,
20381
- pre_shared_keys: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
20489
+ pre_shared_keys: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]],
20490
+ fail_open: Optional[pulumi.Input[bool]] = None):
20382
20491
  """
20383
20492
  :param pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]] pre_shared_keys: A keychain placeholder describing a set of named key objects along with their
20384
20493
  start times. A MACsec CKN/CAK is generated for each key in the key chain.
20385
20494
  Google router automatically picks the key with the most recent startTime when establishing
20386
20495
  or re-establishing a MACsec secure link.
20387
20496
  Structure is documented below.
20497
+ :param pulumi.Input[bool] fail_open: If set to true, the Interconnect connection is configured with a should-secure
20498
+ MACsec security policy, that allows the Google router to fallback to cleartext
20499
+ traffic if the MKA session cannot be established. By default, the Interconnect
20500
+ connection is configured with a must-secure security policy that drops all traffic
20501
+ if the MKA session cannot be established with your router.
20388
20502
  """
20389
20503
  pulumi.set(__self__, "pre_shared_keys", pre_shared_keys)
20504
+ if fail_open is not None:
20505
+ pulumi.set(__self__, "fail_open", fail_open)
20390
20506
 
20391
20507
  @property
20392
20508
  @pulumi.getter(name="preSharedKeys")
@@ -20404,6 +20520,22 @@ class InterconnectMacsecArgs:
20404
20520
  def pre_shared_keys(self, value: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
20405
20521
  pulumi.set(self, "pre_shared_keys", value)
20406
20522
 
20523
+ @property
20524
+ @pulumi.getter(name="failOpen")
20525
+ def fail_open(self) -> Optional[pulumi.Input[bool]]:
20526
+ """
20527
+ If set to true, the Interconnect connection is configured with a should-secure
20528
+ MACsec security policy, that allows the Google router to fallback to cleartext
20529
+ traffic if the MKA session cannot be established. By default, the Interconnect
20530
+ connection is configured with a must-secure security policy that drops all traffic
20531
+ if the MKA session cannot be established with your router.
20532
+ """
20533
+ return pulumi.get(self, "fail_open")
20534
+
20535
+ @fail_open.setter
20536
+ def fail_open(self, value: Optional[pulumi.Input[bool]]):
20537
+ pulumi.set(self, "fail_open", value)
20538
+
20407
20539
 
20408
20540
  if not MYPY:
20409
20541
  class InterconnectMacsecPreSharedKeyArgsDict(TypedDict):
@@ -20417,11 +20549,14 @@ if not MYPY:
20417
20549
  """
20418
20550
  fail_open: NotRequired[pulumi.Input[bool]]
20419
20551
  """
20552
+ (Optional, Deprecated)
20420
20553
  If set to true, the Interconnect connection is configured with a should-secure
20421
20554
  MACsec security policy, that allows the Google router to fallback to cleartext
20422
20555
  traffic if the MKA session cannot be established. By default, the Interconnect
20423
20556
  connection is configured with a must-secure security policy that drops all traffic
20424
20557
  if the MKA session cannot be established with your router.
20558
+
20559
+ > **Warning:** `failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.
20425
20560
  """
20426
20561
  start_time: NotRequired[pulumi.Input[str]]
20427
20562
  """
@@ -20446,11 +20581,14 @@ class InterconnectMacsecPreSharedKeyArgs:
20446
20581
  the regular expression `a-z?` which means the first character
20447
20582
  must be a lowercase letter, and all following characters must be a dash, lowercase
20448
20583
  letter, or digit, except the last character, which cannot be a dash.
20449
- :param pulumi.Input[bool] fail_open: If set to true, the Interconnect connection is configured with a should-secure
20584
+ :param pulumi.Input[bool] fail_open: (Optional, Deprecated)
20585
+ If set to true, the Interconnect connection is configured with a should-secure
20450
20586
  MACsec security policy, that allows the Google router to fallback to cleartext
20451
20587
  traffic if the MKA session cannot be established. By default, the Interconnect
20452
20588
  connection is configured with a must-secure security policy that drops all traffic
20453
20589
  if the MKA session cannot be established with your router.
20590
+
20591
+ > **Warning:** `failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.
20454
20592
  :param pulumi.Input[str] start_time: A RFC3339 timestamp on or after which the key is valid. startTime can be in the
20455
20593
  future. If the keychain has a single key, startTime can be omitted. If the keychain
20456
20594
  has multiple keys, startTime is mandatory for each key. The start times of keys must
@@ -20458,6 +20596,9 @@ class InterconnectMacsecPreSharedKeyArgs:
20458
20596
  hours apart.
20459
20597
  """
20460
20598
  pulumi.set(__self__, "name", name)
20599
+ if fail_open is not None:
20600
+ warnings.warn("""`failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.""", DeprecationWarning)
20601
+ pulumi.log.warn("""fail_open is deprecated: `failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.""")
20461
20602
  if fail_open is not None:
20462
20603
  pulumi.set(__self__, "fail_open", fail_open)
20463
20604
  if start_time is not None:
@@ -20481,13 +20622,17 @@ class InterconnectMacsecPreSharedKeyArgs:
20481
20622
 
20482
20623
  @property
20483
20624
  @pulumi.getter(name="failOpen")
20625
+ @_utilities.deprecated("""`failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.""")
20484
20626
  def fail_open(self) -> Optional[pulumi.Input[bool]]:
20485
20627
  """
20628
+ (Optional, Deprecated)
20486
20629
  If set to true, the Interconnect connection is configured with a should-secure
20487
20630
  MACsec security policy, that allows the Google router to fallback to cleartext
20488
20631
  traffic if the MKA session cannot be established. By default, the Interconnect
20489
20632
  connection is configured with a must-secure security policy that drops all traffic
20490
20633
  if the MKA session cannot be established with your router.
20634
+
20635
+ > **Warning:** `failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.
20491
20636
  """
20492
20637
  return pulumi.get(self, "fail_open")
20493
20638
 
@@ -32403,6 +32548,10 @@ if not MYPY:
32403
32548
  automatically restarted if it is terminated by Compute Engine (not
32404
32549
  terminated by a user). This defaults to true.
32405
32550
  """
32551
+ host_error_timeout_seconds: NotRequired[pulumi.Input[int]]
32552
+ """
32553
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
32554
+ """
32406
32555
  instance_termination_action: NotRequired[pulumi.Input[str]]
32407
32556
  """
32408
32557
  Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
@@ -32463,6 +32612,7 @@ elif False:
32463
32612
  class RegionInstanceTemplateSchedulingArgs:
32464
32613
  def __init__(__self__, *,
32465
32614
  automatic_restart: Optional[pulumi.Input[bool]] = None,
32615
+ host_error_timeout_seconds: Optional[pulumi.Input[int]] = None,
32466
32616
  instance_termination_action: Optional[pulumi.Input[str]] = None,
32467
32617
  local_ssd_recovery_timeouts: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs']]]] = None,
32468
32618
  maintenance_interval: Optional[pulumi.Input[str]] = None,
@@ -32477,6 +32627,7 @@ class RegionInstanceTemplateSchedulingArgs:
32477
32627
  :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be
32478
32628
  automatically restarted if it is terminated by Compute Engine (not
32479
32629
  terminated by a user). This defaults to true.
32630
+ :param pulumi.Input[int] host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
32480
32631
  :param pulumi.Input[str] instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
32481
32632
  :param pulumi.Input[Sequence[pulumi.Input['RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs']]] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
32482
32633
  recovery of the Local Ssd state is attempted. Its value should be in
@@ -32503,6 +32654,8 @@ class RegionInstanceTemplateSchedulingArgs:
32503
32654
  """
32504
32655
  if automatic_restart is not None:
32505
32656
  pulumi.set(__self__, "automatic_restart", automatic_restart)
32657
+ if host_error_timeout_seconds is not None:
32658
+ pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
32506
32659
  if instance_termination_action is not None:
32507
32660
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
32508
32661
  if local_ssd_recovery_timeouts is not None:
@@ -32538,6 +32691,18 @@ class RegionInstanceTemplateSchedulingArgs:
32538
32691
  def automatic_restart(self, value: Optional[pulumi.Input[bool]]):
32539
32692
  pulumi.set(self, "automatic_restart", value)
32540
32693
 
32694
+ @property
32695
+ @pulumi.getter(name="hostErrorTimeoutSeconds")
32696
+ def host_error_timeout_seconds(self) -> Optional[pulumi.Input[int]]:
32697
+ """
32698
+ Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
32699
+ """
32700
+ return pulumi.get(self, "host_error_timeout_seconds")
32701
+
32702
+ @host_error_timeout_seconds.setter
32703
+ def host_error_timeout_seconds(self, value: Optional[pulumi.Input[int]]):
32704
+ pulumi.set(self, "host_error_timeout_seconds", value)
32705
+
32541
32706
  @property
32542
32707
  @pulumi.getter(name="instanceTerminationAction")
32543
32708
  def instance_termination_action(self) -> Optional[pulumi.Input[str]]:
@@ -33860,6 +34025,1780 @@ class RegionNetworkFirewallPolicyRuleTargetSecureTagArgs:
33860
34025
  pulumi.set(self, "state", value)
33861
34026
 
33862
34027
 
34028
+ if not MYPY:
34029
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgsDict(TypedDict):
34030
+ action: NotRequired[pulumi.Input[str]]
34031
+ """
34032
+ (Output)
34033
+ The Action to perform when the client connection triggers the rule. Can currently be either
34034
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
34035
+ """
34036
+ description: NotRequired[pulumi.Input[str]]
34037
+ """
34038
+ (Output)
34039
+ A description of the rule.
34040
+ """
34041
+ direction: NotRequired[pulumi.Input[str]]
34042
+ """
34043
+ (Output)
34044
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
34045
+ """
34046
+ disabled: NotRequired[pulumi.Input[bool]]
34047
+ """
34048
+ (Output)
34049
+ Denotes whether the firewall policy rule is disabled. When set to true,
34050
+ the firewall policy rule is not enforced and traffic behaves as if it did
34051
+ not exist. If this is unspecified, the firewall policy rule will be
34052
+ enabled.
34053
+ """
34054
+ enable_logging: NotRequired[pulumi.Input[bool]]
34055
+ """
34056
+ (Output)
34057
+ Denotes whether to enable logging for a particular rule.
34058
+ If logging is enabled, logs will be exported to the
34059
+ configured export destination in Stackdriver.
34060
+ """
34061
+ matches: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict']]]]
34062
+ """
34063
+ (Output)
34064
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
34065
+ Structure is documented below.
34066
+ """
34067
+ priority: NotRequired[pulumi.Input[int]]
34068
+ """
34069
+ (Output)
34070
+ An integer indicating the priority of a rule in the list. The priority must be a value
34071
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
34072
+ highest priority and 2147483647 is the lowest priority.
34073
+ """
34074
+ rule_name: NotRequired[pulumi.Input[str]]
34075
+ """
34076
+ (Output)
34077
+ An optional name for the rule. This field is not a unique identifier
34078
+ and can be updated.
34079
+ """
34080
+ security_profile_group: NotRequired[pulumi.Input[str]]
34081
+ """
34082
+ (Output)
34083
+ A fully-qualified URL of a SecurityProfile resource instance.
34084
+ Example:
34085
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
34086
+ Must be specified if action is 'apply_security_profile_group'.
34087
+ """
34088
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict']]]]
34089
+ """
34090
+ (Output)
34091
+ A list of secure tags that controls which instances the firewall rule
34092
+ applies to. If <code>targetSecureTag</code> are specified, then the
34093
+ firewall rule applies only to instances in the VPC network that have one
34094
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
34095
+ INEFFECTIVE state, then this rule will be ignored.
34096
+ <code>targetSecureTag</code> may not be set at the same time as
34097
+ <code>targetServiceAccounts</code>.
34098
+ If neither <code>targetServiceAccounts</code> nor
34099
+ <code>targetSecureTag</code> are specified, the firewall rule applies
34100
+ to all instances on the specified network.
34101
+ Maximum number of target label tags allowed is 256.
34102
+ Structure is documented below.
34103
+ """
34104
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34105
+ """
34106
+ (Output)
34107
+ A list of service accounts indicating the sets of
34108
+ instances that are applied with this rule.
34109
+ """
34110
+ tls_inspect: NotRequired[pulumi.Input[bool]]
34111
+ """
34112
+ (Output)
34113
+ Boolean flag indicating if the traffic should be TLS decrypted.
34114
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
34115
+ """
34116
+ elif False:
34117
+ RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgsDict: TypeAlias = Mapping[str, Any]
34118
+
34119
+ @pulumi.input_type
34120
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleArgs:
34121
+ def __init__(__self__, *,
34122
+ action: Optional[pulumi.Input[str]] = None,
34123
+ description: Optional[pulumi.Input[str]] = None,
34124
+ direction: Optional[pulumi.Input[str]] = None,
34125
+ disabled: Optional[pulumi.Input[bool]] = None,
34126
+ enable_logging: Optional[pulumi.Input[bool]] = None,
34127
+ matches: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]] = None,
34128
+ priority: Optional[pulumi.Input[int]] = None,
34129
+ rule_name: Optional[pulumi.Input[str]] = None,
34130
+ security_profile_group: Optional[pulumi.Input[str]] = None,
34131
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]] = None,
34132
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34133
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
34134
+ """
34135
+ :param pulumi.Input[str] action: (Output)
34136
+ The Action to perform when the client connection triggers the rule. Can currently be either
34137
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
34138
+ :param pulumi.Input[str] description: (Output)
34139
+ A description of the rule.
34140
+ :param pulumi.Input[str] direction: (Output)
34141
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
34142
+ :param pulumi.Input[bool] disabled: (Output)
34143
+ Denotes whether the firewall policy rule is disabled. When set to true,
34144
+ the firewall policy rule is not enforced and traffic behaves as if it did
34145
+ not exist. If this is unspecified, the firewall policy rule will be
34146
+ enabled.
34147
+ :param pulumi.Input[bool] enable_logging: (Output)
34148
+ Denotes whether to enable logging for a particular rule.
34149
+ If logging is enabled, logs will be exported to the
34150
+ configured export destination in Stackdriver.
34151
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]] matches: (Output)
34152
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
34153
+ Structure is documented below.
34154
+ :param pulumi.Input[int] priority: (Output)
34155
+ An integer indicating the priority of a rule in the list. The priority must be a value
34156
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
34157
+ highest priority and 2147483647 is the lowest priority.
34158
+ :param pulumi.Input[str] rule_name: (Output)
34159
+ An optional name for the rule. This field is not a unique identifier
34160
+ and can be updated.
34161
+ :param pulumi.Input[str] security_profile_group: (Output)
34162
+ A fully-qualified URL of a SecurityProfile resource instance.
34163
+ Example:
34164
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
34165
+ Must be specified if action is 'apply_security_profile_group'.
34166
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]] target_secure_tags: (Output)
34167
+ A list of secure tags that controls which instances the firewall rule
34168
+ applies to. If <code>targetSecureTag</code> are specified, then the
34169
+ firewall rule applies only to instances in the VPC network that have one
34170
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
34171
+ INEFFECTIVE state, then this rule will be ignored.
34172
+ <code>targetSecureTag</code> may not be set at the same time as
34173
+ <code>targetServiceAccounts</code>.
34174
+ If neither <code>targetServiceAccounts</code> nor
34175
+ <code>targetSecureTag</code> are specified, the firewall rule applies
34176
+ to all instances on the specified network.
34177
+ Maximum number of target label tags allowed is 256.
34178
+ Structure is documented below.
34179
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: (Output)
34180
+ A list of service accounts indicating the sets of
34181
+ instances that are applied with this rule.
34182
+ :param pulumi.Input[bool] tls_inspect: (Output)
34183
+ Boolean flag indicating if the traffic should be TLS decrypted.
34184
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
34185
+ """
34186
+ if action is not None:
34187
+ pulumi.set(__self__, "action", action)
34188
+ if description is not None:
34189
+ pulumi.set(__self__, "description", description)
34190
+ if direction is not None:
34191
+ pulumi.set(__self__, "direction", direction)
34192
+ if disabled is not None:
34193
+ pulumi.set(__self__, "disabled", disabled)
34194
+ if enable_logging is not None:
34195
+ pulumi.set(__self__, "enable_logging", enable_logging)
34196
+ if matches is not None:
34197
+ pulumi.set(__self__, "matches", matches)
34198
+ if priority is not None:
34199
+ pulumi.set(__self__, "priority", priority)
34200
+ if rule_name is not None:
34201
+ pulumi.set(__self__, "rule_name", rule_name)
34202
+ if security_profile_group is not None:
34203
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
34204
+ if target_secure_tags is not None:
34205
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
34206
+ if target_service_accounts is not None:
34207
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
34208
+ if tls_inspect is not None:
34209
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
34210
+
34211
+ @property
34212
+ @pulumi.getter
34213
+ def action(self) -> Optional[pulumi.Input[str]]:
34214
+ """
34215
+ (Output)
34216
+ The Action to perform when the client connection triggers the rule. Can currently be either
34217
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
34218
+ """
34219
+ return pulumi.get(self, "action")
34220
+
34221
+ @action.setter
34222
+ def action(self, value: Optional[pulumi.Input[str]]):
34223
+ pulumi.set(self, "action", value)
34224
+
34225
+ @property
34226
+ @pulumi.getter
34227
+ def description(self) -> Optional[pulumi.Input[str]]:
34228
+ """
34229
+ (Output)
34230
+ A description of the rule.
34231
+ """
34232
+ return pulumi.get(self, "description")
34233
+
34234
+ @description.setter
34235
+ def description(self, value: Optional[pulumi.Input[str]]):
34236
+ pulumi.set(self, "description", value)
34237
+
34238
+ @property
34239
+ @pulumi.getter
34240
+ def direction(self) -> Optional[pulumi.Input[str]]:
34241
+ """
34242
+ (Output)
34243
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
34244
+ """
34245
+ return pulumi.get(self, "direction")
34246
+
34247
+ @direction.setter
34248
+ def direction(self, value: Optional[pulumi.Input[str]]):
34249
+ pulumi.set(self, "direction", value)
34250
+
34251
+ @property
34252
+ @pulumi.getter
34253
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
34254
+ """
34255
+ (Output)
34256
+ Denotes whether the firewall policy rule is disabled. When set to true,
34257
+ the firewall policy rule is not enforced and traffic behaves as if it did
34258
+ not exist. If this is unspecified, the firewall policy rule will be
34259
+ enabled.
34260
+ """
34261
+ return pulumi.get(self, "disabled")
34262
+
34263
+ @disabled.setter
34264
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
34265
+ pulumi.set(self, "disabled", value)
34266
+
34267
+ @property
34268
+ @pulumi.getter(name="enableLogging")
34269
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
34270
+ """
34271
+ (Output)
34272
+ Denotes whether to enable logging for a particular rule.
34273
+ If logging is enabled, logs will be exported to the
34274
+ configured export destination in Stackdriver.
34275
+ """
34276
+ return pulumi.get(self, "enable_logging")
34277
+
34278
+ @enable_logging.setter
34279
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
34280
+ pulumi.set(self, "enable_logging", value)
34281
+
34282
+ @property
34283
+ @pulumi.getter
34284
+ def matches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]:
34285
+ """
34286
+ (Output)
34287
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
34288
+ Structure is documented below.
34289
+ """
34290
+ return pulumi.get(self, "matches")
34291
+
34292
+ @matches.setter
34293
+ def matches(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs']]]]):
34294
+ pulumi.set(self, "matches", value)
34295
+
34296
+ @property
34297
+ @pulumi.getter
34298
+ def priority(self) -> Optional[pulumi.Input[int]]:
34299
+ """
34300
+ (Output)
34301
+ An integer indicating the priority of a rule in the list. The priority must be a value
34302
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
34303
+ highest priority and 2147483647 is the lowest priority.
34304
+ """
34305
+ return pulumi.get(self, "priority")
34306
+
34307
+ @priority.setter
34308
+ def priority(self, value: Optional[pulumi.Input[int]]):
34309
+ pulumi.set(self, "priority", value)
34310
+
34311
+ @property
34312
+ @pulumi.getter(name="ruleName")
34313
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
34314
+ """
34315
+ (Output)
34316
+ An optional name for the rule. This field is not a unique identifier
34317
+ and can be updated.
34318
+ """
34319
+ return pulumi.get(self, "rule_name")
34320
+
34321
+ @rule_name.setter
34322
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
34323
+ pulumi.set(self, "rule_name", value)
34324
+
34325
+ @property
34326
+ @pulumi.getter(name="securityProfileGroup")
34327
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
34328
+ """
34329
+ (Output)
34330
+ A fully-qualified URL of a SecurityProfile resource instance.
34331
+ Example:
34332
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
34333
+ Must be specified if action is 'apply_security_profile_group'.
34334
+ """
34335
+ return pulumi.get(self, "security_profile_group")
34336
+
34337
+ @security_profile_group.setter
34338
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
34339
+ pulumi.set(self, "security_profile_group", value)
34340
+
34341
+ @property
34342
+ @pulumi.getter(name="targetSecureTags")
34343
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]:
34344
+ """
34345
+ (Output)
34346
+ A list of secure tags that controls which instances the firewall rule
34347
+ applies to. If <code>targetSecureTag</code> are specified, then the
34348
+ firewall rule applies only to instances in the VPC network that have one
34349
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
34350
+ INEFFECTIVE state, then this rule will be ignored.
34351
+ <code>targetSecureTag</code> may not be set at the same time as
34352
+ <code>targetServiceAccounts</code>.
34353
+ If neither <code>targetServiceAccounts</code> nor
34354
+ <code>targetSecureTag</code> are specified, the firewall rule applies
34355
+ to all instances on the specified network.
34356
+ Maximum number of target label tags allowed is 256.
34357
+ Structure is documented below.
34358
+ """
34359
+ return pulumi.get(self, "target_secure_tags")
34360
+
34361
+ @target_secure_tags.setter
34362
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]):
34363
+ pulumi.set(self, "target_secure_tags", value)
34364
+
34365
+ @property
34366
+ @pulumi.getter(name="targetServiceAccounts")
34367
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34368
+ """
34369
+ (Output)
34370
+ A list of service accounts indicating the sets of
34371
+ instances that are applied with this rule.
34372
+ """
34373
+ return pulumi.get(self, "target_service_accounts")
34374
+
34375
+ @target_service_accounts.setter
34376
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34377
+ pulumi.set(self, "target_service_accounts", value)
34378
+
34379
+ @property
34380
+ @pulumi.getter(name="tlsInspect")
34381
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
34382
+ """
34383
+ (Output)
34384
+ Boolean flag indicating if the traffic should be TLS decrypted.
34385
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
34386
+ """
34387
+ return pulumi.get(self, "tls_inspect")
34388
+
34389
+ @tls_inspect.setter
34390
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
34391
+ pulumi.set(self, "tls_inspect", value)
34392
+
34393
+
34394
+ if not MYPY:
34395
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict(TypedDict):
34396
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34397
+ """
34398
+ Address groups which should be matched against the traffic destination.
34399
+ Maximum number of destination address groups is 10.
34400
+ """
34401
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34402
+ """
34403
+ Fully Qualified Domain Name (FQDN) which should be matched against
34404
+ traffic destination. Maximum number of destination fqdn allowed is 100.
34405
+ """
34406
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34407
+ """
34408
+ Destination IP address range in CIDR format. Required for
34409
+ EGRESS rules.
34410
+ """
34411
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34412
+ """
34413
+ Region codes whose IP addresses will be used to match for destination
34414
+ of traffic. Should be specified as 2 letter country code defined as per
34415
+ ISO 3166 alpha-2 country codes. ex."US"
34416
+ Maximum number of destination region codes allowed is 5000.
34417
+ """
34418
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34419
+ """
34420
+ Names of Network Threat Intelligence lists.
34421
+ The IPs in these lists will be matched against traffic destination.
34422
+ """
34423
+ layer4_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict']]]]
34424
+ """
34425
+ Pairs of IP protocols and ports that the rule should match.
34426
+ Structure is documented below.
34427
+ """
34428
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34429
+ """
34430
+ Address groups which should be matched against the traffic source.
34431
+ Maximum number of source address groups is 10.
34432
+ """
34433
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34434
+ """
34435
+ Fully Qualified Domain Name (FQDN) which should be matched against
34436
+ traffic source. Maximum number of source fqdn allowed is 100.
34437
+ """
34438
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34439
+ """
34440
+ Source IP address range in CIDR format. Required for
34441
+ INGRESS rules.
34442
+ """
34443
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34444
+ """
34445
+ Region codes whose IP addresses will be used to match for source
34446
+ of traffic. Should be specified as 2 letter country code defined as per
34447
+ ISO 3166 alpha-2 country codes. ex."US"
34448
+ Maximum number of source region codes allowed is 5000.
34449
+ """
34450
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict']]]]
34451
+ """
34452
+ List of secure tag values, which should be matched at the source
34453
+ of the traffic.
34454
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
34455
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
34456
+ Maximum number of source tag values allowed is 256.
34457
+ Structure is documented below.
34458
+
34459
+
34460
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
34461
+ """
34462
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34463
+ """
34464
+ Names of Network Threat Intelligence lists.
34465
+ The IPs in these lists will be matched against traffic source.
34466
+ """
34467
+ elif False:
34468
+ RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
34469
+
34470
+ @pulumi.input_type
34471
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchArgs:
34472
+ def __init__(__self__, *,
34473
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34474
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34475
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34476
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34477
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34478
+ layer4_configs: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]] = None,
34479
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34480
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34481
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34482
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34483
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]] = None,
34484
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
34485
+ """
34486
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
34487
+ Maximum number of destination address groups is 10.
34488
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
34489
+ traffic destination. Maximum number of destination fqdn allowed is 100.
34490
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
34491
+ EGRESS rules.
34492
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
34493
+ of traffic. Should be specified as 2 letter country code defined as per
34494
+ ISO 3166 alpha-2 country codes. ex."US"
34495
+ Maximum number of destination region codes allowed is 5000.
34496
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
34497
+ The IPs in these lists will be matched against traffic destination.
34498
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
34499
+ Structure is documented below.
34500
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
34501
+ Maximum number of source address groups is 10.
34502
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
34503
+ traffic source. Maximum number of source fqdn allowed is 100.
34504
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
34505
+ INGRESS rules.
34506
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
34507
+ of traffic. Should be specified as 2 letter country code defined as per
34508
+ ISO 3166 alpha-2 country codes. ex."US"
34509
+ Maximum number of source region codes allowed is 5000.
34510
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
34511
+ of the traffic.
34512
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
34513
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
34514
+ Maximum number of source tag values allowed is 256.
34515
+ Structure is documented below.
34516
+
34517
+
34518
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
34519
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
34520
+ The IPs in these lists will be matched against traffic source.
34521
+ """
34522
+ if dest_address_groups is not None:
34523
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
34524
+ if dest_fqdns is not None:
34525
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
34526
+ if dest_ip_ranges is not None:
34527
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
34528
+ if dest_region_codes is not None:
34529
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
34530
+ if dest_threat_intelligences is not None:
34531
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
34532
+ if layer4_configs is not None:
34533
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
34534
+ if src_address_groups is not None:
34535
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
34536
+ if src_fqdns is not None:
34537
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
34538
+ if src_ip_ranges is not None:
34539
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
34540
+ if src_region_codes is not None:
34541
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
34542
+ if src_secure_tags is not None:
34543
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
34544
+ if src_threat_intelligences is not None:
34545
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
34546
+
34547
+ @property
34548
+ @pulumi.getter(name="destAddressGroups")
34549
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34550
+ """
34551
+ Address groups which should be matched against the traffic destination.
34552
+ Maximum number of destination address groups is 10.
34553
+ """
34554
+ return pulumi.get(self, "dest_address_groups")
34555
+
34556
+ @dest_address_groups.setter
34557
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34558
+ pulumi.set(self, "dest_address_groups", value)
34559
+
34560
+ @property
34561
+ @pulumi.getter(name="destFqdns")
34562
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34563
+ """
34564
+ Fully Qualified Domain Name (FQDN) which should be matched against
34565
+ traffic destination. Maximum number of destination fqdn allowed is 100.
34566
+ """
34567
+ return pulumi.get(self, "dest_fqdns")
34568
+
34569
+ @dest_fqdns.setter
34570
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34571
+ pulumi.set(self, "dest_fqdns", value)
34572
+
34573
+ @property
34574
+ @pulumi.getter(name="destIpRanges")
34575
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34576
+ """
34577
+ Destination IP address range in CIDR format. Required for
34578
+ EGRESS rules.
34579
+ """
34580
+ return pulumi.get(self, "dest_ip_ranges")
34581
+
34582
+ @dest_ip_ranges.setter
34583
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34584
+ pulumi.set(self, "dest_ip_ranges", value)
34585
+
34586
+ @property
34587
+ @pulumi.getter(name="destRegionCodes")
34588
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34589
+ """
34590
+ Region codes whose IP addresses will be used to match for destination
34591
+ of traffic. Should be specified as 2 letter country code defined as per
34592
+ ISO 3166 alpha-2 country codes. ex."US"
34593
+ Maximum number of destination region codes allowed is 5000.
34594
+ """
34595
+ return pulumi.get(self, "dest_region_codes")
34596
+
34597
+ @dest_region_codes.setter
34598
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34599
+ pulumi.set(self, "dest_region_codes", value)
34600
+
34601
+ @property
34602
+ @pulumi.getter(name="destThreatIntelligences")
34603
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34604
+ """
34605
+ Names of Network Threat Intelligence lists.
34606
+ The IPs in these lists will be matched against traffic destination.
34607
+ """
34608
+ return pulumi.get(self, "dest_threat_intelligences")
34609
+
34610
+ @dest_threat_intelligences.setter
34611
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34612
+ pulumi.set(self, "dest_threat_intelligences", value)
34613
+
34614
+ @property
34615
+ @pulumi.getter(name="layer4Configs")
34616
+ def layer4_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]:
34617
+ """
34618
+ Pairs of IP protocols and ports that the rule should match.
34619
+ Structure is documented below.
34620
+ """
34621
+ return pulumi.get(self, "layer4_configs")
34622
+
34623
+ @layer4_configs.setter
34624
+ def layer4_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]]]):
34625
+ pulumi.set(self, "layer4_configs", value)
34626
+
34627
+ @property
34628
+ @pulumi.getter(name="srcAddressGroups")
34629
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34630
+ """
34631
+ Address groups which should be matched against the traffic source.
34632
+ Maximum number of source address groups is 10.
34633
+ """
34634
+ return pulumi.get(self, "src_address_groups")
34635
+
34636
+ @src_address_groups.setter
34637
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34638
+ pulumi.set(self, "src_address_groups", value)
34639
+
34640
+ @property
34641
+ @pulumi.getter(name="srcFqdns")
34642
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34643
+ """
34644
+ Fully Qualified Domain Name (FQDN) which should be matched against
34645
+ traffic source. Maximum number of source fqdn allowed is 100.
34646
+ """
34647
+ return pulumi.get(self, "src_fqdns")
34648
+
34649
+ @src_fqdns.setter
34650
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34651
+ pulumi.set(self, "src_fqdns", value)
34652
+
34653
+ @property
34654
+ @pulumi.getter(name="srcIpRanges")
34655
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34656
+ """
34657
+ Source IP address range in CIDR format. Required for
34658
+ INGRESS rules.
34659
+ """
34660
+ return pulumi.get(self, "src_ip_ranges")
34661
+
34662
+ @src_ip_ranges.setter
34663
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34664
+ pulumi.set(self, "src_ip_ranges", value)
34665
+
34666
+ @property
34667
+ @pulumi.getter(name="srcRegionCodes")
34668
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34669
+ """
34670
+ Region codes whose IP addresses will be used to match for source
34671
+ of traffic. Should be specified as 2 letter country code defined as per
34672
+ ISO 3166 alpha-2 country codes. ex."US"
34673
+ Maximum number of source region codes allowed is 5000.
34674
+ """
34675
+ return pulumi.get(self, "src_region_codes")
34676
+
34677
+ @src_region_codes.setter
34678
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34679
+ pulumi.set(self, "src_region_codes", value)
34680
+
34681
+ @property
34682
+ @pulumi.getter(name="srcSecureTags")
34683
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]:
34684
+ """
34685
+ List of secure tag values, which should be matched at the source
34686
+ of the traffic.
34687
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
34688
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
34689
+ Maximum number of source tag values allowed is 256.
34690
+ Structure is documented below.
34691
+
34692
+
34693
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
34694
+ """
34695
+ return pulumi.get(self, "src_secure_tags")
34696
+
34697
+ @src_secure_tags.setter
34698
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]):
34699
+ pulumi.set(self, "src_secure_tags", value)
34700
+
34701
+ @property
34702
+ @pulumi.getter(name="srcThreatIntelligences")
34703
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34704
+ """
34705
+ Names of Network Threat Intelligence lists.
34706
+ The IPs in these lists will be matched against traffic source.
34707
+ """
34708
+ return pulumi.get(self, "src_threat_intelligences")
34709
+
34710
+ @src_threat_intelligences.setter
34711
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34712
+ pulumi.set(self, "src_threat_intelligences", value)
34713
+
34714
+
34715
+ if not MYPY:
34716
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict(TypedDict):
34717
+ ip_protocol: NotRequired[pulumi.Input[str]]
34718
+ """
34719
+ (Output)
34720
+ The IP protocol to which this rule applies. The protocol
34721
+ type is required when creating a firewall rule.
34722
+ This value can either be one of the following well
34723
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
34724
+ or the IP protocol number.
34725
+ """
34726
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
34727
+ """
34728
+ (Output)
34729
+ An optional list of ports to which this rule applies. This field
34730
+ is only applicable for UDP or TCP protocol. Each entry must be
34731
+ either an integer or a range. If not specified, this rule
34732
+ applies to connections through any port.
34733
+ Example inputs include: ["22"], ["80","443"], and
34734
+ ["12345-12349"].
34735
+ """
34736
+ elif False:
34737
+ RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
34738
+
34739
+ @pulumi.input_type
34740
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs:
34741
+ def __init__(__self__, *,
34742
+ ip_protocol: Optional[pulumi.Input[str]] = None,
34743
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
34744
+ """
34745
+ :param pulumi.Input[str] ip_protocol: (Output)
34746
+ The IP protocol to which this rule applies. The protocol
34747
+ type is required when creating a firewall rule.
34748
+ This value can either be one of the following well
34749
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
34750
+ or the IP protocol number.
34751
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
34752
+ An optional list of ports to which this rule applies. This field
34753
+ is only applicable for UDP or TCP protocol. Each entry must be
34754
+ either an integer or a range. If not specified, this rule
34755
+ applies to connections through any port.
34756
+ Example inputs include: ["22"], ["80","443"], and
34757
+ ["12345-12349"].
34758
+ """
34759
+ if ip_protocol is not None:
34760
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
34761
+ if ports is not None:
34762
+ pulumi.set(__self__, "ports", ports)
34763
+
34764
+ @property
34765
+ @pulumi.getter(name="ipProtocol")
34766
+ def ip_protocol(self) -> Optional[pulumi.Input[str]]:
34767
+ """
34768
+ (Output)
34769
+ The IP protocol to which this rule applies. The protocol
34770
+ type is required when creating a firewall rule.
34771
+ This value can either be one of the following well
34772
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
34773
+ or the IP protocol number.
34774
+ """
34775
+ return pulumi.get(self, "ip_protocol")
34776
+
34777
+ @ip_protocol.setter
34778
+ def ip_protocol(self, value: Optional[pulumi.Input[str]]):
34779
+ pulumi.set(self, "ip_protocol", value)
34780
+
34781
+ @property
34782
+ @pulumi.getter
34783
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
34784
+ """
34785
+ (Output)
34786
+ An optional list of ports to which this rule applies. This field
34787
+ is only applicable for UDP or TCP protocol. Each entry must be
34788
+ either an integer or a range. If not specified, this rule
34789
+ applies to connections through any port.
34790
+ Example inputs include: ["22"], ["80","443"], and
34791
+ ["12345-12349"].
34792
+ """
34793
+ return pulumi.get(self, "ports")
34794
+
34795
+ @ports.setter
34796
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
34797
+ pulumi.set(self, "ports", value)
34798
+
34799
+
34800
+ if not MYPY:
34801
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict(TypedDict):
34802
+ name: NotRequired[pulumi.Input[str]]
34803
+ """
34804
+ Name of the secure tag, created with TagManager's TagValue API.
34805
+ @pattern tagValues/[0-9]+
34806
+ """
34807
+ state: NotRequired[pulumi.Input[str]]
34808
+ """
34809
+ (Output)
34810
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34811
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34812
+ or its network is deleted.
34813
+ """
34814
+ elif False:
34815
+ RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
34816
+
34817
+ @pulumi.input_type
34818
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs:
34819
+ def __init__(__self__, *,
34820
+ name: Optional[pulumi.Input[str]] = None,
34821
+ state: Optional[pulumi.Input[str]] = None):
34822
+ """
34823
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
34824
+ @pattern tagValues/[0-9]+
34825
+ :param pulumi.Input[str] state: (Output)
34826
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34827
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34828
+ or its network is deleted.
34829
+ """
34830
+ if name is not None:
34831
+ pulumi.set(__self__, "name", name)
34832
+ if state is not None:
34833
+ pulumi.set(__self__, "state", state)
34834
+
34835
+ @property
34836
+ @pulumi.getter
34837
+ def name(self) -> Optional[pulumi.Input[str]]:
34838
+ """
34839
+ Name of the secure tag, created with TagManager's TagValue API.
34840
+ @pattern tagValues/[0-9]+
34841
+ """
34842
+ return pulumi.get(self, "name")
34843
+
34844
+ @name.setter
34845
+ def name(self, value: Optional[pulumi.Input[str]]):
34846
+ pulumi.set(self, "name", value)
34847
+
34848
+ @property
34849
+ @pulumi.getter
34850
+ def state(self) -> Optional[pulumi.Input[str]]:
34851
+ """
34852
+ (Output)
34853
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34854
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34855
+ or its network is deleted.
34856
+ """
34857
+ return pulumi.get(self, "state")
34858
+
34859
+ @state.setter
34860
+ def state(self, value: Optional[pulumi.Input[str]]):
34861
+ pulumi.set(self, "state", value)
34862
+
34863
+
34864
+ if not MYPY:
34865
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict(TypedDict):
34866
+ name: NotRequired[pulumi.Input[str]]
34867
+ """
34868
+ Name of the secure tag, created with TagManager's TagValue API.
34869
+ @pattern tagValues/[0-9]+
34870
+ """
34871
+ state: NotRequired[pulumi.Input[str]]
34872
+ """
34873
+ (Output)
34874
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34875
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34876
+ or its network is deleted.
34877
+
34878
+ - - -
34879
+ """
34880
+ elif False:
34881
+ RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
34882
+
34883
+ @pulumi.input_type
34884
+ class RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs:
34885
+ def __init__(__self__, *,
34886
+ name: Optional[pulumi.Input[str]] = None,
34887
+ state: Optional[pulumi.Input[str]] = None):
34888
+ """
34889
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
34890
+ @pattern tagValues/[0-9]+
34891
+ :param pulumi.Input[str] state: (Output)
34892
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34893
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34894
+ or its network is deleted.
34895
+
34896
+ - - -
34897
+ """
34898
+ if name is not None:
34899
+ pulumi.set(__self__, "name", name)
34900
+ if state is not None:
34901
+ pulumi.set(__self__, "state", state)
34902
+
34903
+ @property
34904
+ @pulumi.getter
34905
+ def name(self) -> Optional[pulumi.Input[str]]:
34906
+ """
34907
+ Name of the secure tag, created with TagManager's TagValue API.
34908
+ @pattern tagValues/[0-9]+
34909
+ """
34910
+ return pulumi.get(self, "name")
34911
+
34912
+ @name.setter
34913
+ def name(self, value: Optional[pulumi.Input[str]]):
34914
+ pulumi.set(self, "name", value)
34915
+
34916
+ @property
34917
+ @pulumi.getter
34918
+ def state(self) -> Optional[pulumi.Input[str]]:
34919
+ """
34920
+ (Output)
34921
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
34922
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
34923
+ or its network is deleted.
34924
+
34925
+ - - -
34926
+ """
34927
+ return pulumi.get(self, "state")
34928
+
34929
+ @state.setter
34930
+ def state(self, value: Optional[pulumi.Input[str]]):
34931
+ pulumi.set(self, "state", value)
34932
+
34933
+
34934
+ if not MYPY:
34935
+ class RegionNetworkFirewallPolicyWithRulesRuleArgsDict(TypedDict):
34936
+ action: pulumi.Input[str]
34937
+ """
34938
+ The Action to perform when the client connection triggers the rule. Can currently be either
34939
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
34940
+ """
34941
+ match: pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchArgsDict']
34942
+ """
34943
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
34944
+ Structure is documented below.
34945
+ """
34946
+ priority: pulumi.Input[int]
34947
+ """
34948
+ An integer indicating the priority of a rule in the list. The priority must be a value
34949
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
34950
+ highest priority and 2147483647 is the lowest priority.
34951
+ """
34952
+ description: NotRequired[pulumi.Input[str]]
34953
+ """
34954
+ A description of the rule.
34955
+ """
34956
+ direction: NotRequired[pulumi.Input[str]]
34957
+ """
34958
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
34959
+ Possible values are: `INGRESS`, `EGRESS`.
34960
+ """
34961
+ disabled: NotRequired[pulumi.Input[bool]]
34962
+ """
34963
+ Denotes whether the firewall policy rule is disabled. When set to true,
34964
+ the firewall policy rule is not enforced and traffic behaves as if it did
34965
+ not exist. If this is unspecified, the firewall policy rule will be
34966
+ enabled.
34967
+ """
34968
+ enable_logging: NotRequired[pulumi.Input[bool]]
34969
+ """
34970
+ Denotes whether to enable logging for a particular rule.
34971
+ If logging is enabled, logs will be exported to the
34972
+ configured export destination in Stackdriver.
34973
+ """
34974
+ rule_name: NotRequired[pulumi.Input[str]]
34975
+ """
34976
+ An optional name for the rule. This field is not a unique identifier
34977
+ and can be updated.
34978
+ """
34979
+ security_profile_group: NotRequired[pulumi.Input[str]]
34980
+ """
34981
+ A fully-qualified URL of a SecurityProfile resource instance.
34982
+ Example:
34983
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
34984
+ Must be specified if action is 'apply_security_profile_group'.
34985
+ """
34986
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict']]]]
34987
+ """
34988
+ A list of secure tags that controls which instances the firewall rule
34989
+ applies to. If <code>targetSecureTag</code> are specified, then the
34990
+ firewall rule applies only to instances in the VPC network that have one
34991
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
34992
+ INEFFECTIVE state, then this rule will be ignored.
34993
+ <code>targetSecureTag</code> may not be set at the same time as
34994
+ <code>targetServiceAccounts</code>.
34995
+ If neither <code>targetServiceAccounts</code> nor
34996
+ <code>targetSecureTag</code> are specified, the firewall rule applies
34997
+ to all instances on the specified network.
34998
+ Maximum number of target label tags allowed is 256.
34999
+ Structure is documented below.
35000
+ """
35001
+ target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35002
+ """
35003
+ A list of service accounts indicating the sets of
35004
+ instances that are applied with this rule.
35005
+ """
35006
+ tls_inspect: NotRequired[pulumi.Input[bool]]
35007
+ """
35008
+ Boolean flag indicating if the traffic should be TLS decrypted.
35009
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
35010
+ """
35011
+ elif False:
35012
+ RegionNetworkFirewallPolicyWithRulesRuleArgsDict: TypeAlias = Mapping[str, Any]
35013
+
35014
+ @pulumi.input_type
35015
+ class RegionNetworkFirewallPolicyWithRulesRuleArgs:
35016
+ def __init__(__self__, *,
35017
+ action: pulumi.Input[str],
35018
+ match: pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchArgs'],
35019
+ priority: pulumi.Input[int],
35020
+ description: Optional[pulumi.Input[str]] = None,
35021
+ direction: Optional[pulumi.Input[str]] = None,
35022
+ disabled: Optional[pulumi.Input[bool]] = None,
35023
+ enable_logging: Optional[pulumi.Input[bool]] = None,
35024
+ rule_name: Optional[pulumi.Input[str]] = None,
35025
+ security_profile_group: Optional[pulumi.Input[str]] = None,
35026
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]] = None,
35027
+ target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35028
+ tls_inspect: Optional[pulumi.Input[bool]] = None):
35029
+ """
35030
+ :param pulumi.Input[str] action: The Action to perform when the client connection triggers the rule. Can currently be either
35031
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
35032
+ :param pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
35033
+ Structure is documented below.
35034
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list. The priority must be a value
35035
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
35036
+ highest priority and 2147483647 is the lowest priority.
35037
+ :param pulumi.Input[str] description: A description of the rule.
35038
+ :param pulumi.Input[str] direction: The direction in which this rule applies. If unspecified an INGRESS rule is created.
35039
+ Possible values are: `INGRESS`, `EGRESS`.
35040
+ :param pulumi.Input[bool] disabled: Denotes whether the firewall policy rule is disabled. When set to true,
35041
+ the firewall policy rule is not enforced and traffic behaves as if it did
35042
+ not exist. If this is unspecified, the firewall policy rule will be
35043
+ enabled.
35044
+ :param pulumi.Input[bool] enable_logging: Denotes whether to enable logging for a particular rule.
35045
+ If logging is enabled, logs will be exported to the
35046
+ configured export destination in Stackdriver.
35047
+ :param pulumi.Input[str] rule_name: An optional name for the rule. This field is not a unique identifier
35048
+ and can be updated.
35049
+ :param pulumi.Input[str] security_profile_group: A fully-qualified URL of a SecurityProfile resource instance.
35050
+ Example:
35051
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
35052
+ Must be specified if action is 'apply_security_profile_group'.
35053
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule
35054
+ applies to. If <code>targetSecureTag</code> are specified, then the
35055
+ firewall rule applies only to instances in the VPC network that have one
35056
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
35057
+ INEFFECTIVE state, then this rule will be ignored.
35058
+ <code>targetSecureTag</code> may not be set at the same time as
35059
+ <code>targetServiceAccounts</code>.
35060
+ If neither <code>targetServiceAccounts</code> nor
35061
+ <code>targetSecureTag</code> are specified, the firewall rule applies
35062
+ to all instances on the specified network.
35063
+ Maximum number of target label tags allowed is 256.
35064
+ Structure is documented below.
35065
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_service_accounts: A list of service accounts indicating the sets of
35066
+ instances that are applied with this rule.
35067
+ :param pulumi.Input[bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
35068
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
35069
+ """
35070
+ pulumi.set(__self__, "action", action)
35071
+ pulumi.set(__self__, "match", match)
35072
+ pulumi.set(__self__, "priority", priority)
35073
+ if description is not None:
35074
+ pulumi.set(__self__, "description", description)
35075
+ if direction is not None:
35076
+ pulumi.set(__self__, "direction", direction)
35077
+ if disabled is not None:
35078
+ pulumi.set(__self__, "disabled", disabled)
35079
+ if enable_logging is not None:
35080
+ pulumi.set(__self__, "enable_logging", enable_logging)
35081
+ if rule_name is not None:
35082
+ pulumi.set(__self__, "rule_name", rule_name)
35083
+ if security_profile_group is not None:
35084
+ pulumi.set(__self__, "security_profile_group", security_profile_group)
35085
+ if target_secure_tags is not None:
35086
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
35087
+ if target_service_accounts is not None:
35088
+ pulumi.set(__self__, "target_service_accounts", target_service_accounts)
35089
+ if tls_inspect is not None:
35090
+ pulumi.set(__self__, "tls_inspect", tls_inspect)
35091
+
35092
+ @property
35093
+ @pulumi.getter
35094
+ def action(self) -> pulumi.Input[str]:
35095
+ """
35096
+ The Action to perform when the client connection triggers the rule. Can currently be either
35097
+ "allow", "deny", "apply_security_profile_group" or "goto_next".
35098
+ """
35099
+ return pulumi.get(self, "action")
35100
+
35101
+ @action.setter
35102
+ def action(self, value: pulumi.Input[str]):
35103
+ pulumi.set(self, "action", value)
35104
+
35105
+ @property
35106
+ @pulumi.getter
35107
+ def match(self) -> pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchArgs']:
35108
+ """
35109
+ A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.
35110
+ Structure is documented below.
35111
+ """
35112
+ return pulumi.get(self, "match")
35113
+
35114
+ @match.setter
35115
+ def match(self, value: pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchArgs']):
35116
+ pulumi.set(self, "match", value)
35117
+
35118
+ @property
35119
+ @pulumi.getter
35120
+ def priority(self) -> pulumi.Input[int]:
35121
+ """
35122
+ An integer indicating the priority of a rule in the list. The priority must be a value
35123
+ between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the
35124
+ highest priority and 2147483647 is the lowest priority.
35125
+ """
35126
+ return pulumi.get(self, "priority")
35127
+
35128
+ @priority.setter
35129
+ def priority(self, value: pulumi.Input[int]):
35130
+ pulumi.set(self, "priority", value)
35131
+
35132
+ @property
35133
+ @pulumi.getter
35134
+ def description(self) -> Optional[pulumi.Input[str]]:
35135
+ """
35136
+ A description of the rule.
35137
+ """
35138
+ return pulumi.get(self, "description")
35139
+
35140
+ @description.setter
35141
+ def description(self, value: Optional[pulumi.Input[str]]):
35142
+ pulumi.set(self, "description", value)
35143
+
35144
+ @property
35145
+ @pulumi.getter
35146
+ def direction(self) -> Optional[pulumi.Input[str]]:
35147
+ """
35148
+ The direction in which this rule applies. If unspecified an INGRESS rule is created.
35149
+ Possible values are: `INGRESS`, `EGRESS`.
35150
+ """
35151
+ return pulumi.get(self, "direction")
35152
+
35153
+ @direction.setter
35154
+ def direction(self, value: Optional[pulumi.Input[str]]):
35155
+ pulumi.set(self, "direction", value)
35156
+
35157
+ @property
35158
+ @pulumi.getter
35159
+ def disabled(self) -> Optional[pulumi.Input[bool]]:
35160
+ """
35161
+ Denotes whether the firewall policy rule is disabled. When set to true,
35162
+ the firewall policy rule is not enforced and traffic behaves as if it did
35163
+ not exist. If this is unspecified, the firewall policy rule will be
35164
+ enabled.
35165
+ """
35166
+ return pulumi.get(self, "disabled")
35167
+
35168
+ @disabled.setter
35169
+ def disabled(self, value: Optional[pulumi.Input[bool]]):
35170
+ pulumi.set(self, "disabled", value)
35171
+
35172
+ @property
35173
+ @pulumi.getter(name="enableLogging")
35174
+ def enable_logging(self) -> Optional[pulumi.Input[bool]]:
35175
+ """
35176
+ Denotes whether to enable logging for a particular rule.
35177
+ If logging is enabled, logs will be exported to the
35178
+ configured export destination in Stackdriver.
35179
+ """
35180
+ return pulumi.get(self, "enable_logging")
35181
+
35182
+ @enable_logging.setter
35183
+ def enable_logging(self, value: Optional[pulumi.Input[bool]]):
35184
+ pulumi.set(self, "enable_logging", value)
35185
+
35186
+ @property
35187
+ @pulumi.getter(name="ruleName")
35188
+ def rule_name(self) -> Optional[pulumi.Input[str]]:
35189
+ """
35190
+ An optional name for the rule. This field is not a unique identifier
35191
+ and can be updated.
35192
+ """
35193
+ return pulumi.get(self, "rule_name")
35194
+
35195
+ @rule_name.setter
35196
+ def rule_name(self, value: Optional[pulumi.Input[str]]):
35197
+ pulumi.set(self, "rule_name", value)
35198
+
35199
+ @property
35200
+ @pulumi.getter(name="securityProfileGroup")
35201
+ def security_profile_group(self) -> Optional[pulumi.Input[str]]:
35202
+ """
35203
+ A fully-qualified URL of a SecurityProfile resource instance.
35204
+ Example:
35205
+ https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
35206
+ Must be specified if action is 'apply_security_profile_group'.
35207
+ """
35208
+ return pulumi.get(self, "security_profile_group")
35209
+
35210
+ @security_profile_group.setter
35211
+ def security_profile_group(self, value: Optional[pulumi.Input[str]]):
35212
+ pulumi.set(self, "security_profile_group", value)
35213
+
35214
+ @property
35215
+ @pulumi.getter(name="targetSecureTags")
35216
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]:
35217
+ """
35218
+ A list of secure tags that controls which instances the firewall rule
35219
+ applies to. If <code>targetSecureTag</code> are specified, then the
35220
+ firewall rule applies only to instances in the VPC network that have one
35221
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
35222
+ INEFFECTIVE state, then this rule will be ignored.
35223
+ <code>targetSecureTag</code> may not be set at the same time as
35224
+ <code>targetServiceAccounts</code>.
35225
+ If neither <code>targetServiceAccounts</code> nor
35226
+ <code>targetSecureTag</code> are specified, the firewall rule applies
35227
+ to all instances on the specified network.
35228
+ Maximum number of target label tags allowed is 256.
35229
+ Structure is documented below.
35230
+ """
35231
+ return pulumi.get(self, "target_secure_tags")
35232
+
35233
+ @target_secure_tags.setter
35234
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]):
35235
+ pulumi.set(self, "target_secure_tags", value)
35236
+
35237
+ @property
35238
+ @pulumi.getter(name="targetServiceAccounts")
35239
+ def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35240
+ """
35241
+ A list of service accounts indicating the sets of
35242
+ instances that are applied with this rule.
35243
+ """
35244
+ return pulumi.get(self, "target_service_accounts")
35245
+
35246
+ @target_service_accounts.setter
35247
+ def target_service_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35248
+ pulumi.set(self, "target_service_accounts", value)
35249
+
35250
+ @property
35251
+ @pulumi.getter(name="tlsInspect")
35252
+ def tls_inspect(self) -> Optional[pulumi.Input[bool]]:
35253
+ """
35254
+ Boolean flag indicating if the traffic should be TLS decrypted.
35255
+ It can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.
35256
+ """
35257
+ return pulumi.get(self, "tls_inspect")
35258
+
35259
+ @tls_inspect.setter
35260
+ def tls_inspect(self, value: Optional[pulumi.Input[bool]]):
35261
+ pulumi.set(self, "tls_inspect", value)
35262
+
35263
+
35264
+ if not MYPY:
35265
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchArgsDict(TypedDict):
35266
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict']]]
35267
+ """
35268
+ Pairs of IP protocols and ports that the rule should match.
35269
+ Structure is documented below.
35270
+ """
35271
+ dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35272
+ """
35273
+ Address groups which should be matched against the traffic destination.
35274
+ Maximum number of destination address groups is 10.
35275
+ """
35276
+ dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35277
+ """
35278
+ Fully Qualified Domain Name (FQDN) which should be matched against
35279
+ traffic destination. Maximum number of destination fqdn allowed is 100.
35280
+ """
35281
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35282
+ """
35283
+ Destination IP address range in CIDR format. Required for
35284
+ EGRESS rules.
35285
+ """
35286
+ dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35287
+ """
35288
+ Region codes whose IP addresses will be used to match for destination
35289
+ of traffic. Should be specified as 2 letter country code defined as per
35290
+ ISO 3166 alpha-2 country codes. ex."US"
35291
+ Maximum number of destination region codes allowed is 5000.
35292
+ """
35293
+ dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35294
+ """
35295
+ Names of Network Threat Intelligence lists.
35296
+ The IPs in these lists will be matched against traffic destination.
35297
+ """
35298
+ src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35299
+ """
35300
+ Address groups which should be matched against the traffic source.
35301
+ Maximum number of source address groups is 10.
35302
+ """
35303
+ src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35304
+ """
35305
+ Fully Qualified Domain Name (FQDN) which should be matched against
35306
+ traffic source. Maximum number of source fqdn allowed is 100.
35307
+ """
35308
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35309
+ """
35310
+ Source IP address range in CIDR format. Required for
35311
+ INGRESS rules.
35312
+ """
35313
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35314
+ """
35315
+ Region codes whose IP addresses will be used to match for source
35316
+ of traffic. Should be specified as 2 letter country code defined as per
35317
+ ISO 3166 alpha-2 country codes. ex."US"
35318
+ Maximum number of source region codes allowed is 5000.
35319
+ """
35320
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict']]]]
35321
+ """
35322
+ List of secure tag values, which should be matched at the source
35323
+ of the traffic.
35324
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
35325
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
35326
+ Maximum number of source tag values allowed is 256.
35327
+ Structure is documented below.
35328
+
35329
+
35330
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
35331
+ """
35332
+ src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35333
+ """
35334
+ Names of Network Threat Intelligence lists.
35335
+ The IPs in these lists will be matched against traffic source.
35336
+ """
35337
+ elif False:
35338
+ RegionNetworkFirewallPolicyWithRulesRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
35339
+
35340
+ @pulumi.input_type
35341
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchArgs:
35342
+ def __init__(__self__, *,
35343
+ layer4_configs: pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]],
35344
+ dest_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35345
+ dest_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35346
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35347
+ dest_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35348
+ dest_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35349
+ src_address_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35350
+ src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35351
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35352
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35353
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]] = None,
35354
+ src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
35355
+ """
35356
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
35357
+ Structure is documented below.
35358
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
35359
+ Maximum number of destination address groups is 10.
35360
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
35361
+ traffic destination. Maximum number of destination fqdn allowed is 100.
35362
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IP address range in CIDR format. Required for
35363
+ EGRESS rules.
35364
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination
35365
+ of traffic. Should be specified as 2 letter country code defined as per
35366
+ ISO 3166 alpha-2 country codes. ex."US"
35367
+ Maximum number of destination region codes allowed is 5000.
35368
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists.
35369
+ The IPs in these lists will be matched against traffic destination.
35370
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source.
35371
+ Maximum number of source address groups is 10.
35372
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
35373
+ traffic source. Maximum number of source fqdn allowed is 100.
35374
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IP address range in CIDR format. Required for
35375
+ INGRESS rules.
35376
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source
35377
+ of traffic. Should be specified as 2 letter country code defined as per
35378
+ ISO 3166 alpha-2 country codes. ex."US"
35379
+ Maximum number of source region codes allowed is 5000.
35380
+ :param pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
35381
+ of the traffic.
35382
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
35383
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
35384
+ Maximum number of source tag values allowed is 256.
35385
+ Structure is documented below.
35386
+
35387
+
35388
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
35389
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
35390
+ The IPs in these lists will be matched against traffic source.
35391
+ """
35392
+ pulumi.set(__self__, "layer4_configs", layer4_configs)
35393
+ if dest_address_groups is not None:
35394
+ pulumi.set(__self__, "dest_address_groups", dest_address_groups)
35395
+ if dest_fqdns is not None:
35396
+ pulumi.set(__self__, "dest_fqdns", dest_fqdns)
35397
+ if dest_ip_ranges is not None:
35398
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
35399
+ if dest_region_codes is not None:
35400
+ pulumi.set(__self__, "dest_region_codes", dest_region_codes)
35401
+ if dest_threat_intelligences is not None:
35402
+ pulumi.set(__self__, "dest_threat_intelligences", dest_threat_intelligences)
35403
+ if src_address_groups is not None:
35404
+ pulumi.set(__self__, "src_address_groups", src_address_groups)
35405
+ if src_fqdns is not None:
35406
+ pulumi.set(__self__, "src_fqdns", src_fqdns)
35407
+ if src_ip_ranges is not None:
35408
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
35409
+ if src_region_codes is not None:
35410
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
35411
+ if src_secure_tags is not None:
35412
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
35413
+ if src_threat_intelligences is not None:
35414
+ pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
35415
+
35416
+ @property
35417
+ @pulumi.getter(name="layer4Configs")
35418
+ def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]:
35419
+ """
35420
+ Pairs of IP protocols and ports that the rule should match.
35421
+ Structure is documented below.
35422
+ """
35423
+ return pulumi.get(self, "layer4_configs")
35424
+
35425
+ @layer4_configs.setter
35426
+ def layer4_configs(self, value: pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]]):
35427
+ pulumi.set(self, "layer4_configs", value)
35428
+
35429
+ @property
35430
+ @pulumi.getter(name="destAddressGroups")
35431
+ def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35432
+ """
35433
+ Address groups which should be matched against the traffic destination.
35434
+ Maximum number of destination address groups is 10.
35435
+ """
35436
+ return pulumi.get(self, "dest_address_groups")
35437
+
35438
+ @dest_address_groups.setter
35439
+ def dest_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35440
+ pulumi.set(self, "dest_address_groups", value)
35441
+
35442
+ @property
35443
+ @pulumi.getter(name="destFqdns")
35444
+ def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35445
+ """
35446
+ Fully Qualified Domain Name (FQDN) which should be matched against
35447
+ traffic destination. Maximum number of destination fqdn allowed is 100.
35448
+ """
35449
+ return pulumi.get(self, "dest_fqdns")
35450
+
35451
+ @dest_fqdns.setter
35452
+ def dest_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35453
+ pulumi.set(self, "dest_fqdns", value)
35454
+
35455
+ @property
35456
+ @pulumi.getter(name="destIpRanges")
35457
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35458
+ """
35459
+ Destination IP address range in CIDR format. Required for
35460
+ EGRESS rules.
35461
+ """
35462
+ return pulumi.get(self, "dest_ip_ranges")
35463
+
35464
+ @dest_ip_ranges.setter
35465
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35466
+ pulumi.set(self, "dest_ip_ranges", value)
35467
+
35468
+ @property
35469
+ @pulumi.getter(name="destRegionCodes")
35470
+ def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35471
+ """
35472
+ Region codes whose IP addresses will be used to match for destination
35473
+ of traffic. Should be specified as 2 letter country code defined as per
35474
+ ISO 3166 alpha-2 country codes. ex."US"
35475
+ Maximum number of destination region codes allowed is 5000.
35476
+ """
35477
+ return pulumi.get(self, "dest_region_codes")
35478
+
35479
+ @dest_region_codes.setter
35480
+ def dest_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35481
+ pulumi.set(self, "dest_region_codes", value)
35482
+
35483
+ @property
35484
+ @pulumi.getter(name="destThreatIntelligences")
35485
+ def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35486
+ """
35487
+ Names of Network Threat Intelligence lists.
35488
+ The IPs in these lists will be matched against traffic destination.
35489
+ """
35490
+ return pulumi.get(self, "dest_threat_intelligences")
35491
+
35492
+ @dest_threat_intelligences.setter
35493
+ def dest_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35494
+ pulumi.set(self, "dest_threat_intelligences", value)
35495
+
35496
+ @property
35497
+ @pulumi.getter(name="srcAddressGroups")
35498
+ def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35499
+ """
35500
+ Address groups which should be matched against the traffic source.
35501
+ Maximum number of source address groups is 10.
35502
+ """
35503
+ return pulumi.get(self, "src_address_groups")
35504
+
35505
+ @src_address_groups.setter
35506
+ def src_address_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35507
+ pulumi.set(self, "src_address_groups", value)
35508
+
35509
+ @property
35510
+ @pulumi.getter(name="srcFqdns")
35511
+ def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35512
+ """
35513
+ Fully Qualified Domain Name (FQDN) which should be matched against
35514
+ traffic source. Maximum number of source fqdn allowed is 100.
35515
+ """
35516
+ return pulumi.get(self, "src_fqdns")
35517
+
35518
+ @src_fqdns.setter
35519
+ def src_fqdns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35520
+ pulumi.set(self, "src_fqdns", value)
35521
+
35522
+ @property
35523
+ @pulumi.getter(name="srcIpRanges")
35524
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35525
+ """
35526
+ Source IP address range in CIDR format. Required for
35527
+ INGRESS rules.
35528
+ """
35529
+ return pulumi.get(self, "src_ip_ranges")
35530
+
35531
+ @src_ip_ranges.setter
35532
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35533
+ pulumi.set(self, "src_ip_ranges", value)
35534
+
35535
+ @property
35536
+ @pulumi.getter(name="srcRegionCodes")
35537
+ def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35538
+ """
35539
+ Region codes whose IP addresses will be used to match for source
35540
+ of traffic. Should be specified as 2 letter country code defined as per
35541
+ ISO 3166 alpha-2 country codes. ex."US"
35542
+ Maximum number of source region codes allowed is 5000.
35543
+ """
35544
+ return pulumi.get(self, "src_region_codes")
35545
+
35546
+ @src_region_codes.setter
35547
+ def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35548
+ pulumi.set(self, "src_region_codes", value)
35549
+
35550
+ @property
35551
+ @pulumi.getter(name="srcSecureTags")
35552
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]:
35553
+ """
35554
+ List of secure tag values, which should be matched at the source
35555
+ of the traffic.
35556
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
35557
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
35558
+ Maximum number of source tag values allowed is 256.
35559
+ Structure is documented below.
35560
+
35561
+
35562
+ <a name="nested_layer4_config"></a>The `layer4_config` block supports:
35563
+ """
35564
+ return pulumi.get(self, "src_secure_tags")
35565
+
35566
+ @src_secure_tags.setter
35567
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]):
35568
+ pulumi.set(self, "src_secure_tags", value)
35569
+
35570
+ @property
35571
+ @pulumi.getter(name="srcThreatIntelligences")
35572
+ def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35573
+ """
35574
+ Names of Network Threat Intelligence lists.
35575
+ The IPs in these lists will be matched against traffic source.
35576
+ """
35577
+ return pulumi.get(self, "src_threat_intelligences")
35578
+
35579
+ @src_threat_intelligences.setter
35580
+ def src_threat_intelligences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35581
+ pulumi.set(self, "src_threat_intelligences", value)
35582
+
35583
+
35584
+ if not MYPY:
35585
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict(TypedDict):
35586
+ ip_protocol: pulumi.Input[str]
35587
+ """
35588
+ (Output)
35589
+ The IP protocol to which this rule applies. The protocol
35590
+ type is required when creating a firewall rule.
35591
+ This value can either be one of the following well
35592
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
35593
+ or the IP protocol number.
35594
+ """
35595
+ ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
35596
+ """
35597
+ (Output)
35598
+ An optional list of ports to which this rule applies. This field
35599
+ is only applicable for UDP or TCP protocol. Each entry must be
35600
+ either an integer or a range. If not specified, this rule
35601
+ applies to connections through any port.
35602
+ Example inputs include: ["22"], ["80","443"], and
35603
+ ["12345-12349"].
35604
+ """
35605
+ elif False:
35606
+ RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
35607
+
35608
+ @pulumi.input_type
35609
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs:
35610
+ def __init__(__self__, *,
35611
+ ip_protocol: pulumi.Input[str],
35612
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
35613
+ """
35614
+ :param pulumi.Input[str] ip_protocol: (Output)
35615
+ The IP protocol to which this rule applies. The protocol
35616
+ type is required when creating a firewall rule.
35617
+ This value can either be one of the following well
35618
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
35619
+ or the IP protocol number.
35620
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: (Output)
35621
+ An optional list of ports to which this rule applies. This field
35622
+ is only applicable for UDP or TCP protocol. Each entry must be
35623
+ either an integer or a range. If not specified, this rule
35624
+ applies to connections through any port.
35625
+ Example inputs include: ["22"], ["80","443"], and
35626
+ ["12345-12349"].
35627
+ """
35628
+ pulumi.set(__self__, "ip_protocol", ip_protocol)
35629
+ if ports is not None:
35630
+ pulumi.set(__self__, "ports", ports)
35631
+
35632
+ @property
35633
+ @pulumi.getter(name="ipProtocol")
35634
+ def ip_protocol(self) -> pulumi.Input[str]:
35635
+ """
35636
+ (Output)
35637
+ The IP protocol to which this rule applies. The protocol
35638
+ type is required when creating a firewall rule.
35639
+ This value can either be one of the following well
35640
+ known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
35641
+ or the IP protocol number.
35642
+ """
35643
+ return pulumi.get(self, "ip_protocol")
35644
+
35645
+ @ip_protocol.setter
35646
+ def ip_protocol(self, value: pulumi.Input[str]):
35647
+ pulumi.set(self, "ip_protocol", value)
35648
+
35649
+ @property
35650
+ @pulumi.getter
35651
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
35652
+ """
35653
+ (Output)
35654
+ An optional list of ports to which this rule applies. This field
35655
+ is only applicable for UDP or TCP protocol. Each entry must be
35656
+ either an integer or a range. If not specified, this rule
35657
+ applies to connections through any port.
35658
+ Example inputs include: ["22"], ["80","443"], and
35659
+ ["12345-12349"].
35660
+ """
35661
+ return pulumi.get(self, "ports")
35662
+
35663
+ @ports.setter
35664
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
35665
+ pulumi.set(self, "ports", value)
35666
+
35667
+
35668
+ if not MYPY:
35669
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict(TypedDict):
35670
+ name: NotRequired[pulumi.Input[str]]
35671
+ """
35672
+ Name of the secure tag, created with TagManager's TagValue API.
35673
+ @pattern tagValues/[0-9]+
35674
+ """
35675
+ state: NotRequired[pulumi.Input[str]]
35676
+ """
35677
+ (Output)
35678
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35679
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35680
+ or its network is deleted.
35681
+ """
35682
+ elif False:
35683
+ RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
35684
+
35685
+ @pulumi.input_type
35686
+ class RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs:
35687
+ def __init__(__self__, *,
35688
+ name: Optional[pulumi.Input[str]] = None,
35689
+ state: Optional[pulumi.Input[str]] = None):
35690
+ """
35691
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
35692
+ @pattern tagValues/[0-9]+
35693
+ :param pulumi.Input[str] state: (Output)
35694
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35695
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35696
+ or its network is deleted.
35697
+ """
35698
+ if name is not None:
35699
+ pulumi.set(__self__, "name", name)
35700
+ if state is not None:
35701
+ pulumi.set(__self__, "state", state)
35702
+
35703
+ @property
35704
+ @pulumi.getter
35705
+ def name(self) -> Optional[pulumi.Input[str]]:
35706
+ """
35707
+ Name of the secure tag, created with TagManager's TagValue API.
35708
+ @pattern tagValues/[0-9]+
35709
+ """
35710
+ return pulumi.get(self, "name")
35711
+
35712
+ @name.setter
35713
+ def name(self, value: Optional[pulumi.Input[str]]):
35714
+ pulumi.set(self, "name", value)
35715
+
35716
+ @property
35717
+ @pulumi.getter
35718
+ def state(self) -> Optional[pulumi.Input[str]]:
35719
+ """
35720
+ (Output)
35721
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35722
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35723
+ or its network is deleted.
35724
+ """
35725
+ return pulumi.get(self, "state")
35726
+
35727
+ @state.setter
35728
+ def state(self, value: Optional[pulumi.Input[str]]):
35729
+ pulumi.set(self, "state", value)
35730
+
35731
+
35732
+ if not MYPY:
35733
+ class RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict(TypedDict):
35734
+ name: NotRequired[pulumi.Input[str]]
35735
+ """
35736
+ Name of the secure tag, created with TagManager's TagValue API.
35737
+ @pattern tagValues/[0-9]+
35738
+ """
35739
+ state: NotRequired[pulumi.Input[str]]
35740
+ """
35741
+ (Output)
35742
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35743
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35744
+ or its network is deleted.
35745
+
35746
+ - - -
35747
+ """
35748
+ elif False:
35749
+ RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
35750
+
35751
+ @pulumi.input_type
35752
+ class RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTagArgs:
35753
+ def __init__(__self__, *,
35754
+ name: Optional[pulumi.Input[str]] = None,
35755
+ state: Optional[pulumi.Input[str]] = None):
35756
+ """
35757
+ :param pulumi.Input[str] name: Name of the secure tag, created with TagManager's TagValue API.
35758
+ @pattern tagValues/[0-9]+
35759
+ :param pulumi.Input[str] state: (Output)
35760
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35761
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35762
+ or its network is deleted.
35763
+
35764
+ - - -
35765
+ """
35766
+ if name is not None:
35767
+ pulumi.set(__self__, "name", name)
35768
+ if state is not None:
35769
+ pulumi.set(__self__, "state", state)
35770
+
35771
+ @property
35772
+ @pulumi.getter
35773
+ def name(self) -> Optional[pulumi.Input[str]]:
35774
+ """
35775
+ Name of the secure tag, created with TagManager's TagValue API.
35776
+ @pattern tagValues/[0-9]+
35777
+ """
35778
+ return pulumi.get(self, "name")
35779
+
35780
+ @name.setter
35781
+ def name(self, value: Optional[pulumi.Input[str]]):
35782
+ pulumi.set(self, "name", value)
35783
+
35784
+ @property
35785
+ @pulumi.getter
35786
+ def state(self) -> Optional[pulumi.Input[str]]:
35787
+ """
35788
+ (Output)
35789
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
35790
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
35791
+ or its network is deleted.
35792
+
35793
+ - - -
35794
+ """
35795
+ return pulumi.get(self, "state")
35796
+
35797
+ @state.setter
35798
+ def state(self, value: Optional[pulumi.Input[str]]):
35799
+ pulumi.set(self, "state", value)
35800
+
35801
+
33863
35802
  if not MYPY:
33864
35803
  class RegionPerInstanceConfigPreservedStateArgsDict(TypedDict):
33865
35804
  disks: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionPerInstanceConfigPreservedStateDiskArgsDict']]]]