pulumi-gcp 7.25.0__py3-none-any.whl → 7.25.0a1717097889__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 (62) hide show
  1. pulumi_gcp/__init__.py +0 -88
  2. pulumi_gcp/appengine/_inputs.py +0 -18
  3. pulumi_gcp/appengine/domain_mapping.py +1 -1
  4. pulumi_gcp/appengine/outputs.py +0 -16
  5. pulumi_gcp/bigquery/_inputs.py +2 -286
  6. pulumi_gcp/bigquery/outputs.py +2 -289
  7. pulumi_gcp/bigquery/table.py +35 -77
  8. pulumi_gcp/cloudfunctionsv2/function.py +4 -0
  9. pulumi_gcp/cloudrun/_inputs.py +4 -80
  10. pulumi_gcp/cloudrun/outputs.py +4 -137
  11. pulumi_gcp/composer/user_workloads_secret.py +4 -4
  12. pulumi_gcp/compute/__init__.py +0 -1
  13. pulumi_gcp/compute/_inputs.py +176 -398
  14. pulumi_gcp/compute/instance_group_membership.py +2 -2
  15. pulumi_gcp/compute/interconnect_attachment.py +0 -82
  16. pulumi_gcp/compute/network_endpoint.py +2 -2
  17. pulumi_gcp/compute/network_endpoint_list.py +2 -2
  18. pulumi_gcp/compute/outputs.py +161 -609
  19. pulumi_gcp/compute/region_ssl_policy.py +40 -39
  20. pulumi_gcp/compute/security_policy_rule.py +1 -55
  21. pulumi_gcp/container/_inputs.py +0 -560
  22. pulumi_gcp/container/outputs.py +51 -1106
  23. pulumi_gcp/dataplex/__init__.py +0 -10
  24. pulumi_gcp/dataplex/_inputs.py +0 -160
  25. pulumi_gcp/dataplex/outputs.py +0 -112
  26. pulumi_gcp/datastream/connection_profile.py +0 -47
  27. pulumi_gcp/datastream/private_connection.py +0 -47
  28. pulumi_gcp/datastream/stream.py +0 -47
  29. pulumi_gcp/dns/get_managed_zone.py +3 -3
  30. pulumi_gcp/dns/managed_zone.py +7 -7
  31. pulumi_gcp/dns/outputs.py +2 -2
  32. pulumi_gcp/kms/__init__.py +0 -2
  33. pulumi_gcp/networkservices/__init__.py +0 -1
  34. pulumi_gcp/networkservices/_inputs.py +27 -245
  35. pulumi_gcp/networkservices/lb_traffic_extension.py +14 -28
  36. pulumi_gcp/networkservices/outputs.py +20 -251
  37. pulumi_gcp/orgpolicy/policy.py +2 -2
  38. pulumi_gcp/pubsub/_inputs.py +0 -16
  39. pulumi_gcp/pubsub/outputs.py +0 -25
  40. pulumi_gcp/pubsub/subscription.py +4 -8
  41. pulumi_gcp/pulumi-plugin.json +1 -1
  42. pulumi_gcp/sql/user.py +4 -4
  43. pulumi_gcp/tpu/_inputs.py +2 -2
  44. pulumi_gcp/tpu/outputs.py +2 -2
  45. {pulumi_gcp-7.25.0.dist-info → pulumi_gcp-7.25.0a1717097889.dist-info}/METADATA +1 -1
  46. {pulumi_gcp-7.25.0.dist-info → pulumi_gcp-7.25.0a1717097889.dist-info}/RECORD +48 -62
  47. pulumi_gcp/compute/get_subnetworks.py +0 -157
  48. pulumi_gcp/dataplex/aspect_type.py +0 -1077
  49. pulumi_gcp/dataplex/aspect_type_iam_binding.py +0 -765
  50. pulumi_gcp/dataplex/aspect_type_iam_member.py +0 -765
  51. pulumi_gcp/dataplex/aspect_type_iam_policy.py +0 -604
  52. pulumi_gcp/dataplex/entry_group.py +0 -722
  53. pulumi_gcp/dataplex/entry_group_iam_binding.py +0 -765
  54. pulumi_gcp/dataplex/entry_group_iam_member.py +0 -765
  55. pulumi_gcp/dataplex/entry_group_iam_policy.py +0 -604
  56. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +0 -164
  57. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +0 -164
  58. pulumi_gcp/kms/autokey_config.py +0 -366
  59. pulumi_gcp/kms/key_handle.py +0 -548
  60. pulumi_gcp/networkservices/lb_route_extension.py +0 -663
  61. {pulumi_gcp-7.25.0.dist-info → pulumi_gcp-7.25.0a1717097889.dist-info}/WHEEL +0 -0
  62. {pulumi_gcp-7.25.0.dist-info → pulumi_gcp-7.25.0a1717097889.dist-info}/top_level.txt +0 -0
@@ -100,7 +100,6 @@ __all__ = [
100
100
  'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs',
101
101
  'InstanceFromMachineImageSchedulingMaxRunDurationArgs',
102
102
  'InstanceFromMachineImageSchedulingNodeAffinityArgs',
103
- 'InstanceFromMachineImageSchedulingOnInstanceStopActionArgs',
104
103
  'InstanceFromMachineImageScratchDiskArgs',
105
104
  'InstanceFromMachineImageServiceAccountArgs',
106
105
  'InstanceFromMachineImageShieldedInstanceConfigArgs',
@@ -122,7 +121,6 @@ __all__ = [
122
121
  'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
123
122
  'InstanceFromTemplateSchedulingMaxRunDurationArgs',
124
123
  'InstanceFromTemplateSchedulingNodeAffinityArgs',
125
- 'InstanceFromTemplateSchedulingOnInstanceStopActionArgs',
126
124
  'InstanceFromTemplateScratchDiskArgs',
127
125
  'InstanceFromTemplateServiceAccountArgs',
128
126
  'InstanceFromTemplateShieldedInstanceConfigArgs',
@@ -158,7 +156,6 @@ __all__ = [
158
156
  'InstanceSchedulingLocalSsdRecoveryTimeoutArgs',
159
157
  'InstanceSchedulingMaxRunDurationArgs',
160
158
  'InstanceSchedulingNodeAffinityArgs',
161
- 'InstanceSchedulingOnInstanceStopActionArgs',
162
159
  'InstanceScratchDiskArgs',
163
160
  'InstanceServiceAccountArgs',
164
161
  'InstanceSettingsMetadataArgs',
@@ -181,7 +178,6 @@ __all__ = [
181
178
  'InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
182
179
  'InstanceTemplateSchedulingMaxRunDurationArgs',
183
180
  'InstanceTemplateSchedulingNodeAffinityArgs',
184
- 'InstanceTemplateSchedulingOnInstanceStopActionArgs',
185
181
  'InstanceTemplateServiceAccountArgs',
186
182
  'InstanceTemplateShieldedInstanceConfigArgs',
187
183
  'InterconnectAttachmentPrivateInterconnectInfoArgs',
@@ -298,7 +294,6 @@ __all__ = [
298
294
  'RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
299
295
  'RegionInstanceTemplateSchedulingMaxRunDurationArgs',
300
296
  'RegionInstanceTemplateSchedulingNodeAffinityArgs',
301
- 'RegionInstanceTemplateSchedulingOnInstanceStopActionArgs',
302
297
  'RegionInstanceTemplateServiceAccountArgs',
303
298
  'RegionInstanceTemplateShieldedInstanceConfigArgs',
304
299
  'RegionNetworkEndpointGroupAppEngineArgs',
@@ -7447,7 +7442,6 @@ class InstanceFromMachineImageSchedulingArgs:
7447
7442
  min_node_cpus: Optional[pulumi.Input[int]] = None,
7448
7443
  node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromMachineImageSchedulingNodeAffinityArgs']]]] = None,
7449
7444
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
7450
- on_instance_stop_action: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']] = None,
7451
7445
  preemptible: Optional[pulumi.Input[bool]] = None,
7452
7446
  provisioning_model: Optional[pulumi.Input[str]] = None):
7453
7447
  """
@@ -7461,7 +7455,6 @@ class InstanceFromMachineImageSchedulingArgs:
7461
7455
  :param pulumi.Input['InstanceFromMachineImageSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
7462
7456
  :param pulumi.Input[Sequence[pulumi.Input['InstanceFromMachineImageSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
7463
7457
  :param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
7464
- :param pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
7465
7458
  :param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
7466
7459
  :param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
7467
7460
  """
@@ -7481,8 +7474,6 @@ class InstanceFromMachineImageSchedulingArgs:
7481
7474
  pulumi.set(__self__, "node_affinities", node_affinities)
7482
7475
  if on_host_maintenance is not None:
7483
7476
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
7484
- if on_instance_stop_action is not None:
7485
- pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
7486
7477
  if preemptible is not None:
7487
7478
  pulumi.set(__self__, "preemptible", preemptible)
7488
7479
  if provisioning_model is not None:
@@ -7584,18 +7575,6 @@ class InstanceFromMachineImageSchedulingArgs:
7584
7575
  def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
7585
7576
  pulumi.set(self, "on_host_maintenance", value)
7586
7577
 
7587
- @property
7588
- @pulumi.getter(name="onInstanceStopAction")
7589
- def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']]:
7590
- """
7591
- Defines the behaviour for instances with the instance_termination_action.
7592
- """
7593
- return pulumi.get(self, "on_instance_stop_action")
7594
-
7595
- @on_instance_stop_action.setter
7596
- def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']]):
7597
- pulumi.set(self, "on_instance_stop_action", value)
7598
-
7599
7578
  @property
7600
7579
  @pulumi.getter
7601
7580
  def preemptible(self) -> Optional[pulumi.Input[bool]]:
@@ -7751,29 +7730,6 @@ class InstanceFromMachineImageSchedulingNodeAffinityArgs:
7751
7730
  pulumi.set(self, "values", value)
7752
7731
 
7753
7732
 
7754
- @pulumi.input_type
7755
- class InstanceFromMachineImageSchedulingOnInstanceStopActionArgs:
7756
- def __init__(__self__, *,
7757
- discard_local_ssd: Optional[pulumi.Input[bool]] = None):
7758
- """
7759
- :param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
7760
- """
7761
- if discard_local_ssd is not None:
7762
- pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
7763
-
7764
- @property
7765
- @pulumi.getter(name="discardLocalSsd")
7766
- def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
7767
- """
7768
- If true, the contents of any attached Local SSD disks will be discarded.
7769
- """
7770
- return pulumi.get(self, "discard_local_ssd")
7771
-
7772
- @discard_local_ssd.setter
7773
- def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
7774
- pulumi.set(self, "discard_local_ssd", value)
7775
-
7776
-
7777
7733
  @pulumi.input_type
7778
7734
  class InstanceFromMachineImageScratchDiskArgs:
7779
7735
  def __init__(__self__, *,
@@ -9037,7 +8993,6 @@ class InstanceFromTemplateSchedulingArgs:
9037
8993
  min_node_cpus: Optional[pulumi.Input[int]] = None,
9038
8994
  node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromTemplateSchedulingNodeAffinityArgs']]]] = None,
9039
8995
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
9040
- on_instance_stop_action: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']] = None,
9041
8996
  preemptible: Optional[pulumi.Input[bool]] = None,
9042
8997
  provisioning_model: Optional[pulumi.Input[str]] = None):
9043
8998
  """
@@ -9051,7 +9006,6 @@ class InstanceFromTemplateSchedulingArgs:
9051
9006
  :param pulumi.Input['InstanceFromTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
9052
9007
  :param pulumi.Input[Sequence[pulumi.Input['InstanceFromTemplateSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
9053
9008
  :param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
9054
- :param pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
9055
9009
  :param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
9056
9010
  :param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
9057
9011
  """
@@ -9071,8 +9025,6 @@ class InstanceFromTemplateSchedulingArgs:
9071
9025
  pulumi.set(__self__, "node_affinities", node_affinities)
9072
9026
  if on_host_maintenance is not None:
9073
9027
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
9074
- if on_instance_stop_action is not None:
9075
- pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
9076
9028
  if preemptible is not None:
9077
9029
  pulumi.set(__self__, "preemptible", preemptible)
9078
9030
  if provisioning_model is not None:
@@ -9174,18 +9126,6 @@ class InstanceFromTemplateSchedulingArgs:
9174
9126
  def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
9175
9127
  pulumi.set(self, "on_host_maintenance", value)
9176
9128
 
9177
- @property
9178
- @pulumi.getter(name="onInstanceStopAction")
9179
- def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']]:
9180
- """
9181
- Defines the behaviour for instances with the instance_termination_action.
9182
- """
9183
- return pulumi.get(self, "on_instance_stop_action")
9184
-
9185
- @on_instance_stop_action.setter
9186
- def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']]):
9187
- pulumi.set(self, "on_instance_stop_action", value)
9188
-
9189
9129
  @property
9190
9130
  @pulumi.getter
9191
9131
  def preemptible(self) -> Optional[pulumi.Input[bool]]:
@@ -9341,29 +9281,6 @@ class InstanceFromTemplateSchedulingNodeAffinityArgs:
9341
9281
  pulumi.set(self, "values", value)
9342
9282
 
9343
9283
 
9344
- @pulumi.input_type
9345
- class InstanceFromTemplateSchedulingOnInstanceStopActionArgs:
9346
- def __init__(__self__, *,
9347
- discard_local_ssd: Optional[pulumi.Input[bool]] = None):
9348
- """
9349
- :param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
9350
- """
9351
- if discard_local_ssd is not None:
9352
- pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
9353
-
9354
- @property
9355
- @pulumi.getter(name="discardLocalSsd")
9356
- def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
9357
- """
9358
- If true, the contents of any attached Local SSD disks will be discarded.
9359
- """
9360
- return pulumi.get(self, "discard_local_ssd")
9361
-
9362
- @discard_local_ssd.setter
9363
- def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
9364
- pulumi.set(self, "discard_local_ssd", value)
9365
-
9366
-
9367
9284
  @pulumi.input_type
9368
9285
  class InstanceFromTemplateScratchDiskArgs:
9369
9286
  def __init__(__self__, *,
@@ -11124,7 +11041,6 @@ class InstanceSchedulingArgs:
11124
11041
  min_node_cpus: Optional[pulumi.Input[int]] = None,
11125
11042
  node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]]] = None,
11126
11043
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
11127
- on_instance_stop_action: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']] = None,
11128
11044
  preemptible: Optional[pulumi.Input[bool]] = None,
11129
11045
  provisioning_model: Optional[pulumi.Input[str]] = None):
11130
11046
  """
@@ -11137,7 +11053,8 @@ class InstanceSchedulingArgs:
11137
11053
  between 0 and 168 hours with hour granularity and the default value being 1
11138
11054
  hour.
11139
11055
  :param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
11140
- :param pulumi.Input['InstanceSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
11056
+ :param pulumi.Input['InstanceSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
11057
+ <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
11141
11058
  :param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
11142
11059
  :param pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
11143
11060
  to determine which sole-tenant nodes your instances and managed instance
@@ -11147,7 +11064,6 @@ class InstanceSchedulingArgs:
11147
11064
  :param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the
11148
11065
  instance. Can be MIGRATE or TERMINATE, for more info, read
11149
11066
  [here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options).
11150
- :param pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
11151
11067
  :param pulumi.Input[bool] preemptible: Specifies if the instance is preemptible.
11152
11068
  If this field is set to true, then `automatic_restart` must be
11153
11069
  set to false. Defaults to false.
@@ -11172,8 +11088,6 @@ class InstanceSchedulingArgs:
11172
11088
  pulumi.set(__self__, "node_affinities", node_affinities)
11173
11089
  if on_host_maintenance is not None:
11174
11090
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
11175
- if on_instance_stop_action is not None:
11176
- pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
11177
11091
  if preemptible is not None:
11178
11092
  pulumi.set(__self__, "preemptible", preemptible)
11179
11093
  if provisioning_model is not None:
@@ -11236,7 +11150,8 @@ class InstanceSchedulingArgs:
11236
11150
  @pulumi.getter(name="maxRunDuration")
11237
11151
  def max_run_duration(self) -> Optional[pulumi.Input['InstanceSchedulingMaxRunDurationArgs']]:
11238
11152
  """
11239
- The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
11153
+ The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
11154
+ <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
11240
11155
  """
11241
11156
  return pulumi.get(self, "max_run_duration")
11242
11157
 
@@ -11286,18 +11201,6 @@ class InstanceSchedulingArgs:
11286
11201
  def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
11287
11202
  pulumi.set(self, "on_host_maintenance", value)
11288
11203
 
11289
- @property
11290
- @pulumi.getter(name="onInstanceStopAction")
11291
- def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']]:
11292
- """
11293
- Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
11294
- """
11295
- return pulumi.get(self, "on_instance_stop_action")
11296
-
11297
- @on_instance_stop_action.setter
11298
- def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']]):
11299
- pulumi.set(self, "on_instance_stop_action", value)
11300
-
11301
11204
  @property
11302
11205
  @pulumi.getter
11303
11206
  def preemptible(self) -> Optional[pulumi.Input[bool]]:
@@ -11380,13 +11283,12 @@ class InstanceSchedulingMaxRunDurationArgs:
11380
11283
  seconds: pulumi.Input[int],
11381
11284
  nanos: Optional[pulumi.Input[int]] = None):
11382
11285
  """
11383
- :param pulumi.Input[int] seconds: Span of time at a resolution of a second. Must be from 0 to
11384
- 315,576,000,000 inclusive. Note: these bounds are computed from: 60
11385
- sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
11286
+ :param pulumi.Input[int] seconds: Span of time at a resolution of a second.
11287
+ Must be from 0 to 315,576,000,000 inclusive.
11386
11288
  :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
11387
- resolution. Durations less than one second are represented with a 0
11388
- `seconds` field and a positive `nanos` field. Must be from 0 to
11389
- 999,999,999 inclusive.
11289
+ resolution. Durations less than one second are represented
11290
+ with a 0 seconds field and a positive nanos field. Must
11291
+ be from 0 to 999,999,999 inclusive.
11390
11292
  """
11391
11293
  pulumi.set(__self__, "seconds", seconds)
11392
11294
  if nanos is not None:
@@ -11396,9 +11298,8 @@ class InstanceSchedulingMaxRunDurationArgs:
11396
11298
  @pulumi.getter
11397
11299
  def seconds(self) -> pulumi.Input[int]:
11398
11300
  """
11399
- Span of time at a resolution of a second. Must be from 0 to
11400
- 315,576,000,000 inclusive. Note: these bounds are computed from: 60
11401
- sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
11301
+ Span of time at a resolution of a second.
11302
+ Must be from 0 to 315,576,000,000 inclusive.
11402
11303
  """
11403
11304
  return pulumi.get(self, "seconds")
11404
11305
 
@@ -11411,9 +11312,9 @@ class InstanceSchedulingMaxRunDurationArgs:
11411
11312
  def nanos(self) -> Optional[pulumi.Input[int]]:
11412
11313
  """
11413
11314
  Span of time that's a fraction of a second at nanosecond
11414
- resolution. Durations less than one second are represented with a 0
11415
- `seconds` field and a positive `nanos` field. Must be from 0 to
11416
- 999,999,999 inclusive.
11315
+ resolution. Durations less than one second are represented
11316
+ with a 0 seconds field and a positive nanos field. Must
11317
+ be from 0 to 999,999,999 inclusive.
11417
11318
  """
11418
11319
  return pulumi.get(self, "nanos")
11419
11320
 
@@ -11476,29 +11377,6 @@ class InstanceSchedulingNodeAffinityArgs:
11476
11377
  pulumi.set(self, "values", value)
11477
11378
 
11478
11379
 
11479
- @pulumi.input_type
11480
- class InstanceSchedulingOnInstanceStopActionArgs:
11481
- def __init__(__self__, *,
11482
- discard_local_ssd: Optional[pulumi.Input[bool]] = None):
11483
- """
11484
- :param pulumi.Input[bool] discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
11485
- """
11486
- if discard_local_ssd is not None:
11487
- pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
11488
-
11489
- @property
11490
- @pulumi.getter(name="discardLocalSsd")
11491
- def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
11492
- """
11493
- Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
11494
- """
11495
- return pulumi.get(self, "discard_local_ssd")
11496
-
11497
- @discard_local_ssd.setter
11498
- def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
11499
- pulumi.set(self, "discard_local_ssd", value)
11500
-
11501
-
11502
11380
  @pulumi.input_type
11503
11381
  class InstanceScratchDiskArgs:
11504
11382
  def __init__(__self__, *,
@@ -12907,7 +12785,6 @@ class InstanceTemplateSchedulingArgs:
12907
12785
  min_node_cpus: Optional[pulumi.Input[int]] = None,
12908
12786
  node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
12909
12787
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
12910
- on_instance_stop_action: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
12911
12788
  preemptible: Optional[pulumi.Input[bool]] = None,
12912
12789
  provisioning_model: Optional[pulumi.Input[str]] = None):
12913
12790
  """
@@ -12920,7 +12797,8 @@ class InstanceTemplateSchedulingArgs:
12920
12797
  between 0 and 168 hours with hour granularity and the default value being 1
12921
12798
  hour.
12922
12799
  :param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
12923
- :param pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
12800
+ :param pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
12801
+ <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
12924
12802
  :param pulumi.Input[int] min_node_cpus: Minimum number of cpus for the instance.
12925
12803
  :param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
12926
12804
  to determine which sole-tenant nodes your instances and managed instance
@@ -12929,7 +12807,6 @@ class InstanceTemplateSchedulingArgs:
12929
12807
  Structure documented below.
12930
12808
  :param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
12931
12809
  instance.
12932
- :param pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
12933
12810
  :param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
12934
12811
  false. Read more on this
12935
12812
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -12954,8 +12831,6 @@ class InstanceTemplateSchedulingArgs:
12954
12831
  pulumi.set(__self__, "node_affinities", node_affinities)
12955
12832
  if on_host_maintenance is not None:
12956
12833
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
12957
- if on_instance_stop_action is not None:
12958
- pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
12959
12834
  if preemptible is not None:
12960
12835
  pulumi.set(__self__, "preemptible", preemptible)
12961
12836
  if provisioning_model is not None:
@@ -13018,7 +12893,8 @@ class InstanceTemplateSchedulingArgs:
13018
12893
  @pulumi.getter(name="maxRunDuration")
13019
12894
  def max_run_duration(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs']]:
13020
12895
  """
13021
- The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
12896
+ The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
12897
+ <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
13022
12898
  """
13023
12899
  return pulumi.get(self, "max_run_duration")
13024
12900
 
@@ -13067,18 +12943,6 @@ class InstanceTemplateSchedulingArgs:
13067
12943
  def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
13068
12944
  pulumi.set(self, "on_host_maintenance", value)
13069
12945
 
13070
- @property
13071
- @pulumi.getter(name="onInstanceStopAction")
13072
- def on_instance_stop_action(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']]:
13073
- """
13074
- Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
13075
- """
13076
- return pulumi.get(self, "on_instance_stop_action")
13077
-
13078
- @on_instance_stop_action.setter
13079
- def on_instance_stop_action(self, value: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']]):
13080
- pulumi.set(self, "on_instance_stop_action", value)
13081
-
13082
12946
  @property
13083
12947
  @pulumi.getter
13084
12948
  def preemptible(self) -> Optional[pulumi.Input[bool]]:
@@ -13161,13 +13025,12 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
13161
13025
  seconds: pulumi.Input[int],
13162
13026
  nanos: Optional[pulumi.Input[int]] = None):
13163
13027
  """
13164
- :param pulumi.Input[int] seconds: Span of time at a resolution of a second. Must be from 0 to
13165
- 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13166
- sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13028
+ :param pulumi.Input[int] seconds: Span of time at a resolution of a second.
13029
+ Must be from 0 to 315,576,000,000 inclusive.
13167
13030
  :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
13168
- resolution. Durations less than one second are represented with a 0
13169
- `seconds` field and a positive `nanos` field. Must be from 0 to
13170
- 999,999,999 inclusive.
13031
+ resolution. Durations less than one second are represented
13032
+ with a 0 seconds field and a positive nanos field. Must
13033
+ be from 0 to 999,999,999 inclusive.
13171
13034
  """
13172
13035
  pulumi.set(__self__, "seconds", seconds)
13173
13036
  if nanos is not None:
@@ -13177,9 +13040,8 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
13177
13040
  @pulumi.getter
13178
13041
  def seconds(self) -> pulumi.Input[int]:
13179
13042
  """
13180
- Span of time at a resolution of a second. Must be from 0 to
13181
- 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13182
- sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13043
+ Span of time at a resolution of a second.
13044
+ Must be from 0 to 315,576,000,000 inclusive.
13183
13045
  """
13184
13046
  return pulumi.get(self, "seconds")
13185
13047
 
@@ -13192,9 +13054,9 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
13192
13054
  def nanos(self) -> Optional[pulumi.Input[int]]:
13193
13055
  """
13194
13056
  Span of time that's a fraction of a second at nanosecond
13195
- resolution. Durations less than one second are represented with a 0
13196
- `seconds` field and a positive `nanos` field. Must be from 0 to
13197
- 999,999,999 inclusive.
13057
+ resolution. Durations less than one second are represented
13058
+ with a 0 seconds field and a positive nanos field. Must
13059
+ be from 0 to 999,999,999 inclusive.
13198
13060
  """
13199
13061
  return pulumi.get(self, "nanos")
13200
13062
 
@@ -13253,29 +13115,6 @@ class InstanceTemplateSchedulingNodeAffinityArgs:
13253
13115
  pulumi.set(self, "values", value)
13254
13116
 
13255
13117
 
13256
- @pulumi.input_type
13257
- class InstanceTemplateSchedulingOnInstanceStopActionArgs:
13258
- def __init__(__self__, *,
13259
- discard_local_ssd: Optional[pulumi.Input[bool]] = None):
13260
- """
13261
- :param pulumi.Input[bool] discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
13262
- """
13263
- if discard_local_ssd is not None:
13264
- pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
13265
-
13266
- @property
13267
- @pulumi.getter(name="discardLocalSsd")
13268
- def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
13269
- """
13270
- Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
13271
- """
13272
- return pulumi.get(self, "discard_local_ssd")
13273
-
13274
- @discard_local_ssd.setter
13275
- def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
13276
- pulumi.set(self, "discard_local_ssd", value)
13277
-
13278
-
13279
13118
  @pulumi.input_type
13280
13119
  class InstanceTemplateServiceAccountArgs:
13281
13120
  def __init__(__self__, *,
@@ -21252,7 +21091,6 @@ class RegionInstanceTemplateSchedulingArgs:
21252
21091
  min_node_cpus: Optional[pulumi.Input[int]] = None,
21253
21092
  node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
21254
21093
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
21255
- on_instance_stop_action: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
21256
21094
  preemptible: Optional[pulumi.Input[bool]] = None,
21257
21095
  provisioning_model: Optional[pulumi.Input[str]] = None):
21258
21096
  """
@@ -21274,7 +21112,6 @@ class RegionInstanceTemplateSchedulingArgs:
21274
21112
  Structure documented below.
21275
21113
  :param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
21276
21114
  instance.
21277
- :param pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
21278
21115
  :param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
21279
21116
  false. Read more on this
21280
21117
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -21299,8 +21136,6 @@ class RegionInstanceTemplateSchedulingArgs:
21299
21136
  pulumi.set(__self__, "node_affinities", node_affinities)
21300
21137
  if on_host_maintenance is not None:
21301
21138
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
21302
- if on_instance_stop_action is not None:
21303
- pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
21304
21139
  if preemptible is not None:
21305
21140
  pulumi.set(__self__, "preemptible", preemptible)
21306
21141
  if provisioning_model is not None:
@@ -21412,18 +21247,6 @@ class RegionInstanceTemplateSchedulingArgs:
21412
21247
  def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
21413
21248
  pulumi.set(self, "on_host_maintenance", value)
21414
21249
 
21415
- @property
21416
- @pulumi.getter(name="onInstanceStopAction")
21417
- def on_instance_stop_action(self) -> Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']]:
21418
- """
21419
- Defines the behaviour for instances with the instance_termination_action.
21420
- """
21421
- return pulumi.get(self, "on_instance_stop_action")
21422
-
21423
- @on_instance_stop_action.setter
21424
- def on_instance_stop_action(self, value: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']]):
21425
- pulumi.set(self, "on_instance_stop_action", value)
21426
-
21427
21250
  @property
21428
21251
  @pulumi.getter
21429
21252
  def preemptible(self) -> Optional[pulumi.Input[bool]]:
@@ -21598,29 +21421,6 @@ class RegionInstanceTemplateSchedulingNodeAffinityArgs:
21598
21421
  pulumi.set(self, "values", value)
21599
21422
 
21600
21423
 
21601
- @pulumi.input_type
21602
- class RegionInstanceTemplateSchedulingOnInstanceStopActionArgs:
21603
- def __init__(__self__, *,
21604
- discard_local_ssd: Optional[pulumi.Input[bool]] = None):
21605
- """
21606
- :param pulumi.Input[bool] discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
21607
- """
21608
- if discard_local_ssd is not None:
21609
- pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
21610
-
21611
- @property
21612
- @pulumi.getter(name="discardLocalSsd")
21613
- def discard_local_ssd(self) -> Optional[pulumi.Input[bool]]:
21614
- """
21615
- If true, the contents of any attached Local SSD disks will be discarded.
21616
- """
21617
- return pulumi.get(self, "discard_local_ssd")
21618
-
21619
- @discard_local_ssd.setter
21620
- def discard_local_ssd(self, value: Optional[pulumi.Input[bool]]):
21621
- pulumi.set(self, "discard_local_ssd", value)
21622
-
21623
-
21624
21424
  @pulumi.input_type
21625
21425
  class RegionInstanceTemplateServiceAccountArgs:
21626
21426
  def __init__(__self__, *,
@@ -30404,7 +30204,6 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
30404
30204
  :param pulumi.Input[str] json_parsing: Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30405
30205
  * `DISABLED` - Don't parse JSON payloads in POST bodies.
30406
30206
  * `STANDARD` - Parse JSON payloads in POST bodies.
30407
- * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
30408
30207
  :param pulumi.Input[str] log_level: Log level to use. Defaults to `NORMAL`.
30409
30208
  * `NORMAL` - Normal log level.
30410
30209
  * `VERBOSE` - Verbose log level.
@@ -30439,7 +30238,6 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
30439
30238
  Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30440
30239
  * `DISABLED` - Don't parse JSON payloads in POST bodies.
30441
30240
  * `STANDARD` - Parse JSON payloads in POST bodies.
30442
- * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
30443
30241
  """
30444
30242
  return pulumi.get(self, "json_parsing")
30445
30243
 
@@ -31200,73 +30998,102 @@ class SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs:
31200
30998
  @pulumi.input_type
31201
30999
  class SecurityPolicyRuleRateLimitOptionsArgs:
31202
31000
  def __init__(__self__, *,
31001
+ conform_action: pulumi.Input[str],
31002
+ exceed_action: pulumi.Input[str],
31003
+ rate_limit_threshold: pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'],
31203
31004
  ban_duration_sec: Optional[pulumi.Input[int]] = None,
31204
31005
  ban_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']] = None,
31205
- conform_action: Optional[pulumi.Input[str]] = None,
31206
31006
  enforce_on_key: Optional[pulumi.Input[str]] = None,
31207
31007
  enforce_on_key_configs: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]] = None,
31208
31008
  enforce_on_key_name: Optional[pulumi.Input[str]] = None,
31209
- exceed_action: Optional[pulumi.Input[str]] = None,
31210
- exceed_redirect_options: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']] = None,
31211
- rate_limit_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']] = None):
31009
+ exceed_redirect_options: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']] = None):
31212
31010
  """
31213
- :param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban".
31011
+ :param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold. Valid option is `allow` only.
31012
+ :param pulumi.Input[str] exceed_action: When a request is denied, returns the HTTP response code specified.
31013
+ Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
31014
+ :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting. Structure is documented below.
31015
+ :param pulumi.Input[int] ban_duration_sec: Can only be specified if the `action` for the rule is `rate_based_ban`.
31214
31016
  If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.
31215
- :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban".
31216
- If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
31217
- Structure is documented below.
31218
- :param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold.
31219
- Valid option is "allow" only.
31220
- :param pulumi.Input[str] enforce_on_key: Determines the key to enforce the rateLimitThreshold on. Possible values are:
31221
- * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured.
31222
- * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
31223
- * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
31224
- * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
31225
- * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
31226
- * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
31227
- * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
31228
- * REGION_CODE: The country/region from which the request originates.
31229
- * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
31230
- * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
31231
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31232
- :param pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]] enforce_on_key_configs: If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
31233
- You can specify up to 3 enforceOnKeyConfigs.
31234
- If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
31235
- Structure is documented below.
31017
+ :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the `action` for the rule is `rate_based_ban`.
31018
+ If specified, the key will be banned for the configured `ban_duration_sec` when the number of requests that exceed the `rate_limit_threshold` also
31019
+ exceed this `ban_threshold`. Structure is documented below.
31020
+ :param pulumi.Input[str] enforce_on_key: Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31021
+
31022
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31023
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31024
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31025
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31026
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31027
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31028
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31029
+ * `REGION_CODE`: The country/region from which the request originates.
31030
+ :param pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]] enforce_on_key_configs: If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which rate limit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If `enforce_on_key_configs` is specified, `enforce_on_key` must be set to an empty string. Structure is documented below.
31031
+
31032
+ **Note:** To avoid the conflict between `enforce_on_key` and `enforce_on_key_configs`, the field `enforce_on_key` needs to be set to an empty string.
31236
31033
  :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
31237
- HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
31238
- HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31239
- :param pulumi.Input[str] exceed_action: Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint.
31240
- Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
31241
- :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.
31242
- Structure is documented below.
31243
- :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting.
31244
- Structure is documented below.
31034
+
31035
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31036
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31037
+ :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
31245
31038
  """
31039
+ pulumi.set(__self__, "conform_action", conform_action)
31040
+ pulumi.set(__self__, "exceed_action", exceed_action)
31041
+ pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
31246
31042
  if ban_duration_sec is not None:
31247
31043
  pulumi.set(__self__, "ban_duration_sec", ban_duration_sec)
31248
31044
  if ban_threshold is not None:
31249
31045
  pulumi.set(__self__, "ban_threshold", ban_threshold)
31250
- if conform_action is not None:
31251
- pulumi.set(__self__, "conform_action", conform_action)
31252
31046
  if enforce_on_key is not None:
31253
31047
  pulumi.set(__self__, "enforce_on_key", enforce_on_key)
31254
31048
  if enforce_on_key_configs is not None:
31255
31049
  pulumi.set(__self__, "enforce_on_key_configs", enforce_on_key_configs)
31256
31050
  if enforce_on_key_name is not None:
31257
31051
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
31258
- if exceed_action is not None:
31259
- pulumi.set(__self__, "exceed_action", exceed_action)
31260
31052
  if exceed_redirect_options is not None:
31261
31053
  pulumi.set(__self__, "exceed_redirect_options", exceed_redirect_options)
31262
- if rate_limit_threshold is not None:
31263
- pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
31054
+
31055
+ @property
31056
+ @pulumi.getter(name="conformAction")
31057
+ def conform_action(self) -> pulumi.Input[str]:
31058
+ """
31059
+ Action to take for requests that are under the configured rate limit threshold. Valid option is `allow` only.
31060
+ """
31061
+ return pulumi.get(self, "conform_action")
31062
+
31063
+ @conform_action.setter
31064
+ def conform_action(self, value: pulumi.Input[str]):
31065
+ pulumi.set(self, "conform_action", value)
31066
+
31067
+ @property
31068
+ @pulumi.getter(name="exceedAction")
31069
+ def exceed_action(self) -> pulumi.Input[str]:
31070
+ """
31071
+ When a request is denied, returns the HTTP response code specified.
31072
+ Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
31073
+ """
31074
+ return pulumi.get(self, "exceed_action")
31075
+
31076
+ @exceed_action.setter
31077
+ def exceed_action(self, value: pulumi.Input[str]):
31078
+ pulumi.set(self, "exceed_action", value)
31079
+
31080
+ @property
31081
+ @pulumi.getter(name="rateLimitThreshold")
31082
+ def rate_limit_threshold(self) -> pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']:
31083
+ """
31084
+ Threshold at which to begin ratelimiting. Structure is documented below.
31085
+ """
31086
+ return pulumi.get(self, "rate_limit_threshold")
31087
+
31088
+ @rate_limit_threshold.setter
31089
+ def rate_limit_threshold(self, value: pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']):
31090
+ pulumi.set(self, "rate_limit_threshold", value)
31264
31091
 
31265
31092
  @property
31266
31093
  @pulumi.getter(name="banDurationSec")
31267
31094
  def ban_duration_sec(self) -> Optional[pulumi.Input[int]]:
31268
31095
  """
31269
- Can only be specified if the action for the rule is "rate_based_ban".
31096
+ Can only be specified if the `action` for the rule is `rate_based_ban`.
31270
31097
  If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.
31271
31098
  """
31272
31099
  return pulumi.get(self, "ban_duration_sec")
@@ -31279,9 +31106,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31279
31106
  @pulumi.getter(name="banThreshold")
31280
31107
  def ban_threshold(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]:
31281
31108
  """
31282
- Can only be specified if the action for the rule is "rate_based_ban".
31283
- If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
31284
- Structure is documented below.
31109
+ Can only be specified if the `action` for the rule is `rate_based_ban`.
31110
+ If specified, the key will be banned for the configured `ban_duration_sec` when the number of requests that exceed the `rate_limit_threshold` also
31111
+ exceed this `ban_threshold`. Structure is documented below.
31285
31112
  """
31286
31113
  return pulumi.get(self, "ban_threshold")
31287
31114
 
@@ -31289,35 +31116,20 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31289
31116
  def ban_threshold(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]):
31290
31117
  pulumi.set(self, "ban_threshold", value)
31291
31118
 
31292
- @property
31293
- @pulumi.getter(name="conformAction")
31294
- def conform_action(self) -> Optional[pulumi.Input[str]]:
31295
- """
31296
- Action to take for requests that are under the configured rate limit threshold.
31297
- Valid option is "allow" only.
31298
- """
31299
- return pulumi.get(self, "conform_action")
31300
-
31301
- @conform_action.setter
31302
- def conform_action(self, value: Optional[pulumi.Input[str]]):
31303
- pulumi.set(self, "conform_action", value)
31304
-
31305
31119
  @property
31306
31120
  @pulumi.getter(name="enforceOnKey")
31307
31121
  def enforce_on_key(self) -> Optional[pulumi.Input[str]]:
31308
31122
  """
31309
- Determines the key to enforce the rateLimitThreshold on. Possible values are:
31310
- * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured.
31311
- * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
31312
- * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
31313
- * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
31314
- * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
31315
- * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
31316
- * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
31317
- * REGION_CODE: The country/region from which the request originates.
31318
- * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
31319
- * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
31320
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31123
+ Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31124
+
31125
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31126
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31127
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31128
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31129
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31130
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31131
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31132
+ * `REGION_CODE`: The country/region from which the request originates.
31321
31133
  """
31322
31134
  return pulumi.get(self, "enforce_on_key")
31323
31135
 
@@ -31329,10 +31141,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31329
31141
  @pulumi.getter(name="enforceOnKeyConfigs")
31330
31142
  def enforce_on_key_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]]:
31331
31143
  """
31332
- If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
31333
- You can specify up to 3 enforceOnKeyConfigs.
31334
- If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
31335
- Structure is documented below.
31144
+ If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which rate limit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If `enforce_on_key_configs` is specified, `enforce_on_key` must be set to an empty string. Structure is documented below.
31145
+
31146
+ **Note:** To avoid the conflict between `enforce_on_key` and `enforce_on_key_configs`, the field `enforce_on_key` needs to be set to an empty string.
31336
31147
  """
31337
31148
  return pulumi.get(self, "enforce_on_key_configs")
31338
31149
 
@@ -31345,8 +31156,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31345
31156
  def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
31346
31157
  """
31347
31158
  Rate limit key name applicable only for the following key types:
31348
- HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
31349
- HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31159
+
31160
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31161
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31350
31162
  """
31351
31163
  return pulumi.get(self, "enforce_on_key_name")
31352
31164
 
@@ -31354,25 +31166,11 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31354
31166
  def enforce_on_key_name(self, value: Optional[pulumi.Input[str]]):
31355
31167
  pulumi.set(self, "enforce_on_key_name", value)
31356
31168
 
31357
- @property
31358
- @pulumi.getter(name="exceedAction")
31359
- def exceed_action(self) -> Optional[pulumi.Input[str]]:
31360
- """
31361
- Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint.
31362
- Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
31363
- """
31364
- return pulumi.get(self, "exceed_action")
31365
-
31366
- @exceed_action.setter
31367
- def exceed_action(self, value: Optional[pulumi.Input[str]]):
31368
- pulumi.set(self, "exceed_action", value)
31369
-
31370
31169
  @property
31371
31170
  @pulumi.getter(name="exceedRedirectOptions")
31372
31171
  def exceed_redirect_options(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]:
31373
31172
  """
31374
- Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.
31375
- Structure is documented below.
31173
+ Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
31376
31174
  """
31377
31175
  return pulumi.get(self, "exceed_redirect_options")
31378
31176
 
@@ -31380,56 +31178,41 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
31380
31178
  def exceed_redirect_options(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]):
31381
31179
  pulumi.set(self, "exceed_redirect_options", value)
31382
31180
 
31383
- @property
31384
- @pulumi.getter(name="rateLimitThreshold")
31385
- def rate_limit_threshold(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]:
31386
- """
31387
- Threshold at which to begin ratelimiting.
31388
- Structure is documented below.
31389
- """
31390
- return pulumi.get(self, "rate_limit_threshold")
31391
-
31392
- @rate_limit_threshold.setter
31393
- def rate_limit_threshold(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]):
31394
- pulumi.set(self, "rate_limit_threshold", value)
31395
-
31396
31181
 
31397
31182
  @pulumi.input_type
31398
31183
  class SecurityPolicyRuleRateLimitOptionsBanThresholdArgs:
31399
31184
  def __init__(__self__, *,
31400
- count: Optional[pulumi.Input[int]] = None,
31401
- interval_sec: Optional[pulumi.Input[int]] = None):
31185
+ count: pulumi.Input[int],
31186
+ interval_sec: pulumi.Input[int]):
31402
31187
  """
31403
31188
  :param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
31404
31189
  :param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
31405
31190
  """
31406
- if count is not None:
31407
- pulumi.set(__self__, "count", count)
31408
- if interval_sec is not None:
31409
- pulumi.set(__self__, "interval_sec", interval_sec)
31191
+ pulumi.set(__self__, "count", count)
31192
+ pulumi.set(__self__, "interval_sec", interval_sec)
31410
31193
 
31411
31194
  @property
31412
31195
  @pulumi.getter
31413
- def count(self) -> Optional[pulumi.Input[int]]:
31196
+ def count(self) -> pulumi.Input[int]:
31414
31197
  """
31415
31198
  Number of HTTP(S) requests for calculating the threshold.
31416
31199
  """
31417
31200
  return pulumi.get(self, "count")
31418
31201
 
31419
31202
  @count.setter
31420
- def count(self, value: Optional[pulumi.Input[int]]):
31203
+ def count(self, value: pulumi.Input[int]):
31421
31204
  pulumi.set(self, "count", value)
31422
31205
 
31423
31206
  @property
31424
31207
  @pulumi.getter(name="intervalSec")
31425
- def interval_sec(self) -> Optional[pulumi.Input[int]]:
31208
+ def interval_sec(self) -> pulumi.Input[int]:
31426
31209
  """
31427
31210
  Interval over which the threshold is computed.
31428
31211
  """
31429
31212
  return pulumi.get(self, "interval_sec")
31430
31213
 
31431
31214
  @interval_sec.setter
31432
- def interval_sec(self, value: Optional[pulumi.Input[int]]):
31215
+ def interval_sec(self, value: pulumi.Input[int]):
31433
31216
  pulumi.set(self, "interval_sec", value)
31434
31217
 
31435
31218
 
@@ -31440,20 +31223,19 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
31440
31223
  enforce_on_key_type: Optional[pulumi.Input[str]] = None):
31441
31224
  """
31442
31225
  :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
31443
- HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
31444
- HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31445
- :param pulumi.Input[str] enforce_on_key_type: Determines the key to enforce the rateLimitThreshold on. Possible values are:
31446
- * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured.
31447
- * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
31448
- * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
31449
- * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
31450
- * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
31451
- * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
31452
- * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
31453
- * REGION_CODE: The country/region from which the request originates.
31454
- * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
31455
- * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
31456
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31226
+
31227
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31228
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31229
+ :param pulumi.Input[str] enforce_on_key_type: Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31230
+
31231
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31232
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31233
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31234
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31235
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31236
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31237
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31238
+ * `REGION_CODE`: The country/region from which the request originates.
31457
31239
  """
31458
31240
  if enforce_on_key_name is not None:
31459
31241
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
@@ -31465,8 +31247,9 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
31465
31247
  def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
31466
31248
  """
31467
31249
  Rate limit key name applicable only for the following key types:
31468
- HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
31469
- HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31250
+
31251
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31252
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31470
31253
  """
31471
31254
  return pulumi.get(self, "enforce_on_key_name")
31472
31255
 
@@ -31478,18 +31261,16 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
31478
31261
  @pulumi.getter(name="enforceOnKeyType")
31479
31262
  def enforce_on_key_type(self) -> Optional[pulumi.Input[str]]:
31480
31263
  """
31481
- Determines the key to enforce the rateLimitThreshold on. Possible values are:
31482
- * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured.
31483
- * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
31484
- * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
31485
- * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
31486
- * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
31487
- * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
31488
- * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
31489
- * REGION_CODE: The country/region from which the request originates.
31490
- * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
31491
- * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
31492
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31264
+ Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31265
+
31266
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31267
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31268
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31269
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31270
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31271
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31272
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31273
+ * `REGION_CODE`: The country/region from which the request originates.
31493
31274
  """
31494
31275
  return pulumi.get(self, "enforce_on_key_type")
31495
31276
 
@@ -31501,78 +31282,75 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
31501
31282
  @pulumi.input_type
31502
31283
  class SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs:
31503
31284
  def __init__(__self__, *,
31504
- target: Optional[pulumi.Input[str]] = None,
31505
- type: Optional[pulumi.Input[str]] = None):
31285
+ type: pulumi.Input[str],
31286
+ target: Optional[pulumi.Input[str]] = None):
31506
31287
  """
31507
- :param pulumi.Input[str] target: Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
31508
31288
  :param pulumi.Input[str] type: Type of the redirect action.
31289
+ :param pulumi.Input[str] target: Target for the redirect action. This is required if the type is `EXTERNAL_302` and cannot be specified for `GOOGLE_RECAPTCHA`.
31509
31290
  """
31291
+ pulumi.set(__self__, "type", type)
31510
31292
  if target is not None:
31511
31293
  pulumi.set(__self__, "target", target)
31512
- if type is not None:
31513
- pulumi.set(__self__, "type", type)
31514
31294
 
31515
31295
  @property
31516
31296
  @pulumi.getter
31517
- def target(self) -> Optional[pulumi.Input[str]]:
31297
+ def type(self) -> pulumi.Input[str]:
31518
31298
  """
31519
- Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
31299
+ Type of the redirect action.
31520
31300
  """
31521
- return pulumi.get(self, "target")
31301
+ return pulumi.get(self, "type")
31522
31302
 
31523
- @target.setter
31524
- def target(self, value: Optional[pulumi.Input[str]]):
31525
- pulumi.set(self, "target", value)
31303
+ @type.setter
31304
+ def type(self, value: pulumi.Input[str]):
31305
+ pulumi.set(self, "type", value)
31526
31306
 
31527
31307
  @property
31528
31308
  @pulumi.getter
31529
- def type(self) -> Optional[pulumi.Input[str]]:
31309
+ def target(self) -> Optional[pulumi.Input[str]]:
31530
31310
  """
31531
- Type of the redirect action.
31311
+ Target for the redirect action. This is required if the type is `EXTERNAL_302` and cannot be specified for `GOOGLE_RECAPTCHA`.
31532
31312
  """
31533
- return pulumi.get(self, "type")
31313
+ return pulumi.get(self, "target")
31534
31314
 
31535
- @type.setter
31536
- def type(self, value: Optional[pulumi.Input[str]]):
31537
- pulumi.set(self, "type", value)
31315
+ @target.setter
31316
+ def target(self, value: Optional[pulumi.Input[str]]):
31317
+ pulumi.set(self, "target", value)
31538
31318
 
31539
31319
 
31540
31320
  @pulumi.input_type
31541
31321
  class SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs:
31542
31322
  def __init__(__self__, *,
31543
- count: Optional[pulumi.Input[int]] = None,
31544
- interval_sec: Optional[pulumi.Input[int]] = None):
31323
+ count: pulumi.Input[int],
31324
+ interval_sec: pulumi.Input[int]):
31545
31325
  """
31546
31326
  :param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
31547
31327
  :param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
31548
31328
  """
31549
- if count is not None:
31550
- pulumi.set(__self__, "count", count)
31551
- if interval_sec is not None:
31552
- pulumi.set(__self__, "interval_sec", interval_sec)
31329
+ pulumi.set(__self__, "count", count)
31330
+ pulumi.set(__self__, "interval_sec", interval_sec)
31553
31331
 
31554
31332
  @property
31555
31333
  @pulumi.getter
31556
- def count(self) -> Optional[pulumi.Input[int]]:
31334
+ def count(self) -> pulumi.Input[int]:
31557
31335
  """
31558
31336
  Number of HTTP(S) requests for calculating the threshold.
31559
31337
  """
31560
31338
  return pulumi.get(self, "count")
31561
31339
 
31562
31340
  @count.setter
31563
- def count(self, value: Optional[pulumi.Input[int]]):
31341
+ def count(self, value: pulumi.Input[int]):
31564
31342
  pulumi.set(self, "count", value)
31565
31343
 
31566
31344
  @property
31567
31345
  @pulumi.getter(name="intervalSec")
31568
- def interval_sec(self) -> Optional[pulumi.Input[int]]:
31346
+ def interval_sec(self) -> pulumi.Input[int]:
31569
31347
  """
31570
31348
  Interval over which the threshold is computed.
31571
31349
  """
31572
31350
  return pulumi.get(self, "interval_sec")
31573
31351
 
31574
31352
  @interval_sec.setter
31575
- def interval_sec(self, value: Optional[pulumi.Input[int]]):
31353
+ def interval_sec(self, value: pulumi.Input[int]):
31576
31354
  pulumi.set(self, "interval_sec", value)
31577
31355
 
31578
31356