pulumi-gcp 7.28.0a1718995220__py3-none-any.whl → 7.29.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/_utilities.py +35 -0
  3. pulumi_gcp/activedirectory/domain.py +14 -14
  4. pulumi_gcp/activedirectory/domain_trust.py +14 -14
  5. pulumi_gcp/alloydb/backup.py +8 -8
  6. pulumi_gcp/alloydb/cluster.py +11 -17
  7. pulumi_gcp/alloydb/instance.py +8 -8
  8. pulumi_gcp/alloydb/user.py +8 -8
  9. pulumi_gcp/apigee/addons_config.py +4 -4
  10. pulumi_gcp/apigee/endpoint_attachment.py +2 -2
  11. pulumi_gcp/apigee/env_group.py +2 -2
  12. pulumi_gcp/apigee/environment.py +2 -2
  13. pulumi_gcp/apigee/instance.py +8 -8
  14. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +10 -10
  15. pulumi_gcp/apigee/nat_address.py +2 -2
  16. pulumi_gcp/apigee/organization.py +6 -6
  17. pulumi_gcp/apigee/sync_authorization.py +4 -4
  18. pulumi_gcp/apigee/target_server.py +10 -10
  19. pulumi_gcp/apphub/service.py +20 -20
  20. pulumi_gcp/apphub/service_project_attachment.py +8 -8
  21. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  22. pulumi_gcp/applicationintegration/client.py +6 -18
  23. pulumi_gcp/artifactregistry/__init__.py +1 -0
  24. pulumi_gcp/artifactregistry/_inputs.py +4 -4
  25. pulumi_gcp/artifactregistry/get_docker_image.py +244 -0
  26. pulumi_gcp/artifactregistry/outputs.py +6 -6
  27. pulumi_gcp/artifactregistry/repository.py +10 -10
  28. pulumi_gcp/backupdisasterrecovery/management_server.py +2 -2
  29. pulumi_gcp/bigquery/_inputs.py +2 -6
  30. pulumi_gcp/bigquery/data_transfer_config.py +4 -4
  31. pulumi_gcp/bigquery/dataset.py +75 -0
  32. pulumi_gcp/bigquery/get_dataset.py +11 -1
  33. pulumi_gcp/bigquery/job.py +6 -6
  34. pulumi_gcp/bigquery/outputs.py +2 -6
  35. pulumi_gcp/bigtable/_inputs.py +1 -3
  36. pulumi_gcp/bigtable/instance.py +3 -9
  37. pulumi_gcp/bigtable/outputs.py +1 -3
  38. pulumi_gcp/billing/_inputs.py +22 -0
  39. pulumi_gcp/billing/budget.py +50 -0
  40. pulumi_gcp/billing/outputs.py +20 -0
  41. pulumi_gcp/certificateauthority/authority.py +2 -2
  42. pulumi_gcp/certificateauthority/certificate.py +4 -4
  43. pulumi_gcp/certificatemanager/_inputs.py +2 -6
  44. pulumi_gcp/certificatemanager/certificate.py +4 -4
  45. pulumi_gcp/certificatemanager/certificate_issuance_config.py +2 -2
  46. pulumi_gcp/certificatemanager/outputs.py +2 -6
  47. pulumi_gcp/cloudbuild/bitbucket_server_config.py +6 -6
  48. pulumi_gcp/cloudbuild/trigger.py +2 -2
  49. pulumi_gcp/cloudbuild/worker_pool.py +6 -6
  50. pulumi_gcp/cloudbuildv2/connection.py +2 -2
  51. pulumi_gcp/cloudbuildv2/repository.py +2 -2
  52. pulumi_gcp/cloudfunctionsv2/function.py +28 -28
  53. pulumi_gcp/cloudids/endpoint.py +2 -2
  54. pulumi_gcp/cloudrun/_inputs.py +3 -9
  55. pulumi_gcp/cloudrun/outputs.py +3 -9
  56. pulumi_gcp/cloudrunv2/get_job.py +21 -1
  57. pulumi_gcp/cloudrunv2/job.py +163 -19
  58. pulumi_gcp/cloudrunv2/service.py +8 -8
  59. pulumi_gcp/compute/_inputs.py +83 -0
  60. pulumi_gcp/compute/disk.py +3 -9
  61. pulumi_gcp/compute/firewall.py +3 -9
  62. pulumi_gcp/compute/forwarding_rule.py +22 -22
  63. pulumi_gcp/compute/outputs.py +166 -1
  64. pulumi_gcp/compute/packet_mirroring.py +2 -2
  65. pulumi_gcp/compute/project_cloud_armor_tier.py +2 -2
  66. pulumi_gcp/compute/region_disk.py +3 -9
  67. pulumi_gcp/compute/region_security_policy_rule.py +2 -2
  68. pulumi_gcp/compute/route.py +2 -2
  69. pulumi_gcp/compute/subnetwork.py +2 -6
  70. pulumi_gcp/compute/target_instance.py +2 -2
  71. pulumi_gcp/compute/vpn_gateway.py +2 -2
  72. pulumi_gcp/compute/vpn_tunnel.py +2 -2
  73. pulumi_gcp/container/_inputs.py +2 -6
  74. pulumi_gcp/container/outputs.py +2 -6
  75. pulumi_gcp/databasemigrationservice/connection_profile.py +16 -16
  76. pulumi_gcp/datacatalog/policy_tag.py +2 -2
  77. pulumi_gcp/datafusion/instance.py +4 -8
  78. pulumi_gcp/dataplex/asset.py +2 -2
  79. pulumi_gcp/dataplex/datascan.py +2 -2
  80. pulumi_gcp/dataproc/_inputs.py +100 -0
  81. pulumi_gcp/dataproc/metastore_service.py +172 -0
  82. pulumi_gcp/dataproc/outputs.py +192 -1
  83. pulumi_gcp/dataproc/workflow_template.py +3 -9
  84. pulumi_gcp/datastore/data_store_index.py +2 -2
  85. pulumi_gcp/datastream/stream.py +6 -6
  86. pulumi_gcp/diagflow/entity_type.py +2 -2
  87. pulumi_gcp/diagflow/fulfillment.py +2 -2
  88. pulumi_gcp/diagflow/intent.py +4 -4
  89. pulumi_gcp/edgecontainer/node_pool.py +2 -2
  90. pulumi_gcp/edgecontainer/vpn_connection.py +2 -2
  91. pulumi_gcp/eventarc/channel.py +2 -2
  92. pulumi_gcp/eventarc/google_channel_config.py +2 -2
  93. pulumi_gcp/filestore/instance.py +3 -9
  94. pulumi_gcp/firebase/app_check_app_attest_config.py +8 -8
  95. pulumi_gcp/firebase/app_check_debug_token.py +4 -4
  96. pulumi_gcp/firebase/app_check_device_check_config.py +4 -4
  97. pulumi_gcp/firebase/app_check_play_integrity_config.py +8 -8
  98. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +4 -4
  99. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +4 -4
  100. pulumi_gcp/firebase/app_check_service_config.py +6 -6
  101. pulumi_gcp/firebase/database_instance.py +2 -2
  102. pulumi_gcp/firestore/database.py +4 -4
  103. pulumi_gcp/firestore/document.py +12 -12
  104. pulumi_gcp/folder/access_approval_settings.py +2 -2
  105. pulumi_gcp/gkehub/_inputs.py +4 -8
  106. pulumi_gcp/gkehub/membership.py +3 -9
  107. pulumi_gcp/gkehub/membership_binding.py +4 -4
  108. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  109. pulumi_gcp/gkehub/namespace.py +2 -2
  110. pulumi_gcp/gkehub/outputs.py +4 -8
  111. pulumi_gcp/gkehub/scope_rbac_role_binding.py +2 -2
  112. pulumi_gcp/healthcare/fhir_store.py +3 -9
  113. pulumi_gcp/healthcare/hl7_store.py +3 -9
  114. pulumi_gcp/integrationconnectors/connection.py +2 -2
  115. pulumi_gcp/integrationconnectors/managed_zone.py +6 -6
  116. pulumi_gcp/kms/_inputs.py +1 -3
  117. pulumi_gcp/kms/autokey_config.py +16 -16
  118. pulumi_gcp/kms/key_handle.py +22 -22
  119. pulumi_gcp/kms/outputs.py +1 -3
  120. pulumi_gcp/logging/folder_settings.py +2 -2
  121. pulumi_gcp/logging/linked_dataset.py +2 -2
  122. pulumi_gcp/logging/organization_settings.py +2 -2
  123. pulumi_gcp/logging/project_bucket_config.py +2 -2
  124. pulumi_gcp/looker/instance.py +2 -2
  125. pulumi_gcp/netapp/volume_replication.py +2 -2
  126. pulumi_gcp/netapp/volume_snapshot.py +2 -2
  127. pulumi_gcp/networkconnectivity/internal_range.py +2 -2
  128. pulumi_gcp/networksecurity/gateway_security_policy.py +4 -4
  129. pulumi_gcp/networksecurity/tls_inspection_policy.py +4 -4
  130. pulumi_gcp/networkservices/gateway.py +6 -6
  131. pulumi_gcp/organizations/access_approval_settings.py +2 -2
  132. pulumi_gcp/parallelstore/instance.py +2 -2
  133. pulumi_gcp/projects/access_approval_settings.py +5 -11
  134. pulumi_gcp/pubsub/_inputs.py +40 -0
  135. pulumi_gcp/pubsub/outputs.py +66 -0
  136. pulumi_gcp/pubsub/schema.py +2 -2
  137. pulumi_gcp/pubsub/subscription.py +174 -8
  138. pulumi_gcp/pubsub/topic.py +2 -2
  139. pulumi_gcp/pulumi-plugin.json +1 -1
  140. pulumi_gcp/redis/cluster.py +4 -4
  141. pulumi_gcp/redis/get_instance.py +11 -1
  142. pulumi_gcp/redis/instance.py +49 -2
  143. pulumi_gcp/secretmanager/secret.py +2 -2
  144. pulumi_gcp/securesourcemanager/instance.py +6 -6
  145. pulumi_gcp/securitycenter/instance_iam_binding.py +2 -2
  146. pulumi_gcp/securitycenter/instance_iam_member.py +2 -2
  147. pulumi_gcp/securitycenter/instance_iam_policy.py +2 -2
  148. pulumi_gcp/servicenetworking/__init__.py +1 -0
  149. pulumi_gcp/servicenetworking/vpc_service_controls.py +511 -0
  150. pulumi_gcp/sql/_inputs.py +1 -3
  151. pulumi_gcp/sql/database_instance.py +2 -2
  152. pulumi_gcp/sql/outputs.py +1 -3
  153. pulumi_gcp/sql/user.py +21 -7
  154. pulumi_gcp/storage/get_project_service_account.py +2 -2
  155. pulumi_gcp/storage/insights_report_config.py +2 -2
  156. pulumi_gcp/storage/notification.py +2 -2
  157. pulumi_gcp/storage/transfer_agent_pool.py +2 -2
  158. pulumi_gcp/storage/transfer_job.py +4 -4
  159. pulumi_gcp/tpu/v2_vm.py +4 -4
  160. pulumi_gcp/vertex/_inputs.py +1 -3
  161. pulumi_gcp/vertex/ai_endpoint.py +2 -2
  162. pulumi_gcp/vertex/ai_feature_online_store.py +3 -9
  163. pulumi_gcp/vertex/ai_index_endpoint.py +2 -2
  164. pulumi_gcp/vertex/ai_tensorboard.py +2 -2
  165. pulumi_gcp/vertex/outputs.py +1 -3
  166. pulumi_gcp/vmwareengine/external_address.py +2 -2
  167. pulumi_gcp/vmwareengine/network.py +4 -4
  168. pulumi_gcp/vpcaccess/connector.py +2 -8
  169. {pulumi_gcp-7.28.0a1718995220.dist-info → pulumi_gcp-7.29.0.dist-info}/METADATA +1 -1
  170. {pulumi_gcp-7.28.0a1718995220.dist-info → pulumi_gcp-7.29.0.dist-info}/RECORD +172 -170
  171. {pulumi_gcp-7.28.0a1718995220.dist-info → pulumi_gcp-7.29.0.dist-info}/WHEEL +1 -1
  172. {pulumi_gcp-7.28.0a1718995220.dist-info → pulumi_gcp-7.29.0.dist-info}/top_level.txt +0 -0
@@ -437,6 +437,8 @@ __all__ = [
437
437
  'SecurityPolicyRuleMatchArgs',
438
438
  'SecurityPolicyRuleMatchConfigArgs',
439
439
  'SecurityPolicyRuleMatchExprArgs',
440
+ 'SecurityPolicyRuleMatchExprOptionsArgs',
441
+ 'SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs',
440
442
  'SecurityPolicyRulePreconfiguredWafConfigArgs',
441
443
  'SecurityPolicyRulePreconfiguredWafConfigExclusionArgs',
442
444
  'SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs',
@@ -30829,6 +30831,7 @@ class SecurityPolicyRuleMatchArgs:
30829
30831
  def __init__(__self__, *,
30830
30832
  config: Optional[pulumi.Input['SecurityPolicyRuleMatchConfigArgs']] = None,
30831
30833
  expr: Optional[pulumi.Input['SecurityPolicyRuleMatchExprArgs']] = None,
30834
+ expr_options: Optional[pulumi.Input['SecurityPolicyRuleMatchExprOptionsArgs']] = None,
30832
30835
  versioned_expr: Optional[pulumi.Input[str]] = None):
30833
30836
  """
30834
30837
  :param pulumi.Input['SecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr.
@@ -30836,6 +30839,8 @@ class SecurityPolicyRuleMatchArgs:
30836
30839
  Structure is documented below.
30837
30840
  :param pulumi.Input['SecurityPolicyRuleMatchExprArgs'] expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
30838
30841
  Structure is documented below.
30842
+ :param pulumi.Input['SecurityPolicyRuleMatchExprOptionsArgs'] expr_options: The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
30843
+ Structure is documented below.
30839
30844
  :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
30840
30845
  Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
30841
30846
  Possible values are: `SRC_IPS_V1`.
@@ -30844,6 +30849,8 @@ class SecurityPolicyRuleMatchArgs:
30844
30849
  pulumi.set(__self__, "config", config)
30845
30850
  if expr is not None:
30846
30851
  pulumi.set(__self__, "expr", expr)
30852
+ if expr_options is not None:
30853
+ pulumi.set(__self__, "expr_options", expr_options)
30847
30854
  if versioned_expr is not None:
30848
30855
  pulumi.set(__self__, "versioned_expr", versioned_expr)
30849
30856
 
@@ -30874,6 +30881,19 @@ class SecurityPolicyRuleMatchArgs:
30874
30881
  def expr(self, value: Optional[pulumi.Input['SecurityPolicyRuleMatchExprArgs']]):
30875
30882
  pulumi.set(self, "expr", value)
30876
30883
 
30884
+ @property
30885
+ @pulumi.getter(name="exprOptions")
30886
+ def expr_options(self) -> Optional[pulumi.Input['SecurityPolicyRuleMatchExprOptionsArgs']]:
30887
+ """
30888
+ The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
30889
+ Structure is documented below.
30890
+ """
30891
+ return pulumi.get(self, "expr_options")
30892
+
30893
+ @expr_options.setter
30894
+ def expr_options(self, value: Optional[pulumi.Input['SecurityPolicyRuleMatchExprOptionsArgs']]):
30895
+ pulumi.set(self, "expr_options", value)
30896
+
30877
30897
  @property
30878
30898
  @pulumi.getter(name="versionedExpr")
30879
30899
  def versioned_expr(self) -> Optional[pulumi.Input[str]]:
@@ -30934,6 +30954,69 @@ class SecurityPolicyRuleMatchExprArgs:
30934
30954
  pulumi.set(self, "expression", value)
30935
30955
 
30936
30956
 
30957
+ @pulumi.input_type
30958
+ class SecurityPolicyRuleMatchExprOptionsArgs:
30959
+ def __init__(__self__, *,
30960
+ recaptcha_options: pulumi.Input['SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs']):
30961
+ """
30962
+ :param pulumi.Input['SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs'] recaptcha_options: reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
30963
+ Structure is documented below.
30964
+ """
30965
+ pulumi.set(__self__, "recaptcha_options", recaptcha_options)
30966
+
30967
+ @property
30968
+ @pulumi.getter(name="recaptchaOptions")
30969
+ def recaptcha_options(self) -> pulumi.Input['SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs']:
30970
+ """
30971
+ reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
30972
+ Structure is documented below.
30973
+ """
30974
+ return pulumi.get(self, "recaptcha_options")
30975
+
30976
+ @recaptcha_options.setter
30977
+ def recaptcha_options(self, value: pulumi.Input['SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs']):
30978
+ pulumi.set(self, "recaptcha_options", value)
30979
+
30980
+
30981
+ @pulumi.input_type
30982
+ class SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs:
30983
+ def __init__(__self__, *,
30984
+ action_token_site_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30985
+ session_token_site_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
30986
+ """
30987
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] action_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
30988
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] session_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
30989
+ """
30990
+ if action_token_site_keys is not None:
30991
+ pulumi.set(__self__, "action_token_site_keys", action_token_site_keys)
30992
+ if session_token_site_keys is not None:
30993
+ pulumi.set(__self__, "session_token_site_keys", session_token_site_keys)
30994
+
30995
+ @property
30996
+ @pulumi.getter(name="actionTokenSiteKeys")
30997
+ def action_token_site_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
30998
+ """
30999
+ A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
31000
+ """
31001
+ return pulumi.get(self, "action_token_site_keys")
31002
+
31003
+ @action_token_site_keys.setter
31004
+ def action_token_site_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
31005
+ pulumi.set(self, "action_token_site_keys", value)
31006
+
31007
+ @property
31008
+ @pulumi.getter(name="sessionTokenSiteKeys")
31009
+ def session_token_site_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
31010
+ """
31011
+ A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
31012
+ """
31013
+ return pulumi.get(self, "session_token_site_keys")
31014
+
31015
+ @session_token_site_keys.setter
31016
+ def session_token_site_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
31017
+ pulumi.set(self, "session_token_site_keys", value)
31018
+
31019
+
30937
31020
  @pulumi.input_type
30938
31021
  class SecurityPolicyRulePreconfiguredWafConfigArgs:
30939
31022
  def __init__(__self__, *,
@@ -297,15 +297,13 @@ class DiskArgs:
297
297
 
298
298
  @property
299
299
  @pulumi.getter
300
+ @_utilities.deprecated("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
300
301
  def interface(self) -> Optional[pulumi.Input[str]]:
301
302
  """
302
303
  Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.
303
304
 
304
305
  > **Warning:** `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.
305
306
  """
306
- warnings.warn("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""", DeprecationWarning)
307
- pulumi.log.warn("""interface is deprecated: `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
308
-
309
307
  return pulumi.get(self, "interface")
310
308
 
311
309
  @interface.setter
@@ -957,15 +955,13 @@ class _DiskState:
957
955
 
958
956
  @property
959
957
  @pulumi.getter
958
+ @_utilities.deprecated("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
960
959
  def interface(self) -> Optional[pulumi.Input[str]]:
961
960
  """
962
961
  Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.
963
962
 
964
963
  > **Warning:** `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.
965
964
  """
966
- warnings.warn("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""", DeprecationWarning)
967
- pulumi.log.warn("""interface is deprecated: `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
968
-
969
965
  return pulumi.get(self, "interface")
970
966
 
971
967
  @interface.setter
@@ -2150,15 +2146,13 @@ class Disk(pulumi.CustomResource):
2150
2146
 
2151
2147
  @property
2152
2148
  @pulumi.getter
2149
+ @_utilities.deprecated("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
2153
2150
  def interface(self) -> pulumi.Output[Optional[str]]:
2154
2151
  """
2155
2152
  Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.
2156
2153
 
2157
2154
  > **Warning:** `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.
2158
2155
  """
2159
- warnings.warn("""`interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""", DeprecationWarning)
2160
- pulumi.log.warn("""interface is deprecated: `interface` is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.""")
2161
-
2162
2156
  return pulumi.get(self, "interface")
2163
2157
 
2164
2158
  @property
@@ -261,14 +261,12 @@ class FirewallArgs:
261
261
 
262
262
  @property
263
263
  @pulumi.getter(name="enableLogging")
264
+ @_utilities.deprecated("""Deprecated in favor of log_config""")
264
265
  def enable_logging(self) -> Optional[pulumi.Input[bool]]:
265
266
  """
266
267
  This field denotes whether to enable logging for a particular firewall rule.
267
268
  If logging is enabled, logs will be exported to Stackdriver. Deprecated in favor of `log_config`
268
269
  """
269
- warnings.warn("""Deprecated in favor of log_config""", DeprecationWarning)
270
- pulumi.log.warn("""enable_logging is deprecated: Deprecated in favor of log_config""")
271
-
272
270
  return pulumi.get(self, "enable_logging")
273
271
 
274
272
  @enable_logging.setter
@@ -688,14 +686,12 @@ class _FirewallState:
688
686
 
689
687
  @property
690
688
  @pulumi.getter(name="enableLogging")
689
+ @_utilities.deprecated("""Deprecated in favor of log_config""")
691
690
  def enable_logging(self) -> Optional[pulumi.Input[bool]]:
692
691
  """
693
692
  This field denotes whether to enable logging for a particular firewall rule.
694
693
  If logging is enabled, logs will be exported to Stackdriver. Deprecated in favor of `log_config`
695
694
  """
696
- warnings.warn("""Deprecated in favor of log_config""", DeprecationWarning)
697
- pulumi.log.warn("""enable_logging is deprecated: Deprecated in favor of log_config""")
698
-
699
695
  return pulumi.get(self, "enable_logging")
700
696
 
701
697
  @enable_logging.setter
@@ -1476,14 +1472,12 @@ class Firewall(pulumi.CustomResource):
1476
1472
 
1477
1473
  @property
1478
1474
  @pulumi.getter(name="enableLogging")
1475
+ @_utilities.deprecated("""Deprecated in favor of log_config""")
1479
1476
  def enable_logging(self) -> pulumi.Output[bool]:
1480
1477
  """
1481
1478
  This field denotes whether to enable logging for a particular firewall rule.
1482
1479
  If logging is enabled, logs will be exported to Stackdriver. Deprecated in favor of `log_config`
1483
1480
  """
1484
- warnings.warn("""Deprecated in favor of log_config""", DeprecationWarning)
1485
- pulumi.log.warn("""enable_logging is deprecated: Deprecated in favor of log_config""")
1486
-
1487
1481
  return pulumi.get(self, "enable_logging")
1488
1482
 
1489
1483
  @property
@@ -1901,7 +1901,7 @@ class ForwardingRule(pulumi.CustomResource):
1901
1901
  )],
1902
1902
  target_tags=["allow-ssh"],
1903
1903
  direction="INGRESS",
1904
- opts=pulumi.ResourceOptions(depends_on=[fw1]))
1904
+ opts = pulumi.ResourceOptions(depends_on=[fw1]))
1905
1905
  fw3 = gcp.compute.Firewall("fw3",
1906
1906
  name="website-fw-3",
1907
1907
  network=default_network.id,
@@ -1914,7 +1914,7 @@ class ForwardingRule(pulumi.CustomResource):
1914
1914
  )],
1915
1915
  target_tags=["load-balanced-backend"],
1916
1916
  direction="INGRESS",
1917
- opts=pulumi.ResourceOptions(depends_on=[fw2]))
1917
+ opts = pulumi.ResourceOptions(depends_on=[fw2]))
1918
1918
  fw4 = gcp.compute.Firewall("fw4",
1919
1919
  name="website-fw-4",
1920
1920
  network=default_network.id,
@@ -1935,14 +1935,14 @@ class ForwardingRule(pulumi.CustomResource):
1935
1935
  ),
1936
1936
  ],
1937
1937
  direction="INGRESS",
1938
- opts=pulumi.ResourceOptions(depends_on=[fw3]))
1938
+ opts = pulumi.ResourceOptions(depends_on=[fw3]))
1939
1939
  default_region_health_check = gcp.compute.RegionHealthCheck("default",
1940
1940
  region="us-central1",
1941
1941
  name="website-hc",
1942
1942
  http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
1943
1943
  port_specification="USE_SERVING_PORT",
1944
1944
  ),
1945
- opts=pulumi.ResourceOptions(depends_on=[fw4]))
1945
+ opts = pulumi.ResourceOptions(depends_on=[fw4]))
1946
1946
  default_region_backend_service = gcp.compute.RegionBackendService("default",
1947
1947
  load_balancing_scheme="INTERNAL_MANAGED",
1948
1948
  backends=[gcp.compute.RegionBackendServiceBackendArgs(
@@ -1981,7 +1981,7 @@ class ForwardingRule(pulumi.CustomResource):
1981
1981
  network=default_network.id,
1982
1982
  subnetwork=default_subnetwork.id,
1983
1983
  network_tier="PREMIUM",
1984
- opts=pulumi.ResourceOptions(depends_on=[proxy]))
1984
+ opts = pulumi.ResourceOptions(depends_on=[proxy]))
1985
1985
  ```
1986
1986
  ### Forwarding Rule Regional Http Xlb
1987
1987
 
@@ -2051,7 +2051,7 @@ class ForwardingRule(pulumi.CustomResource):
2051
2051
  )],
2052
2052
  target_tags=["allow-ssh"],
2053
2053
  direction="INGRESS",
2054
- opts=pulumi.ResourceOptions(depends_on=[fw1]))
2054
+ opts = pulumi.ResourceOptions(depends_on=[fw1]))
2055
2055
  fw3 = gcp.compute.Firewall("fw3",
2056
2056
  name="website-fw-3",
2057
2057
  network=default_network.id,
@@ -2064,7 +2064,7 @@ class ForwardingRule(pulumi.CustomResource):
2064
2064
  )],
2065
2065
  target_tags=["load-balanced-backend"],
2066
2066
  direction="INGRESS",
2067
- opts=pulumi.ResourceOptions(depends_on=[fw2]))
2067
+ opts = pulumi.ResourceOptions(depends_on=[fw2]))
2068
2068
  fw4 = gcp.compute.Firewall("fw4",
2069
2069
  name="website-fw-4",
2070
2070
  network=default_network.id,
@@ -2085,14 +2085,14 @@ class ForwardingRule(pulumi.CustomResource):
2085
2085
  ),
2086
2086
  ],
2087
2087
  direction="INGRESS",
2088
- opts=pulumi.ResourceOptions(depends_on=[fw3]))
2088
+ opts = pulumi.ResourceOptions(depends_on=[fw3]))
2089
2089
  default_region_health_check = gcp.compute.RegionHealthCheck("default",
2090
2090
  region="us-central1",
2091
2091
  name="website-hc",
2092
2092
  http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
2093
2093
  port_specification="USE_SERVING_PORT",
2094
2094
  ),
2095
- opts=pulumi.ResourceOptions(depends_on=[fw4]))
2095
+ opts = pulumi.ResourceOptions(depends_on=[fw4]))
2096
2096
  default_region_backend_service = gcp.compute.RegionBackendService("default",
2097
2097
  load_balancing_scheme="EXTERNAL_MANAGED",
2098
2098
  backends=[gcp.compute.RegionBackendServiceBackendArgs(
@@ -2135,7 +2135,7 @@ class ForwardingRule(pulumi.CustomResource):
2135
2135
  network=default_network.id,
2136
2136
  ip_address=default_address.address,
2137
2137
  network_tier="STANDARD",
2138
- opts=pulumi.ResourceOptions(depends_on=[proxy]))
2138
+ opts = pulumi.ResourceOptions(depends_on=[proxy]))
2139
2139
  ```
2140
2140
  ### Forwarding Rule Vpc Psc
2141
2141
 
@@ -2308,7 +2308,7 @@ class ForwardingRule(pulumi.CustomResource):
2308
2308
  "34.121.88.0/24",
2309
2309
  "35.187.239.137",
2310
2310
  ],
2311
- opts=pulumi.ResourceOptions(depends_on=[external_forwarding_rule]))
2311
+ opts = pulumi.ResourceOptions(depends_on=[external_forwarding_rule]))
2312
2312
  ```
2313
2313
  ### Forwarding Rule Internallb Ipv6
2314
2314
 
@@ -2799,7 +2799,7 @@ class ForwardingRule(pulumi.CustomResource):
2799
2799
  )],
2800
2800
  target_tags=["allow-ssh"],
2801
2801
  direction="INGRESS",
2802
- opts=pulumi.ResourceOptions(depends_on=[fw1]))
2802
+ opts = pulumi.ResourceOptions(depends_on=[fw1]))
2803
2803
  fw3 = gcp.compute.Firewall("fw3",
2804
2804
  name="website-fw-3",
2805
2805
  network=default_network.id,
@@ -2812,7 +2812,7 @@ class ForwardingRule(pulumi.CustomResource):
2812
2812
  )],
2813
2813
  target_tags=["load-balanced-backend"],
2814
2814
  direction="INGRESS",
2815
- opts=pulumi.ResourceOptions(depends_on=[fw2]))
2815
+ opts = pulumi.ResourceOptions(depends_on=[fw2]))
2816
2816
  fw4 = gcp.compute.Firewall("fw4",
2817
2817
  name="website-fw-4",
2818
2818
  network=default_network.id,
@@ -2833,14 +2833,14 @@ class ForwardingRule(pulumi.CustomResource):
2833
2833
  ),
2834
2834
  ],
2835
2835
  direction="INGRESS",
2836
- opts=pulumi.ResourceOptions(depends_on=[fw3]))
2836
+ opts = pulumi.ResourceOptions(depends_on=[fw3]))
2837
2837
  default_region_health_check = gcp.compute.RegionHealthCheck("default",
2838
2838
  region="us-central1",
2839
2839
  name="website-hc",
2840
2840
  http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
2841
2841
  port_specification="USE_SERVING_PORT",
2842
2842
  ),
2843
- opts=pulumi.ResourceOptions(depends_on=[fw4]))
2843
+ opts = pulumi.ResourceOptions(depends_on=[fw4]))
2844
2844
  default_region_backend_service = gcp.compute.RegionBackendService("default",
2845
2845
  load_balancing_scheme="INTERNAL_MANAGED",
2846
2846
  backends=[gcp.compute.RegionBackendServiceBackendArgs(
@@ -2879,7 +2879,7 @@ class ForwardingRule(pulumi.CustomResource):
2879
2879
  network=default_network.id,
2880
2880
  subnetwork=default_subnetwork.id,
2881
2881
  network_tier="PREMIUM",
2882
- opts=pulumi.ResourceOptions(depends_on=[proxy]))
2882
+ opts = pulumi.ResourceOptions(depends_on=[proxy]))
2883
2883
  ```
2884
2884
  ### Forwarding Rule Regional Http Xlb
2885
2885
 
@@ -2949,7 +2949,7 @@ class ForwardingRule(pulumi.CustomResource):
2949
2949
  )],
2950
2950
  target_tags=["allow-ssh"],
2951
2951
  direction="INGRESS",
2952
- opts=pulumi.ResourceOptions(depends_on=[fw1]))
2952
+ opts = pulumi.ResourceOptions(depends_on=[fw1]))
2953
2953
  fw3 = gcp.compute.Firewall("fw3",
2954
2954
  name="website-fw-3",
2955
2955
  network=default_network.id,
@@ -2962,7 +2962,7 @@ class ForwardingRule(pulumi.CustomResource):
2962
2962
  )],
2963
2963
  target_tags=["load-balanced-backend"],
2964
2964
  direction="INGRESS",
2965
- opts=pulumi.ResourceOptions(depends_on=[fw2]))
2965
+ opts = pulumi.ResourceOptions(depends_on=[fw2]))
2966
2966
  fw4 = gcp.compute.Firewall("fw4",
2967
2967
  name="website-fw-4",
2968
2968
  network=default_network.id,
@@ -2983,14 +2983,14 @@ class ForwardingRule(pulumi.CustomResource):
2983
2983
  ),
2984
2984
  ],
2985
2985
  direction="INGRESS",
2986
- opts=pulumi.ResourceOptions(depends_on=[fw3]))
2986
+ opts = pulumi.ResourceOptions(depends_on=[fw3]))
2987
2987
  default_region_health_check = gcp.compute.RegionHealthCheck("default",
2988
2988
  region="us-central1",
2989
2989
  name="website-hc",
2990
2990
  http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
2991
2991
  port_specification="USE_SERVING_PORT",
2992
2992
  ),
2993
- opts=pulumi.ResourceOptions(depends_on=[fw4]))
2993
+ opts = pulumi.ResourceOptions(depends_on=[fw4]))
2994
2994
  default_region_backend_service = gcp.compute.RegionBackendService("default",
2995
2995
  load_balancing_scheme="EXTERNAL_MANAGED",
2996
2996
  backends=[gcp.compute.RegionBackendServiceBackendArgs(
@@ -3033,7 +3033,7 @@ class ForwardingRule(pulumi.CustomResource):
3033
3033
  network=default_network.id,
3034
3034
  ip_address=default_address.address,
3035
3035
  network_tier="STANDARD",
3036
- opts=pulumi.ResourceOptions(depends_on=[proxy]))
3036
+ opts = pulumi.ResourceOptions(depends_on=[proxy]))
3037
3037
  ```
3038
3038
  ### Forwarding Rule Vpc Psc
3039
3039
 
@@ -3206,7 +3206,7 @@ class ForwardingRule(pulumi.CustomResource):
3206
3206
  "34.121.88.0/24",
3207
3207
  "35.187.239.137",
3208
3208
  ],
3209
- opts=pulumi.ResourceOptions(depends_on=[external_forwarding_rule]))
3209
+ opts = pulumi.ResourceOptions(depends_on=[external_forwarding_rule]))
3210
3210
  ```
3211
3211
  ### Forwarding Rule Internallb Ipv6
3212
3212
 
@@ -440,6 +440,8 @@ __all__ = [
440
440
  'SecurityPolicyRuleMatch',
441
441
  'SecurityPolicyRuleMatchConfig',
442
442
  'SecurityPolicyRuleMatchExpr',
443
+ 'SecurityPolicyRuleMatchExprOptions',
444
+ 'SecurityPolicyRuleMatchExprOptionsRecaptchaOptions',
443
445
  'SecurityPolicyRulePreconfiguredWafConfig',
444
446
  'SecurityPolicyRulePreconfiguredWafConfigExclusion',
445
447
  'SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky',
@@ -728,6 +730,8 @@ __all__ = [
728
730
  'GetSecurityPolicyRuleMatchResult',
729
731
  'GetSecurityPolicyRuleMatchConfigResult',
730
732
  'GetSecurityPolicyRuleMatchExprResult',
733
+ 'GetSecurityPolicyRuleMatchExprOptionResult',
734
+ 'GetSecurityPolicyRuleMatchExprOptionRecaptchaOptionResult',
731
735
  'GetSecurityPolicyRulePreconfiguredWafConfigResult',
732
736
  'GetSecurityPolicyRulePreconfiguredWafConfigExclusionResult',
733
737
  'GetSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyResult',
@@ -31881,7 +31885,9 @@ class SecurityPolicyRuleMatch(dict):
31881
31885
  @staticmethod
31882
31886
  def __key_warning(key: str):
31883
31887
  suggest = None
31884
- if key == "versionedExpr":
31888
+ if key == "exprOptions":
31889
+ suggest = "expr_options"
31890
+ elif key == "versionedExpr":
31885
31891
  suggest = "versioned_expr"
31886
31892
 
31887
31893
  if suggest:
@@ -31898,6 +31904,7 @@ class SecurityPolicyRuleMatch(dict):
31898
31904
  def __init__(__self__, *,
31899
31905
  config: Optional['outputs.SecurityPolicyRuleMatchConfig'] = None,
31900
31906
  expr: Optional['outputs.SecurityPolicyRuleMatchExpr'] = None,
31907
+ expr_options: Optional['outputs.SecurityPolicyRuleMatchExprOptions'] = None,
31901
31908
  versioned_expr: Optional[str] = None):
31902
31909
  """
31903
31910
  :param 'SecurityPolicyRuleMatchConfigArgs' config: The configuration options available when specifying versionedExpr.
@@ -31905,6 +31912,8 @@ class SecurityPolicyRuleMatch(dict):
31905
31912
  Structure is documented below.
31906
31913
  :param 'SecurityPolicyRuleMatchExprArgs' expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
31907
31914
  Structure is documented below.
31915
+ :param 'SecurityPolicyRuleMatchExprOptionsArgs' expr_options: The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
31916
+ Structure is documented below.
31908
31917
  :param str versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
31909
31918
  Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
31910
31919
  Possible values are: `SRC_IPS_V1`.
@@ -31913,6 +31922,8 @@ class SecurityPolicyRuleMatch(dict):
31913
31922
  pulumi.set(__self__, "config", config)
31914
31923
  if expr is not None:
31915
31924
  pulumi.set(__self__, "expr", expr)
31925
+ if expr_options is not None:
31926
+ pulumi.set(__self__, "expr_options", expr_options)
31916
31927
  if versioned_expr is not None:
31917
31928
  pulumi.set(__self__, "versioned_expr", versioned_expr)
31918
31929
 
@@ -31935,6 +31946,15 @@ class SecurityPolicyRuleMatch(dict):
31935
31946
  """
31936
31947
  return pulumi.get(self, "expr")
31937
31948
 
31949
+ @property
31950
+ @pulumi.getter(name="exprOptions")
31951
+ def expr_options(self) -> Optional['outputs.SecurityPolicyRuleMatchExprOptions']:
31952
+ """
31953
+ The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
31954
+ Structure is documented below.
31955
+ """
31956
+ return pulumi.get(self, "expr_options")
31957
+
31938
31958
  @property
31939
31959
  @pulumi.getter(name="versionedExpr")
31940
31960
  def versioned_expr(self) -> Optional[str]:
@@ -32000,6 +32020,93 @@ class SecurityPolicyRuleMatchExpr(dict):
32000
32020
  return pulumi.get(self, "expression")
32001
32021
 
32002
32022
 
32023
+ @pulumi.output_type
32024
+ class SecurityPolicyRuleMatchExprOptions(dict):
32025
+ @staticmethod
32026
+ def __key_warning(key: str):
32027
+ suggest = None
32028
+ if key == "recaptchaOptions":
32029
+ suggest = "recaptcha_options"
32030
+
32031
+ if suggest:
32032
+ pulumi.log.warn(f"Key '{key}' not found in SecurityPolicyRuleMatchExprOptions. Access the value via the '{suggest}' property getter instead.")
32033
+
32034
+ def __getitem__(self, key: str) -> Any:
32035
+ SecurityPolicyRuleMatchExprOptions.__key_warning(key)
32036
+ return super().__getitem__(key)
32037
+
32038
+ def get(self, key: str, default = None) -> Any:
32039
+ SecurityPolicyRuleMatchExprOptions.__key_warning(key)
32040
+ return super().get(key, default)
32041
+
32042
+ def __init__(__self__, *,
32043
+ recaptcha_options: 'outputs.SecurityPolicyRuleMatchExprOptionsRecaptchaOptions'):
32044
+ """
32045
+ :param 'SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs' recaptcha_options: reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
32046
+ Structure is documented below.
32047
+ """
32048
+ pulumi.set(__self__, "recaptcha_options", recaptcha_options)
32049
+
32050
+ @property
32051
+ @pulumi.getter(name="recaptchaOptions")
32052
+ def recaptcha_options(self) -> 'outputs.SecurityPolicyRuleMatchExprOptionsRecaptchaOptions':
32053
+ """
32054
+ reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
32055
+ Structure is documented below.
32056
+ """
32057
+ return pulumi.get(self, "recaptcha_options")
32058
+
32059
+
32060
+ @pulumi.output_type
32061
+ class SecurityPolicyRuleMatchExprOptionsRecaptchaOptions(dict):
32062
+ @staticmethod
32063
+ def __key_warning(key: str):
32064
+ suggest = None
32065
+ if key == "actionTokenSiteKeys":
32066
+ suggest = "action_token_site_keys"
32067
+ elif key == "sessionTokenSiteKeys":
32068
+ suggest = "session_token_site_keys"
32069
+
32070
+ if suggest:
32071
+ pulumi.log.warn(f"Key '{key}' not found in SecurityPolicyRuleMatchExprOptionsRecaptchaOptions. Access the value via the '{suggest}' property getter instead.")
32072
+
32073
+ def __getitem__(self, key: str) -> Any:
32074
+ SecurityPolicyRuleMatchExprOptionsRecaptchaOptions.__key_warning(key)
32075
+ return super().__getitem__(key)
32076
+
32077
+ def get(self, key: str, default = None) -> Any:
32078
+ SecurityPolicyRuleMatchExprOptionsRecaptchaOptions.__key_warning(key)
32079
+ return super().get(key, default)
32080
+
32081
+ def __init__(__self__, *,
32082
+ action_token_site_keys: Optional[Sequence[str]] = None,
32083
+ session_token_site_keys: Optional[Sequence[str]] = None):
32084
+ """
32085
+ :param Sequence[str] action_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
32086
+ :param Sequence[str] session_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
32087
+ """
32088
+ if action_token_site_keys is not None:
32089
+ pulumi.set(__self__, "action_token_site_keys", action_token_site_keys)
32090
+ if session_token_site_keys is not None:
32091
+ pulumi.set(__self__, "session_token_site_keys", session_token_site_keys)
32092
+
32093
+ @property
32094
+ @pulumi.getter(name="actionTokenSiteKeys")
32095
+ def action_token_site_keys(self) -> Optional[Sequence[str]]:
32096
+ """
32097
+ A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
32098
+ """
32099
+ return pulumi.get(self, "action_token_site_keys")
32100
+
32101
+ @property
32102
+ @pulumi.getter(name="sessionTokenSiteKeys")
32103
+ def session_token_site_keys(self) -> Optional[Sequence[str]]:
32104
+ """
32105
+ A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
32106
+ """
32107
+ return pulumi.get(self, "session_token_site_keys")
32108
+
32109
+
32003
32110
  @pulumi.output_type
32004
32111
  class SecurityPolicyRulePreconfiguredWafConfig(dict):
32005
32112
  def __init__(__self__, *,
@@ -50463,14 +50570,17 @@ class GetSecurityPolicyRuleHeaderActionRequestHeadersToAddResult(dict):
50463
50570
  class GetSecurityPolicyRuleMatchResult(dict):
50464
50571
  def __init__(__self__, *,
50465
50572
  configs: Sequence['outputs.GetSecurityPolicyRuleMatchConfigResult'],
50573
+ expr_options: Sequence['outputs.GetSecurityPolicyRuleMatchExprOptionResult'],
50466
50574
  exprs: Sequence['outputs.GetSecurityPolicyRuleMatchExprResult'],
50467
50575
  versioned_expr: str):
50468
50576
  """
50469
50577
  :param Sequence['GetSecurityPolicyRuleMatchConfigArgs'] configs: The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified.
50578
+ :param Sequence['GetSecurityPolicyRuleMatchExprOptionArgs'] expr_options: The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
50470
50579
  :param Sequence['GetSecurityPolicyRuleMatchExprArgs'] exprs: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
50471
50580
  :param str versioned_expr: Predefined rule expression. If this field is specified, config must also be specified. Available options: SRC_IPS_V1: Must specify the corresponding src_ip_ranges field in config.
50472
50581
  """
50473
50582
  pulumi.set(__self__, "configs", configs)
50583
+ pulumi.set(__self__, "expr_options", expr_options)
50474
50584
  pulumi.set(__self__, "exprs", exprs)
50475
50585
  pulumi.set(__self__, "versioned_expr", versioned_expr)
50476
50586
 
@@ -50482,6 +50592,14 @@ class GetSecurityPolicyRuleMatchResult(dict):
50482
50592
  """
50483
50593
  return pulumi.get(self, "configs")
50484
50594
 
50595
+ @property
50596
+ @pulumi.getter(name="exprOptions")
50597
+ def expr_options(self) -> Sequence['outputs.GetSecurityPolicyRuleMatchExprOptionResult']:
50598
+ """
50599
+ The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').
50600
+ """
50601
+ return pulumi.get(self, "expr_options")
50602
+
50485
50603
  @property
50486
50604
  @pulumi.getter
50487
50605
  def exprs(self) -> Sequence['outputs.GetSecurityPolicyRuleMatchExprResult']:
@@ -50535,6 +50653,53 @@ class GetSecurityPolicyRuleMatchExprResult(dict):
50535
50653
  return pulumi.get(self, "expression")
50536
50654
 
50537
50655
 
50656
+ @pulumi.output_type
50657
+ class GetSecurityPolicyRuleMatchExprOptionResult(dict):
50658
+ def __init__(__self__, *,
50659
+ recaptcha_options: Sequence['outputs.GetSecurityPolicyRuleMatchExprOptionRecaptchaOptionResult']):
50660
+ """
50661
+ :param Sequence['GetSecurityPolicyRuleMatchExprOptionRecaptchaOptionArgs'] recaptcha_options: reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
50662
+ """
50663
+ pulumi.set(__self__, "recaptcha_options", recaptcha_options)
50664
+
50665
+ @property
50666
+ @pulumi.getter(name="recaptchaOptions")
50667
+ def recaptcha_options(self) -> Sequence['outputs.GetSecurityPolicyRuleMatchExprOptionRecaptchaOptionResult']:
50668
+ """
50669
+ reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.
50670
+ """
50671
+ return pulumi.get(self, "recaptcha_options")
50672
+
50673
+
50674
+ @pulumi.output_type
50675
+ class GetSecurityPolicyRuleMatchExprOptionRecaptchaOptionResult(dict):
50676
+ def __init__(__self__, *,
50677
+ action_token_site_keys: Sequence[str],
50678
+ session_token_site_keys: Sequence[str]):
50679
+ """
50680
+ :param Sequence[str] action_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created
50681
+ :param Sequence[str] session_token_site_keys: A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
50682
+ """
50683
+ pulumi.set(__self__, "action_token_site_keys", action_token_site_keys)
50684
+ pulumi.set(__self__, "session_token_site_keys", session_token_site_keys)
50685
+
50686
+ @property
50687
+ @pulumi.getter(name="actionTokenSiteKeys")
50688
+ def action_token_site_keys(self) -> Sequence[str]:
50689
+ """
50690
+ A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created
50691
+ """
50692
+ return pulumi.get(self, "action_token_site_keys")
50693
+
50694
+ @property
50695
+ @pulumi.getter(name="sessionTokenSiteKeys")
50696
+ def session_token_site_keys(self) -> Sequence[str]:
50697
+ """
50698
+ A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.
50699
+ """
50700
+ return pulumi.get(self, "session_token_site_keys")
50701
+
50702
+
50538
50703
  @pulumi.output_type
50539
50704
  class GetSecurityPolicyRulePreconfiguredWafConfigResult(dict):
50540
50705
  def __init__(__self__, *,