pulumi-gcp 7.25.0a1717104660__py3-none-any.whl → 7.25.0a1717407024__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.
- pulumi_gcp/__init__.py +88 -0
- pulumi_gcp/appengine/_inputs.py +18 -0
- pulumi_gcp/appengine/domain_mapping.py +1 -1
- pulumi_gcp/appengine/outputs.py +16 -0
- pulumi_gcp/bigquery/_inputs.py +286 -2
- pulumi_gcp/bigquery/outputs.py +289 -2
- pulumi_gcp/bigquery/table.py +77 -35
- pulumi_gcp/cloudfunctionsv2/function.py +0 -4
- pulumi_gcp/cloudrun/_inputs.py +80 -4
- pulumi_gcp/cloudrun/outputs.py +137 -4
- pulumi_gcp/composer/user_workloads_secret.py +4 -4
- pulumi_gcp/compute/__init__.py +1 -0
- pulumi_gcp/compute/_inputs.py +398 -176
- pulumi_gcp/compute/get_subnetworks.py +157 -0
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/interconnect_attachment.py +82 -0
- pulumi_gcp/compute/network_endpoint.py +2 -2
- pulumi_gcp/compute/network_endpoint_list.py +2 -2
- pulumi_gcp/compute/outputs.py +609 -161
- pulumi_gcp/compute/region_ssl_policy.py +39 -40
- pulumi_gcp/compute/security_policy_rule.py +55 -1
- pulumi_gcp/container/_inputs.py +560 -0
- pulumi_gcp/container/outputs.py +1106 -51
- pulumi_gcp/dataplex/__init__.py +10 -0
- pulumi_gcp/dataplex/_inputs.py +160 -0
- pulumi_gcp/dataplex/aspect_type.py +1077 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
- pulumi_gcp/dataplex/entry_group.py +722 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
- pulumi_gcp/dataplex/outputs.py +112 -0
- pulumi_gcp/datastream/connection_profile.py +47 -0
- pulumi_gcp/datastream/private_connection.py +47 -0
- pulumi_gcp/datastream/stream.py +47 -0
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/autokey_config.py +366 -0
- pulumi_gcp/kms/key_handle.py +548 -0
- pulumi_gcp/networkservices/__init__.py +1 -0
- pulumi_gcp/networkservices/_inputs.py +245 -27
- pulumi_gcp/networkservices/lb_route_extension.py +663 -0
- pulumi_gcp/networkservices/lb_traffic_extension.py +28 -14
- pulumi_gcp/networkservices/outputs.py +251 -20
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/pubsub/_inputs.py +16 -0
- pulumi_gcp/pubsub/outputs.py +25 -0
- pulumi_gcp/pubsub/subscription.py +8 -4
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/sql/user.py +4 -4
- pulumi_gcp/tpu/_inputs.py +2 -2
- pulumi_gcp/tpu/outputs.py +2 -2
- {pulumi_gcp-7.25.0a1717104660.dist-info → pulumi_gcp-7.25.0a1717407024.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.25.0a1717104660.dist-info → pulumi_gcp-7.25.0a1717407024.dist-info}/RECORD +59 -45
- {pulumi_gcp-7.25.0a1717104660.dist-info → pulumi_gcp-7.25.0a1717407024.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.25.0a1717104660.dist-info → pulumi_gcp-7.25.0a1717407024.dist-info}/top_level.txt +0 -0
pulumi_gcp/compute/_inputs.py
CHANGED
@@ -100,6 +100,7 @@ __all__ = [
|
|
100
100
|
'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs',
|
101
101
|
'InstanceFromMachineImageSchedulingMaxRunDurationArgs',
|
102
102
|
'InstanceFromMachineImageSchedulingNodeAffinityArgs',
|
103
|
+
'InstanceFromMachineImageSchedulingOnInstanceStopActionArgs',
|
103
104
|
'InstanceFromMachineImageScratchDiskArgs',
|
104
105
|
'InstanceFromMachineImageServiceAccountArgs',
|
105
106
|
'InstanceFromMachineImageShieldedInstanceConfigArgs',
|
@@ -121,6 +122,7 @@ __all__ = [
|
|
121
122
|
'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
122
123
|
'InstanceFromTemplateSchedulingMaxRunDurationArgs',
|
123
124
|
'InstanceFromTemplateSchedulingNodeAffinityArgs',
|
125
|
+
'InstanceFromTemplateSchedulingOnInstanceStopActionArgs',
|
124
126
|
'InstanceFromTemplateScratchDiskArgs',
|
125
127
|
'InstanceFromTemplateServiceAccountArgs',
|
126
128
|
'InstanceFromTemplateShieldedInstanceConfigArgs',
|
@@ -156,6 +158,7 @@ __all__ = [
|
|
156
158
|
'InstanceSchedulingLocalSsdRecoveryTimeoutArgs',
|
157
159
|
'InstanceSchedulingMaxRunDurationArgs',
|
158
160
|
'InstanceSchedulingNodeAffinityArgs',
|
161
|
+
'InstanceSchedulingOnInstanceStopActionArgs',
|
159
162
|
'InstanceScratchDiskArgs',
|
160
163
|
'InstanceServiceAccountArgs',
|
161
164
|
'InstanceSettingsMetadataArgs',
|
@@ -178,6 +181,7 @@ __all__ = [
|
|
178
181
|
'InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
179
182
|
'InstanceTemplateSchedulingMaxRunDurationArgs',
|
180
183
|
'InstanceTemplateSchedulingNodeAffinityArgs',
|
184
|
+
'InstanceTemplateSchedulingOnInstanceStopActionArgs',
|
181
185
|
'InstanceTemplateServiceAccountArgs',
|
182
186
|
'InstanceTemplateShieldedInstanceConfigArgs',
|
183
187
|
'InterconnectAttachmentPrivateInterconnectInfoArgs',
|
@@ -294,6 +298,7 @@ __all__ = [
|
|
294
298
|
'RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs',
|
295
299
|
'RegionInstanceTemplateSchedulingMaxRunDurationArgs',
|
296
300
|
'RegionInstanceTemplateSchedulingNodeAffinityArgs',
|
301
|
+
'RegionInstanceTemplateSchedulingOnInstanceStopActionArgs',
|
297
302
|
'RegionInstanceTemplateServiceAccountArgs',
|
298
303
|
'RegionInstanceTemplateShieldedInstanceConfigArgs',
|
299
304
|
'RegionNetworkEndpointGroupAppEngineArgs',
|
@@ -7442,6 +7447,7 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7442
7447
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
7443
7448
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromMachineImageSchedulingNodeAffinityArgs']]]] = None,
|
7444
7449
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
7450
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']] = None,
|
7445
7451
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
7446
7452
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
7447
7453
|
"""
|
@@ -7455,6 +7461,7 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7455
7461
|
:param pulumi.Input['InstanceFromMachineImageSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
|
7456
7462
|
: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.
|
7457
7463
|
: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.
|
7458
7465
|
:param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
|
7459
7466
|
:param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
|
7460
7467
|
"""
|
@@ -7474,6 +7481,8 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7474
7481
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
7475
7482
|
if on_host_maintenance is not None:
|
7476
7483
|
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)
|
7477
7486
|
if preemptible is not None:
|
7478
7487
|
pulumi.set(__self__, "preemptible", preemptible)
|
7479
7488
|
if provisioning_model is not None:
|
@@ -7575,6 +7584,18 @@ class InstanceFromMachineImageSchedulingArgs:
|
|
7575
7584
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
7576
7585
|
pulumi.set(self, "on_host_maintenance", value)
|
7577
7586
|
|
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
|
+
|
7578
7599
|
@property
|
7579
7600
|
@pulumi.getter
|
7580
7601
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -7730,6 +7751,29 @@ class InstanceFromMachineImageSchedulingNodeAffinityArgs:
|
|
7730
7751
|
pulumi.set(self, "values", value)
|
7731
7752
|
|
7732
7753
|
|
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
|
+
|
7733
7777
|
@pulumi.input_type
|
7734
7778
|
class InstanceFromMachineImageScratchDiskArgs:
|
7735
7779
|
def __init__(__self__, *,
|
@@ -8993,6 +9037,7 @@ class InstanceFromTemplateSchedulingArgs:
|
|
8993
9037
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
8994
9038
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceFromTemplateSchedulingNodeAffinityArgs']]]] = None,
|
8995
9039
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
9040
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
8996
9041
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
8997
9042
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
8998
9043
|
"""
|
@@ -9006,6 +9051,7 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9006
9051
|
:param pulumi.Input['InstanceFromTemplateSchedulingMaxRunDurationArgs'] max_run_duration: The timeout for new network connections to hosts.
|
9007
9052
|
: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.
|
9008
9053
|
: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.
|
9009
9055
|
:param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
|
9010
9056
|
:param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
|
9011
9057
|
"""
|
@@ -9025,6 +9071,8 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9025
9071
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
9026
9072
|
if on_host_maintenance is not None:
|
9027
9073
|
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)
|
9028
9076
|
if preemptible is not None:
|
9029
9077
|
pulumi.set(__self__, "preemptible", preemptible)
|
9030
9078
|
if provisioning_model is not None:
|
@@ -9126,6 +9174,18 @@ class InstanceFromTemplateSchedulingArgs:
|
|
9126
9174
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
9127
9175
|
pulumi.set(self, "on_host_maintenance", value)
|
9128
9176
|
|
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
|
+
|
9129
9189
|
@property
|
9130
9190
|
@pulumi.getter
|
9131
9191
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -9281,6 +9341,29 @@ class InstanceFromTemplateSchedulingNodeAffinityArgs:
|
|
9281
9341
|
pulumi.set(self, "values", value)
|
9282
9342
|
|
9283
9343
|
|
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
|
+
|
9284
9367
|
@pulumi.input_type
|
9285
9368
|
class InstanceFromTemplateScratchDiskArgs:
|
9286
9369
|
def __init__(__self__, *,
|
@@ -11041,6 +11124,7 @@ class InstanceSchedulingArgs:
|
|
11041
11124
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
11042
11125
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]]] = None,
|
11043
11126
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
11127
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']] = None,
|
11044
11128
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
11045
11129
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
11046
11130
|
"""
|
@@ -11053,8 +11137,7 @@ class InstanceSchedulingArgs:
|
|
11053
11137
|
between 0 and 168 hours with hour granularity and the default value being 1
|
11054
11138
|
hour.
|
11055
11139
|
:param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
|
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`.
|
11057
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
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.
|
11058
11141
|
:param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
|
11059
11142
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
|
11060
11143
|
to determine which sole-tenant nodes your instances and managed instance
|
@@ -11064,6 +11147,7 @@ class InstanceSchedulingArgs:
|
|
11064
11147
|
:param pulumi.Input[str] on_host_maintenance: Describes maintenance behavior for the
|
11065
11148
|
instance. Can be MIGRATE or TERMINATE, for more info, read
|
11066
11149
|
[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.
|
11067
11151
|
:param pulumi.Input[bool] preemptible: Specifies if the instance is preemptible.
|
11068
11152
|
If this field is set to true, then `automatic_restart` must be
|
11069
11153
|
set to false. Defaults to false.
|
@@ -11088,6 +11172,8 @@ class InstanceSchedulingArgs:
|
|
11088
11172
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
11089
11173
|
if on_host_maintenance is not None:
|
11090
11174
|
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)
|
11091
11177
|
if preemptible is not None:
|
11092
11178
|
pulumi.set(__self__, "preemptible", preemptible)
|
11093
11179
|
if provisioning_model is not None:
|
@@ -11150,8 +11236,7 @@ class InstanceSchedulingArgs:
|
|
11150
11236
|
@pulumi.getter(name="maxRunDuration")
|
11151
11237
|
def max_run_duration(self) -> Optional[pulumi.Input['InstanceSchedulingMaxRunDurationArgs']]:
|
11152
11238
|
"""
|
11153
|
-
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
11154
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
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.
|
11155
11240
|
"""
|
11156
11241
|
return pulumi.get(self, "max_run_duration")
|
11157
11242
|
|
@@ -11201,6 +11286,18 @@ class InstanceSchedulingArgs:
|
|
11201
11286
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
11202
11287
|
pulumi.set(self, "on_host_maintenance", value)
|
11203
11288
|
|
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
|
+
|
11204
11301
|
@property
|
11205
11302
|
@pulumi.getter
|
11206
11303
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -11283,12 +11380,13 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11283
11380
|
seconds: pulumi.Input[int],
|
11284
11381
|
nanos: Optional[pulumi.Input[int]] = None):
|
11285
11382
|
"""
|
11286
|
-
:param pulumi.Input[int] seconds: Span of time at a resolution of a second.
|
11287
|
-
|
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.
|
11288
11386
|
:param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
|
11289
|
-
resolution. Durations less than one second are represented
|
11290
|
-
|
11291
|
-
|
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.
|
11292
11390
|
"""
|
11293
11391
|
pulumi.set(__self__, "seconds", seconds)
|
11294
11392
|
if nanos is not None:
|
@@ -11298,8 +11396,9 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11298
11396
|
@pulumi.getter
|
11299
11397
|
def seconds(self) -> pulumi.Input[int]:
|
11300
11398
|
"""
|
11301
|
-
Span of time at a resolution of a second.
|
11302
|
-
|
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.
|
11303
11402
|
"""
|
11304
11403
|
return pulumi.get(self, "seconds")
|
11305
11404
|
|
@@ -11312,9 +11411,9 @@ class InstanceSchedulingMaxRunDurationArgs:
|
|
11312
11411
|
def nanos(self) -> Optional[pulumi.Input[int]]:
|
11313
11412
|
"""
|
11314
11413
|
Span of time that's a fraction of a second at nanosecond
|
11315
|
-
resolution. Durations less than one second are represented
|
11316
|
-
|
11317
|
-
|
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.
|
11318
11417
|
"""
|
11319
11418
|
return pulumi.get(self, "nanos")
|
11320
11419
|
|
@@ -11377,6 +11476,29 @@ class InstanceSchedulingNodeAffinityArgs:
|
|
11377
11476
|
pulumi.set(self, "values", value)
|
11378
11477
|
|
11379
11478
|
|
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
|
+
|
11380
11502
|
@pulumi.input_type
|
11381
11503
|
class InstanceScratchDiskArgs:
|
11382
11504
|
def __init__(__self__, *,
|
@@ -12785,6 +12907,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12785
12907
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
12786
12908
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
|
12787
12909
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
12910
|
+
on_instance_stop_action: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
12788
12911
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
12789
12912
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
12790
12913
|
"""
|
@@ -12797,8 +12920,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12797
12920
|
between 0 and 168 hours with hour granularity and the default value being 1
|
12798
12921
|
hour.
|
12799
12922
|
:param pulumi.Input[str] maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
|
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`.
|
12801
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
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.
|
12802
12924
|
:param pulumi.Input[int] min_node_cpus: Minimum number of cpus for the instance.
|
12803
12925
|
:param pulumi.Input[Sequence[pulumi.Input['InstanceTemplateSchedulingNodeAffinityArgs']]] node_affinities: Specifies node affinities or anti-affinities
|
12804
12926
|
to determine which sole-tenant nodes your instances and managed instance
|
@@ -12807,6 +12929,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12807
12929
|
Structure documented below.
|
12808
12930
|
:param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
|
12809
12931
|
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.
|
12810
12933
|
:param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
|
12811
12934
|
false. Read more on this
|
12812
12935
|
[here](https://cloud.google.com/compute/docs/instances/preemptible).
|
@@ -12831,6 +12954,8 @@ class InstanceTemplateSchedulingArgs:
|
|
12831
12954
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
12832
12955
|
if on_host_maintenance is not None:
|
12833
12956
|
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)
|
12834
12959
|
if preemptible is not None:
|
12835
12960
|
pulumi.set(__self__, "preemptible", preemptible)
|
12836
12961
|
if provisioning_model is not None:
|
@@ -12893,8 +13018,7 @@ class InstanceTemplateSchedulingArgs:
|
|
12893
13018
|
@pulumi.getter(name="maxRunDuration")
|
12894
13019
|
def max_run_duration(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingMaxRunDurationArgs']]:
|
12895
13020
|
"""
|
12896
|
-
The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`.
|
12897
|
-
<a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
|
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.
|
12898
13022
|
"""
|
12899
13023
|
return pulumi.get(self, "max_run_duration")
|
12900
13024
|
|
@@ -12943,6 +13067,18 @@ class InstanceTemplateSchedulingArgs:
|
|
12943
13067
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
12944
13068
|
pulumi.set(self, "on_host_maintenance", value)
|
12945
13069
|
|
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
|
+
|
12946
13082
|
@property
|
12947
13083
|
@pulumi.getter
|
12948
13084
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -13025,12 +13161,13 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13025
13161
|
seconds: pulumi.Input[int],
|
13026
13162
|
nanos: Optional[pulumi.Input[int]] = None):
|
13027
13163
|
"""
|
13028
|
-
:param pulumi.Input[int] seconds: Span of time at a resolution of a second.
|
13029
|
-
|
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.
|
13030
13167
|
:param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond
|
13031
|
-
resolution. Durations less than one second are represented
|
13032
|
-
|
13033
|
-
|
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.
|
13034
13171
|
"""
|
13035
13172
|
pulumi.set(__self__, "seconds", seconds)
|
13036
13173
|
if nanos is not None:
|
@@ -13040,8 +13177,9 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13040
13177
|
@pulumi.getter
|
13041
13178
|
def seconds(self) -> pulumi.Input[int]:
|
13042
13179
|
"""
|
13043
|
-
Span of time at a resolution of a second.
|
13044
|
-
|
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.
|
13045
13183
|
"""
|
13046
13184
|
return pulumi.get(self, "seconds")
|
13047
13185
|
|
@@ -13054,9 +13192,9 @@ class InstanceTemplateSchedulingMaxRunDurationArgs:
|
|
13054
13192
|
def nanos(self) -> Optional[pulumi.Input[int]]:
|
13055
13193
|
"""
|
13056
13194
|
Span of time that's a fraction of a second at nanosecond
|
13057
|
-
resolution. Durations less than one second are represented
|
13058
|
-
|
13059
|
-
|
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.
|
13060
13198
|
"""
|
13061
13199
|
return pulumi.get(self, "nanos")
|
13062
13200
|
|
@@ -13115,6 +13253,29 @@ class InstanceTemplateSchedulingNodeAffinityArgs:
|
|
13115
13253
|
pulumi.set(self, "values", value)
|
13116
13254
|
|
13117
13255
|
|
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
|
+
|
13118
13279
|
@pulumi.input_type
|
13119
13280
|
class InstanceTemplateServiceAccountArgs:
|
13120
13281
|
def __init__(__self__, *,
|
@@ -21091,6 +21252,7 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
21091
21252
|
min_node_cpus: Optional[pulumi.Input[int]] = None,
|
21092
21253
|
node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceTemplateSchedulingNodeAffinityArgs']]]] = None,
|
21093
21254
|
on_host_maintenance: Optional[pulumi.Input[str]] = None,
|
21255
|
+
on_instance_stop_action: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
|
21094
21256
|
preemptible: Optional[pulumi.Input[bool]] = None,
|
21095
21257
|
provisioning_model: Optional[pulumi.Input[str]] = None):
|
21096
21258
|
"""
|
@@ -21112,6 +21274,7 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
21112
21274
|
Structure documented below.
|
21113
21275
|
:param pulumi.Input[str] on_host_maintenance: Defines the maintenance behavior for this
|
21114
21276
|
instance.
|
21277
|
+
:param pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
|
21115
21278
|
:param pulumi.Input[bool] preemptible: Allows instance to be preempted. This defaults to
|
21116
21279
|
false. Read more on this
|
21117
21280
|
[here](https://cloud.google.com/compute/docs/instances/preemptible).
|
@@ -21136,6 +21299,8 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
21136
21299
|
pulumi.set(__self__, "node_affinities", node_affinities)
|
21137
21300
|
if on_host_maintenance is not None:
|
21138
21301
|
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)
|
21139
21304
|
if preemptible is not None:
|
21140
21305
|
pulumi.set(__self__, "preemptible", preemptible)
|
21141
21306
|
if provisioning_model is not None:
|
@@ -21247,6 +21412,18 @@ class RegionInstanceTemplateSchedulingArgs:
|
|
21247
21412
|
def on_host_maintenance(self, value: Optional[pulumi.Input[str]]):
|
21248
21413
|
pulumi.set(self, "on_host_maintenance", value)
|
21249
21414
|
|
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
|
+
|
21250
21427
|
@property
|
21251
21428
|
@pulumi.getter
|
21252
21429
|
def preemptible(self) -> Optional[pulumi.Input[bool]]:
|
@@ -21421,6 +21598,29 @@ class RegionInstanceTemplateSchedulingNodeAffinityArgs:
|
|
21421
21598
|
pulumi.set(self, "values", value)
|
21422
21599
|
|
21423
21600
|
|
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
|
+
|
21424
21624
|
@pulumi.input_type
|
21425
21625
|
class RegionInstanceTemplateServiceAccountArgs:
|
21426
21626
|
def __init__(__self__, *,
|
@@ -30204,6 +30404,7 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
|
|
30204
30404
|
:param pulumi.Input[str] json_parsing: Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
|
30205
30405
|
* `DISABLED` - Don't parse JSON payloads in POST bodies.
|
30206
30406
|
* `STANDARD` - Parse JSON payloads in POST bodies.
|
30407
|
+
* `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
|
30207
30408
|
:param pulumi.Input[str] log_level: Log level to use. Defaults to `NORMAL`.
|
30208
30409
|
* `NORMAL` - Normal log level.
|
30209
30410
|
* `VERBOSE` - Verbose log level.
|
@@ -30238,6 +30439,7 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
|
|
30238
30439
|
Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
|
30239
30440
|
* `DISABLED` - Don't parse JSON payloads in POST bodies.
|
30240
30441
|
* `STANDARD` - Parse JSON payloads in POST bodies.
|
30442
|
+
* `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
|
30241
30443
|
"""
|
30242
30444
|
return pulumi.get(self, "json_parsing")
|
30243
30445
|
|
@@ -30998,102 +31200,73 @@ class SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs:
|
|
30998
31200
|
@pulumi.input_type
|
30999
31201
|
class SecurityPolicyRuleRateLimitOptionsArgs:
|
31000
31202
|
def __init__(__self__, *,
|
31001
|
-
conform_action: pulumi.Input[str],
|
31002
|
-
exceed_action: pulumi.Input[str],
|
31003
|
-
rate_limit_threshold: pulumi.Input['SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'],
|
31004
31203
|
ban_duration_sec: Optional[pulumi.Input[int]] = None,
|
31005
31204
|
ban_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']] = None,
|
31205
|
+
conform_action: Optional[pulumi.Input[str]] = None,
|
31006
31206
|
enforce_on_key: Optional[pulumi.Input[str]] = None,
|
31007
31207
|
enforce_on_key_configs: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]] = None,
|
31008
31208
|
enforce_on_key_name: Optional[pulumi.Input[str]] = None,
|
31009
|
-
|
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):
|
31010
31212
|
"""
|
31011
|
-
:param pulumi.Input[
|
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`.
|
31213
|
+
:param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban".
|
31016
31214
|
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.
|
31017
|
-
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the
|
31018
|
-
If specified, the key will be banned for the configured
|
31019
|
-
|
31020
|
-
:param pulumi.Input[str]
|
31021
|
-
|
31022
|
-
|
31023
|
-
*
|
31024
|
-
*
|
31025
|
-
*
|
31026
|
-
*
|
31027
|
-
*
|
31028
|
-
*
|
31029
|
-
*
|
31030
|
-
|
31031
|
-
|
31032
|
-
|
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.
|
31033
31236
|
:param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
|
31034
|
-
|
31035
|
-
|
31036
|
-
|
31037
|
-
|
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.
|
31038
31245
|
"""
|
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)
|
31042
31246
|
if ban_duration_sec is not None:
|
31043
31247
|
pulumi.set(__self__, "ban_duration_sec", ban_duration_sec)
|
31044
31248
|
if ban_threshold is not None:
|
31045
31249
|
pulumi.set(__self__, "ban_threshold", ban_threshold)
|
31250
|
+
if conform_action is not None:
|
31251
|
+
pulumi.set(__self__, "conform_action", conform_action)
|
31046
31252
|
if enforce_on_key is not None:
|
31047
31253
|
pulumi.set(__self__, "enforce_on_key", enforce_on_key)
|
31048
31254
|
if enforce_on_key_configs is not None:
|
31049
31255
|
pulumi.set(__self__, "enforce_on_key_configs", enforce_on_key_configs)
|
31050
31256
|
if enforce_on_key_name is not None:
|
31051
31257
|
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)
|
31052
31260
|
if exceed_redirect_options is not None:
|
31053
31261
|
pulumi.set(__self__, "exceed_redirect_options", exceed_redirect_options)
|
31054
|
-
|
31055
|
-
|
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)
|
31262
|
+
if rate_limit_threshold is not None:
|
31263
|
+
pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
|
31091
31264
|
|
31092
31265
|
@property
|
31093
31266
|
@pulumi.getter(name="banDurationSec")
|
31094
31267
|
def ban_duration_sec(self) -> Optional[pulumi.Input[int]]:
|
31095
31268
|
"""
|
31096
|
-
Can only be specified if the
|
31269
|
+
Can only be specified if the action for the rule is "rate_based_ban".
|
31097
31270
|
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.
|
31098
31271
|
"""
|
31099
31272
|
return pulumi.get(self, "ban_duration_sec")
|
@@ -31106,9 +31279,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31106
31279
|
@pulumi.getter(name="banThreshold")
|
31107
31280
|
def ban_threshold(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]:
|
31108
31281
|
"""
|
31109
|
-
Can only be specified if the
|
31110
|
-
If specified, the key will be banned for the configured
|
31111
|
-
|
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.
|
31112
31285
|
"""
|
31113
31286
|
return pulumi.get(self, "ban_threshold")
|
31114
31287
|
|
@@ -31116,20 +31289,35 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31116
31289
|
def ban_threshold(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]):
|
31117
31290
|
pulumi.set(self, "ban_threshold", value)
|
31118
31291
|
|
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
|
+
|
31119
31305
|
@property
|
31120
31306
|
@pulumi.getter(name="enforceOnKey")
|
31121
31307
|
def enforce_on_key(self) -> Optional[pulumi.Input[str]]:
|
31122
31308
|
"""
|
31123
|
-
Determines the key to enforce the
|
31124
|
-
|
31125
|
-
*
|
31126
|
-
*
|
31127
|
-
*
|
31128
|
-
*
|
31129
|
-
*
|
31130
|
-
*
|
31131
|
-
*
|
31132
|
-
*
|
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`.
|
31133
31321
|
"""
|
31134
31322
|
return pulumi.get(self, "enforce_on_key")
|
31135
31323
|
|
@@ -31141,9 +31329,10 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31141
31329
|
@pulumi.getter(name="enforceOnKeyConfigs")
|
31142
31330
|
def enforce_on_key_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]]:
|
31143
31331
|
"""
|
31144
|
-
If specified, any combination of values of
|
31145
|
-
|
31146
|
-
|
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.
|
31147
31336
|
"""
|
31148
31337
|
return pulumi.get(self, "enforce_on_key_configs")
|
31149
31338
|
|
@@ -31156,9 +31345,8 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31156
31345
|
def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
|
31157
31346
|
"""
|
31158
31347
|
Rate limit key name applicable only for the following key types:
|
31159
|
-
|
31160
|
-
|
31161
|
-
* `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
|
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.
|
31162
31350
|
"""
|
31163
31351
|
return pulumi.get(self, "enforce_on_key_name")
|
31164
31352
|
|
@@ -31166,11 +31354,25 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31166
31354
|
def enforce_on_key_name(self, value: Optional[pulumi.Input[str]]):
|
31167
31355
|
pulumi.set(self, "enforce_on_key_name", value)
|
31168
31356
|
|
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
|
+
|
31169
31370
|
@property
|
31170
31371
|
@pulumi.getter(name="exceedRedirectOptions")
|
31171
31372
|
def exceed_redirect_options(self) -> Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]:
|
31172
31373
|
"""
|
31173
|
-
Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
|
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.
|
31174
31376
|
"""
|
31175
31377
|
return pulumi.get(self, "exceed_redirect_options")
|
31176
31378
|
|
@@ -31178,41 +31380,56 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
|
|
31178
31380
|
def exceed_redirect_options(self, value: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs']]):
|
31179
31381
|
pulumi.set(self, "exceed_redirect_options", value)
|
31180
31382
|
|
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
|
+
|
31181
31396
|
|
31182
31397
|
@pulumi.input_type
|
31183
31398
|
class SecurityPolicyRuleRateLimitOptionsBanThresholdArgs:
|
31184
31399
|
def __init__(__self__, *,
|
31185
|
-
count: pulumi.Input[int],
|
31186
|
-
interval_sec: pulumi.Input[int]):
|
31400
|
+
count: Optional[pulumi.Input[int]] = None,
|
31401
|
+
interval_sec: Optional[pulumi.Input[int]] = None):
|
31187
31402
|
"""
|
31188
31403
|
:param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
|
31189
31404
|
:param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
|
31190
31405
|
"""
|
31191
|
-
|
31192
|
-
|
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)
|
31193
31410
|
|
31194
31411
|
@property
|
31195
31412
|
@pulumi.getter
|
31196
|
-
def count(self) -> pulumi.Input[int]:
|
31413
|
+
def count(self) -> Optional[pulumi.Input[int]]:
|
31197
31414
|
"""
|
31198
31415
|
Number of HTTP(S) requests for calculating the threshold.
|
31199
31416
|
"""
|
31200
31417
|
return pulumi.get(self, "count")
|
31201
31418
|
|
31202
31419
|
@count.setter
|
31203
|
-
def count(self, value: pulumi.Input[int]):
|
31420
|
+
def count(self, value: Optional[pulumi.Input[int]]):
|
31204
31421
|
pulumi.set(self, "count", value)
|
31205
31422
|
|
31206
31423
|
@property
|
31207
31424
|
@pulumi.getter(name="intervalSec")
|
31208
|
-
def interval_sec(self) -> pulumi.Input[int]:
|
31425
|
+
def interval_sec(self) -> Optional[pulumi.Input[int]]:
|
31209
31426
|
"""
|
31210
31427
|
Interval over which the threshold is computed.
|
31211
31428
|
"""
|
31212
31429
|
return pulumi.get(self, "interval_sec")
|
31213
31430
|
|
31214
31431
|
@interval_sec.setter
|
31215
|
-
def interval_sec(self, value: pulumi.Input[int]):
|
31432
|
+
def interval_sec(self, value: Optional[pulumi.Input[int]]):
|
31216
31433
|
pulumi.set(self, "interval_sec", value)
|
31217
31434
|
|
31218
31435
|
|
@@ -31223,19 +31440,20 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
31223
31440
|
enforce_on_key_type: Optional[pulumi.Input[str]] = None):
|
31224
31441
|
"""
|
31225
31442
|
:param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
|
31226
|
-
|
31227
|
-
|
31228
|
-
|
31229
|
-
|
31230
|
-
|
31231
|
-
*
|
31232
|
-
*
|
31233
|
-
*
|
31234
|
-
*
|
31235
|
-
*
|
31236
|
-
*
|
31237
|
-
*
|
31238
|
-
*
|
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`.
|
31239
31457
|
"""
|
31240
31458
|
if enforce_on_key_name is not None:
|
31241
31459
|
pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
|
@@ -31247,9 +31465,8 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
31247
31465
|
def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
|
31248
31466
|
"""
|
31249
31467
|
Rate limit key name applicable only for the following key types:
|
31250
|
-
|
31251
|
-
|
31252
|
-
* `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
|
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.
|
31253
31470
|
"""
|
31254
31471
|
return pulumi.get(self, "enforce_on_key_name")
|
31255
31472
|
|
@@ -31261,16 +31478,18 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
31261
31478
|
@pulumi.getter(name="enforceOnKeyType")
|
31262
31479
|
def enforce_on_key_type(self) -> Optional[pulumi.Input[str]]:
|
31263
31480
|
"""
|
31264
|
-
Determines the key to enforce the
|
31265
|
-
|
31266
|
-
*
|
31267
|
-
*
|
31268
|
-
*
|
31269
|
-
*
|
31270
|
-
*
|
31271
|
-
*
|
31272
|
-
*
|
31273
|
-
*
|
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`.
|
31274
31493
|
"""
|
31275
31494
|
return pulumi.get(self, "enforce_on_key_type")
|
31276
31495
|
|
@@ -31282,75 +31501,78 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
|
|
31282
31501
|
@pulumi.input_type
|
31283
31502
|
class SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs:
|
31284
31503
|
def __init__(__self__, *,
|
31285
|
-
|
31286
|
-
|
31504
|
+
target: Optional[pulumi.Input[str]] = None,
|
31505
|
+
type: Optional[pulumi.Input[str]] = None):
|
31287
31506
|
"""
|
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.
|
31288
31508
|
: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`.
|
31290
31509
|
"""
|
31291
|
-
pulumi.set(__self__, "type", type)
|
31292
31510
|
if target is not None:
|
31293
31511
|
pulumi.set(__self__, "target", target)
|
31512
|
+
if type is not None:
|
31513
|
+
pulumi.set(__self__, "type", type)
|
31294
31514
|
|
31295
31515
|
@property
|
31296
31516
|
@pulumi.getter
|
31297
|
-
def
|
31517
|
+
def target(self) -> Optional[pulumi.Input[str]]:
|
31298
31518
|
"""
|
31299
|
-
|
31519
|
+
Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
|
31300
31520
|
"""
|
31301
|
-
return pulumi.get(self, "
|
31521
|
+
return pulumi.get(self, "target")
|
31302
31522
|
|
31303
|
-
@
|
31304
|
-
def
|
31305
|
-
pulumi.set(self, "
|
31523
|
+
@target.setter
|
31524
|
+
def target(self, value: Optional[pulumi.Input[str]]):
|
31525
|
+
pulumi.set(self, "target", value)
|
31306
31526
|
|
31307
31527
|
@property
|
31308
31528
|
@pulumi.getter
|
31309
|
-
def
|
31529
|
+
def type(self) -> Optional[pulumi.Input[str]]:
|
31310
31530
|
"""
|
31311
|
-
|
31531
|
+
Type of the redirect action.
|
31312
31532
|
"""
|
31313
|
-
return pulumi.get(self, "
|
31533
|
+
return pulumi.get(self, "type")
|
31314
31534
|
|
31315
|
-
@
|
31316
|
-
def
|
31317
|
-
pulumi.set(self, "
|
31535
|
+
@type.setter
|
31536
|
+
def type(self, value: Optional[pulumi.Input[str]]):
|
31537
|
+
pulumi.set(self, "type", value)
|
31318
31538
|
|
31319
31539
|
|
31320
31540
|
@pulumi.input_type
|
31321
31541
|
class SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs:
|
31322
31542
|
def __init__(__self__, *,
|
31323
|
-
count: pulumi.Input[int],
|
31324
|
-
interval_sec: pulumi.Input[int]):
|
31543
|
+
count: Optional[pulumi.Input[int]] = None,
|
31544
|
+
interval_sec: Optional[pulumi.Input[int]] = None):
|
31325
31545
|
"""
|
31326
31546
|
:param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
|
31327
31547
|
:param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
|
31328
31548
|
"""
|
31329
|
-
|
31330
|
-
|
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)
|
31331
31553
|
|
31332
31554
|
@property
|
31333
31555
|
@pulumi.getter
|
31334
|
-
def count(self) -> pulumi.Input[int]:
|
31556
|
+
def count(self) -> Optional[pulumi.Input[int]]:
|
31335
31557
|
"""
|
31336
31558
|
Number of HTTP(S) requests for calculating the threshold.
|
31337
31559
|
"""
|
31338
31560
|
return pulumi.get(self, "count")
|
31339
31561
|
|
31340
31562
|
@count.setter
|
31341
|
-
def count(self, value: pulumi.Input[int]):
|
31563
|
+
def count(self, value: Optional[pulumi.Input[int]]):
|
31342
31564
|
pulumi.set(self, "count", value)
|
31343
31565
|
|
31344
31566
|
@property
|
31345
31567
|
@pulumi.getter(name="intervalSec")
|
31346
|
-
def interval_sec(self) -> pulumi.Input[int]:
|
31568
|
+
def interval_sec(self) -> Optional[pulumi.Input[int]]:
|
31347
31569
|
"""
|
31348
31570
|
Interval over which the threshold is computed.
|
31349
31571
|
"""
|
31350
31572
|
return pulumi.get(self, "interval_sec")
|
31351
31573
|
|
31352
31574
|
@interval_sec.setter
|
31353
|
-
def interval_sec(self, value: pulumi.Input[int]):
|
31575
|
+
def interval_sec(self, value: Optional[pulumi.Input[int]]):
|
31354
31576
|
pulumi.set(self, "interval_sec", value)
|
31355
31577
|
|
31356
31578
|
|