pulumi-gcp 7.23.0a1715695885__py3-none-any.whl → 7.24.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 (355) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +12 -12
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +12 -12
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +12 -12
  5. pulumi_gcp/apigateway/api_config_iam_binding.py +8 -8
  6. pulumi_gcp/apigateway/api_config_iam_member.py +8 -8
  7. pulumi_gcp/apigateway/api_config_iam_policy.py +8 -8
  8. pulumi_gcp/apigateway/api_iam_binding.py +8 -8
  9. pulumi_gcp/apigateway/api_iam_member.py +8 -8
  10. pulumi_gcp/apigateway/api_iam_policy.py +8 -8
  11. pulumi_gcp/apigateway/gateway_iam_binding.py +8 -8
  12. pulumi_gcp/apigateway/gateway_iam_member.py +8 -8
  13. pulumi_gcp/apigateway/gateway_iam_policy.py +8 -8
  14. pulumi_gcp/apigee/environment_iam_binding.py +12 -12
  15. pulumi_gcp/apigee/environment_iam_member.py +12 -12
  16. pulumi_gcp/apigee/environment_iam_policy.py +12 -12
  17. pulumi_gcp/artifactregistry/repository_iam_binding.py +12 -12
  18. pulumi_gcp/artifactregistry/repository_iam_member.py +12 -12
  19. pulumi_gcp/artifactregistry/repository_iam_policy.py +12 -12
  20. pulumi_gcp/bigquery/_inputs.py +16 -0
  21. pulumi_gcp/bigquery/connection.py +126 -0
  22. pulumi_gcp/bigquery/connection_iam_binding.py +12 -12
  23. pulumi_gcp/bigquery/connection_iam_member.py +12 -12
  24. pulumi_gcp/bigquery/connection_iam_policy.py +12 -12
  25. pulumi_gcp/bigquery/dataset_access.py +56 -0
  26. pulumi_gcp/bigquery/dataset_iam_binding.py +12 -12
  27. pulumi_gcp/bigquery/dataset_iam_member.py +12 -12
  28. pulumi_gcp/bigquery/dataset_iam_policy.py +12 -12
  29. pulumi_gcp/bigquery/iam_binding.py +12 -12
  30. pulumi_gcp/bigquery/iam_member.py +12 -12
  31. pulumi_gcp/bigquery/iam_policy.py +12 -12
  32. pulumi_gcp/bigquery/outputs.py +16 -0
  33. pulumi_gcp/bigquery/routine.py +2 -2
  34. pulumi_gcp/bigquery/table.py +47 -0
  35. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +12 -12
  36. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +12 -12
  37. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +12 -12
  38. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +12 -12
  39. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +12 -12
  40. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +12 -12
  41. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +12 -12
  42. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +12 -12
  43. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +12 -12
  44. pulumi_gcp/bigtable/__init__.py +1 -0
  45. pulumi_gcp/bigtable/_inputs.py +101 -0
  46. pulumi_gcp/bigtable/authorized_view.py +440 -0
  47. pulumi_gcp/bigtable/instance_iam_binding.py +12 -12
  48. pulumi_gcp/bigtable/instance_iam_member.py +12 -12
  49. pulumi_gcp/bigtable/instance_iam_policy.py +12 -12
  50. pulumi_gcp/bigtable/outputs.py +119 -0
  51. pulumi_gcp/bigtable/table_iam_binding.py +12 -12
  52. pulumi_gcp/bigtable/table_iam_member.py +12 -12
  53. pulumi_gcp/bigtable/table_iam_policy.py +12 -12
  54. pulumi_gcp/billing/account_iam_binding.py +12 -12
  55. pulumi_gcp/billing/account_iam_member.py +12 -12
  56. pulumi_gcp/billing/account_iam_policy.py +12 -12
  57. pulumi_gcp/billing/project_info.py +4 -4
  58. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
  59. pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
  60. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
  61. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
  62. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
  63. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
  64. pulumi_gcp/certificateauthority/certificate_template.py +70 -0
  65. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
  66. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
  67. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
  68. pulumi_gcp/cloudasset/__init__.py +1 -0
  69. pulumi_gcp/cloudasset/get_search_all_resources.py +197 -0
  70. pulumi_gcp/cloudasset/outputs.py +184 -0
  71. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +12 -12
  72. pulumi_gcp/cloudbuildv2/connection_iam_member.py +12 -12
  73. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +12 -12
  74. pulumi_gcp/cloudbuildv2/repository.py +2 -2
  75. pulumi_gcp/clouddeploy/_inputs.py +96 -0
  76. pulumi_gcp/clouddeploy/custom_target_type.py +46 -0
  77. pulumi_gcp/clouddeploy/delivery_pipeline.py +7 -7
  78. pulumi_gcp/clouddeploy/outputs.py +96 -1
  79. pulumi_gcp/clouddeploy/target.py +54 -7
  80. pulumi_gcp/cloudfunctions/function.py +21 -0
  81. pulumi_gcp/cloudfunctions/function_iam_binding.py +12 -12
  82. pulumi_gcp/cloudfunctions/function_iam_member.py +12 -12
  83. pulumi_gcp/cloudfunctions/function_iam_policy.py +12 -12
  84. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +12 -12
  85. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +12 -12
  86. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +12 -12
  87. pulumi_gcp/cloudrun/iam_binding.py +12 -12
  88. pulumi_gcp/cloudrun/iam_member.py +12 -12
  89. pulumi_gcp/cloudrun/iam_policy.py +12 -12
  90. pulumi_gcp/cloudrunv2/job_iam_binding.py +12 -12
  91. pulumi_gcp/cloudrunv2/job_iam_member.py +12 -12
  92. pulumi_gcp/cloudrunv2/job_iam_policy.py +12 -12
  93. pulumi_gcp/cloudrunv2/service_iam_binding.py +12 -12
  94. pulumi_gcp/cloudrunv2/service_iam_member.py +12 -12
  95. pulumi_gcp/cloudrunv2/service_iam_policy.py +12 -12
  96. pulumi_gcp/cloudtasks/queue_iam_binding.py +12 -12
  97. pulumi_gcp/cloudtasks/queue_iam_member.py +12 -12
  98. pulumi_gcp/cloudtasks/queue_iam_policy.py +12 -12
  99. pulumi_gcp/compute/__init__.py +1 -0
  100. pulumi_gcp/compute/_inputs.py +1412 -42
  101. pulumi_gcp/compute/backend_service.py +315 -0
  102. pulumi_gcp/compute/disk_iam_binding.py +12 -12
  103. pulumi_gcp/compute/disk_iam_member.py +12 -12
  104. pulumi_gcp/compute/disk_iam_policy.py +12 -12
  105. pulumi_gcp/compute/firewall_policy_rule.py +125 -10
  106. pulumi_gcp/compute/forwarding_rule.py +6 -6
  107. pulumi_gcp/compute/get_network_endpoint_group.py +2 -2
  108. pulumi_gcp/compute/get_region_network_endpoint_group.py +2 -2
  109. pulumi_gcp/compute/get_router_nat.py +11 -1
  110. pulumi_gcp/compute/get_snapshot.py +2 -0
  111. pulumi_gcp/compute/image_iam_binding.py +12 -12
  112. pulumi_gcp/compute/image_iam_member.py +12 -12
  113. pulumi_gcp/compute/image_iam_policy.py +12 -12
  114. pulumi_gcp/compute/instance_iam_binding.py +12 -12
  115. pulumi_gcp/compute/instance_iam_member.py +12 -12
  116. pulumi_gcp/compute/instance_iam_policy.py +12 -12
  117. pulumi_gcp/compute/interconnect.py +1683 -0
  118. pulumi_gcp/compute/machine_image_iam_binding.py +8 -8
  119. pulumi_gcp/compute/machine_image_iam_member.py +8 -8
  120. pulumi_gcp/compute/machine_image_iam_policy.py +8 -8
  121. pulumi_gcp/compute/network_firewall_policy_rule.py +125 -10
  122. pulumi_gcp/compute/outputs.py +1385 -0
  123. pulumi_gcp/compute/region_backend_service.py +315 -0
  124. pulumi_gcp/compute/region_disk_iam_binding.py +12 -12
  125. pulumi_gcp/compute/region_disk_iam_member.py +12 -12
  126. pulumi_gcp/compute/region_disk_iam_policy.py +12 -12
  127. pulumi_gcp/compute/region_network_firewall_policy_rule.py +125 -10
  128. pulumi_gcp/compute/region_security_policy_rule.py +230 -1
  129. pulumi_gcp/compute/router_nat.py +68 -0
  130. pulumi_gcp/compute/router_peer.py +88 -0
  131. pulumi_gcp/compute/security_policy.py +49 -0
  132. pulumi_gcp/compute/snapshot_iam_binding.py +12 -12
  133. pulumi_gcp/compute/snapshot_iam_member.py +12 -12
  134. pulumi_gcp/compute/snapshot_iam_policy.py +12 -12
  135. pulumi_gcp/compute/subnetwork_iam_binding.py +12 -12
  136. pulumi_gcp/compute/subnetwork_iam_member.py +12 -12
  137. pulumi_gcp/compute/subnetwork_iam_policy.py +12 -12
  138. pulumi_gcp/compute/target_instance.py +4 -4
  139. pulumi_gcp/compute/target_pool.py +21 -21
  140. pulumi_gcp/container/_inputs.py +81 -5
  141. pulumi_gcp/container/outputs.py +109 -8
  142. pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
  143. pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
  144. pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
  145. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  146. pulumi_gcp/datacatalog/entry_group_iam_binding.py +12 -12
  147. pulumi_gcp/datacatalog/entry_group_iam_member.py +12 -12
  148. pulumi_gcp/datacatalog/entry_group_iam_policy.py +12 -12
  149. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +12 -12
  150. pulumi_gcp/datacatalog/policy_tag_iam_member.py +12 -12
  151. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +12 -12
  152. pulumi_gcp/datacatalog/tag_template_iam_binding.py +12 -12
  153. pulumi_gcp/datacatalog/tag_template_iam_member.py +12 -12
  154. pulumi_gcp/datacatalog/tag_template_iam_policy.py +12 -12
  155. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +12 -12
  156. pulumi_gcp/datacatalog/taxonomy_iam_member.py +12 -12
  157. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +12 -12
  158. pulumi_gcp/dataflow/flex_template_job.py +7 -7
  159. pulumi_gcp/dataflow/job.py +7 -7
  160. pulumi_gcp/dataloss/_inputs.py +420 -13
  161. pulumi_gcp/dataloss/outputs.py +439 -13
  162. pulumi_gcp/dataplex/asset_iam_binding.py +12 -12
  163. pulumi_gcp/dataplex/asset_iam_member.py +12 -12
  164. pulumi_gcp/dataplex/asset_iam_policy.py +12 -12
  165. pulumi_gcp/dataplex/datascan_iam_binding.py +12 -12
  166. pulumi_gcp/dataplex/datascan_iam_member.py +12 -12
  167. pulumi_gcp/dataplex/datascan_iam_policy.py +12 -12
  168. pulumi_gcp/dataplex/lake_iam_binding.py +12 -12
  169. pulumi_gcp/dataplex/lake_iam_member.py +12 -12
  170. pulumi_gcp/dataplex/lake_iam_policy.py +12 -12
  171. pulumi_gcp/dataplex/task.py +16 -16
  172. pulumi_gcp/dataplex/task_iam_binding.py +12 -12
  173. pulumi_gcp/dataplex/task_iam_member.py +12 -12
  174. pulumi_gcp/dataplex/task_iam_policy.py +12 -12
  175. pulumi_gcp/dataplex/zone_iam_binding.py +12 -12
  176. pulumi_gcp/dataplex/zone_iam_member.py +12 -12
  177. pulumi_gcp/dataplex/zone_iam_policy.py +12 -12
  178. pulumi_gcp/dataproc/_inputs.py +190 -46
  179. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +12 -12
  180. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +12 -12
  181. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +12 -12
  182. pulumi_gcp/dataproc/cluster_iam_binding.py +12 -12
  183. pulumi_gcp/dataproc/cluster_iam_member.py +12 -12
  184. pulumi_gcp/dataproc/cluster_iam_policy.py +12 -12
  185. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +26 -2
  186. pulumi_gcp/dataproc/job_iam_binding.py +12 -12
  187. pulumi_gcp/dataproc/job_iam_member.py +12 -12
  188. pulumi_gcp/dataproc/job_iam_policy.py +12 -12
  189. pulumi_gcp/dataproc/metastore_federation.py +4 -0
  190. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +208 -0
  191. pulumi_gcp/dataproc/metastore_federation_iam_member.py +208 -0
  192. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +208 -0
  193. pulumi_gcp/dataproc/metastore_service_iam_binding.py +12 -12
  194. pulumi_gcp/dataproc/metastore_service_iam_member.py +12 -12
  195. pulumi_gcp/dataproc/metastore_service_iam_policy.py +12 -12
  196. pulumi_gcp/dataproc/outputs.py +182 -46
  197. pulumi_gcp/datastream/_inputs.py +1789 -820
  198. pulumi_gcp/datastream/connection_profile.py +163 -3
  199. pulumi_gcp/datastream/outputs.py +864 -5
  200. pulumi_gcp/datastream/stream.py +174 -0
  201. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
  202. pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
  203. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
  204. pulumi_gcp/endpoints/service_iam_binding.py +12 -12
  205. pulumi_gcp/endpoints/service_iam_member.py +12 -12
  206. pulumi_gcp/endpoints/service_iam_policy.py +12 -12
  207. pulumi_gcp/firestore/field.py +4 -4
  208. pulumi_gcp/folder/iam_audit_config.py +23 -23
  209. pulumi_gcp/folder/iam_member.py +16 -16
  210. pulumi_gcp/folder/iam_policy.py +16 -16
  211. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +12 -12
  212. pulumi_gcp/gkebackup/backup_plan_iam_member.py +12 -12
  213. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +12 -12
  214. pulumi_gcp/gkehub/feature_iam_binding.py +12 -12
  215. pulumi_gcp/gkehub/feature_iam_member.py +12 -12
  216. pulumi_gcp/gkehub/feature_iam_policy.py +12 -12
  217. pulumi_gcp/gkehub/membership_binding.py +6 -6
  218. pulumi_gcp/gkehub/membership_iam_binding.py +12 -12
  219. pulumi_gcp/gkehub/membership_iam_member.py +12 -12
  220. pulumi_gcp/gkehub/membership_iam_policy.py +12 -12
  221. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  222. pulumi_gcp/gkehub/namespace.py +4 -4
  223. pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
  224. pulumi_gcp/gkehub/scope_iam_member.py +12 -12
  225. pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
  226. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  227. pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
  228. pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
  229. pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
  230. pulumi_gcp/healthcare/dataset_iam_binding.py +12 -12
  231. pulumi_gcp/healthcare/dataset_iam_member.py +12 -12
  232. pulumi_gcp/healthcare/dataset_iam_policy.py +12 -12
  233. pulumi_gcp/healthcare/dicom_store_iam_binding.py +12 -12
  234. pulumi_gcp/healthcare/dicom_store_iam_member.py +12 -12
  235. pulumi_gcp/healthcare/dicom_store_iam_policy.py +12 -12
  236. pulumi_gcp/healthcare/fhir_store_iam_binding.py +12 -12
  237. pulumi_gcp/healthcare/fhir_store_iam_member.py +12 -12
  238. pulumi_gcp/healthcare/fhir_store_iam_policy.py +12 -12
  239. pulumi_gcp/healthcare/hl7_store_iam_binding.py +12 -12
  240. pulumi_gcp/healthcare/hl7_store_iam_member.py +12 -12
  241. pulumi_gcp/healthcare/hl7_store_iam_policy.py +12 -12
  242. pulumi_gcp/iam/_inputs.py +191 -2
  243. pulumi_gcp/iam/outputs.py +197 -2
  244. pulumi_gcp/iam/workforce_pool_provider.py +245 -0
  245. pulumi_gcp/iap/app_engine_service_iam_binding.py +12 -12
  246. pulumi_gcp/iap/app_engine_service_iam_member.py +12 -12
  247. pulumi_gcp/iap/app_engine_service_iam_policy.py +12 -12
  248. pulumi_gcp/iap/app_engine_version_iam_binding.py +12 -12
  249. pulumi_gcp/iap/app_engine_version_iam_member.py +12 -12
  250. pulumi_gcp/iap/app_engine_version_iam_policy.py +12 -12
  251. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  252. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +12 -12
  253. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +12 -12
  254. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +12 -12
  255. pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
  256. pulumi_gcp/iap/tunnel_iam_member.py +12 -12
  257. pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
  258. pulumi_gcp/iap/tunnel_instance_iam_binding.py +12 -12
  259. pulumi_gcp/iap/tunnel_instance_iam_member.py +12 -12
  260. pulumi_gcp/iap/tunnel_instance_iam_policy.py +12 -12
  261. pulumi_gcp/iap/web_backend_service_iam_binding.py +12 -12
  262. pulumi_gcp/iap/web_backend_service_iam_member.py +12 -12
  263. pulumi_gcp/iap/web_backend_service_iam_policy.py +12 -12
  264. pulumi_gcp/iap/web_iam_binding.py +12 -12
  265. pulumi_gcp/iap/web_iam_member.py +12 -12
  266. pulumi_gcp/iap/web_iam_policy.py +12 -12
  267. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +12 -12
  268. pulumi_gcp/iap/web_region_backend_service_iam_member.py +12 -12
  269. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +12 -12
  270. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +12 -12
  271. pulumi_gcp/iap/web_type_app_enging_iam_member.py +12 -12
  272. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +12 -12
  273. pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
  274. pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
  275. pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
  276. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  277. pulumi_gcp/integrationconnectors/managed_zone.py +753 -0
  278. pulumi_gcp/kms/key_ring_iam_binding.py +12 -12
  279. pulumi_gcp/kms/key_ring_iam_member.py +12 -12
  280. pulumi_gcp/kms/key_ring_iam_policy.py +12 -12
  281. pulumi_gcp/netapp/storage_pool.py +7 -7
  282. pulumi_gcp/netapp/volume.py +4 -4
  283. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  284. pulumi_gcp/networkconnectivity/regional_endpoint.py +946 -0
  285. pulumi_gcp/networksecurity/firewall_endpoint.py +34 -0
  286. pulumi_gcp/networksecurity/firewall_endpoint_association.py +24 -0
  287. pulumi_gcp/networksecurity/gateway_security_policy.py +4 -4
  288. pulumi_gcp/networksecurity/security_profile.py +16 -0
  289. pulumi_gcp/networksecurity/security_profile_group.py +18 -0
  290. pulumi_gcp/networksecurity/tls_inspection_policy.py +435 -5
  291. pulumi_gcp/networkservices/__init__.py +1 -0
  292. pulumi_gcp/networkservices/_inputs.py +254 -0
  293. pulumi_gcp/networkservices/lb_traffic_extension.py +1181 -0
  294. pulumi_gcp/networkservices/outputs.py +265 -0
  295. pulumi_gcp/notebooks/instance_iam_binding.py +12 -12
  296. pulumi_gcp/notebooks/instance_iam_member.py +12 -12
  297. pulumi_gcp/notebooks/instance_iam_policy.py +12 -12
  298. pulumi_gcp/notebooks/runtime_iam_binding.py +12 -12
  299. pulumi_gcp/notebooks/runtime_iam_member.py +12 -12
  300. pulumi_gcp/notebooks/runtime_iam_policy.py +12 -12
  301. pulumi_gcp/organizations/_inputs.py +10 -0
  302. pulumi_gcp/organizations/iam_member.py +16 -16
  303. pulumi_gcp/organizations/iam_policy.py +16 -16
  304. pulumi_gcp/organizations/outputs.py +10 -0
  305. pulumi_gcp/orgpolicy/policy.py +2 -2
  306. pulumi_gcp/projects/iam_audit_config.py +23 -23
  307. pulumi_gcp/projects/iam_binding.py +23 -23
  308. pulumi_gcp/projects/iam_member.py +23 -23
  309. pulumi_gcp/projects/iam_policy.py +16 -16
  310. pulumi_gcp/projects/service.py +2 -43
  311. pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
  312. pulumi_gcp/pubsub/schema_iam_member.py +12 -12
  313. pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
  314. pulumi_gcp/pubsub/subscription.py +4 -4
  315. pulumi_gcp/pubsub/subscription_iam_binding.py +12 -12
  316. pulumi_gcp/pubsub/subscription_iam_member.py +12 -12
  317. pulumi_gcp/pubsub/subscription_iam_policy.py +12 -12
  318. pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
  319. pulumi_gcp/pubsub/topic_iam_member.py +12 -12
  320. pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
  321. pulumi_gcp/pulumi-plugin.json +1 -1
  322. pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
  323. pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
  324. pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
  325. pulumi_gcp/servicedirectory/namespace_iam_binding.py +8 -8
  326. pulumi_gcp/servicedirectory/namespace_iam_member.py +8 -8
  327. pulumi_gcp/servicedirectory/namespace_iam_policy.py +8 -8
  328. pulumi_gcp/servicedirectory/service_iam_binding.py +8 -8
  329. pulumi_gcp/servicedirectory/service_iam_member.py +8 -8
  330. pulumi_gcp/servicedirectory/service_iam_policy.py +8 -8
  331. pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
  332. pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
  333. pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
  334. pulumi_gcp/spanner/database_iam_binding.py +12 -12
  335. pulumi_gcp/spanner/database_iam_member.py +12 -12
  336. pulumi_gcp/spanner/database_iam_policy.py +12 -12
  337. pulumi_gcp/spanner/instance_iam_binding.py +12 -12
  338. pulumi_gcp/spanner/instance_iam_member.py +12 -12
  339. pulumi_gcp/spanner/instance_iam_policy.py +12 -12
  340. pulumi_gcp/storage/_inputs.py +12 -10
  341. pulumi_gcp/storage/bucket.py +44 -0
  342. pulumi_gcp/storage/bucket_iam_binding.py +12 -12
  343. pulumi_gcp/storage/bucket_iam_member.py +12 -12
  344. pulumi_gcp/storage/bucket_iam_policy.py +12 -12
  345. pulumi_gcp/storage/outputs.py +12 -10
  346. pulumi_gcp/tags/tag_key_iam_binding.py +12 -12
  347. pulumi_gcp/tags/tag_key_iam_member.py +12 -12
  348. pulumi_gcp/tags/tag_key_iam_policy.py +12 -12
  349. pulumi_gcp/tags/tag_value_iam_binding.py +12 -12
  350. pulumi_gcp/tags/tag_value_iam_member.py +12 -12
  351. pulumi_gcp/tags/tag_value_iam_policy.py +12 -12
  352. {pulumi_gcp-7.23.0a1715695885.dist-info → pulumi_gcp-7.24.0.dist-info}/METADATA +1 -1
  353. {pulumi_gcp-7.23.0a1715695885.dist-info → pulumi_gcp-7.24.0.dist-info}/RECORD +355 -349
  354. {pulumi_gcp-7.23.0a1715695885.dist-info → pulumi_gcp-7.24.0.dist-info}/WHEEL +0 -0
  355. {pulumi_gcp-7.23.0a1715695885.dist-info → pulumi_gcp-7.24.0.dist-info}/top_level.txt +0 -0
@@ -181,6 +181,10 @@ __all__ = [
181
181
  'InstanceTemplateServiceAccountArgs',
182
182
  'InstanceTemplateShieldedInstanceConfigArgs',
183
183
  'InterconnectAttachmentPrivateInterconnectInfoArgs',
184
+ 'InterconnectCircuitInfoArgs',
185
+ 'InterconnectExpectedOutageArgs',
186
+ 'InterconnectMacsecArgs',
187
+ 'InterconnectMacsecPreSharedKeyArgs',
184
188
  'MachineImageIamBindingConditionArgs',
185
189
  'MachineImageIamMemberConditionArgs',
186
190
  'MachineImageMachineImageEncryptionKeyArgs',
@@ -309,8 +313,19 @@ __all__ = [
309
313
  'RegionSecurityPolicyDdosProtectionConfigArgs',
310
314
  'RegionSecurityPolicyRuleMatchArgs',
311
315
  'RegionSecurityPolicyRuleMatchConfigArgs',
316
+ 'RegionSecurityPolicyRuleMatchExprArgs',
312
317
  'RegionSecurityPolicyRuleNetworkMatchArgs',
313
318
  'RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs',
319
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigArgs',
320
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs',
321
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs',
322
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs',
323
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs',
324
+ 'RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs',
325
+ 'RegionSecurityPolicyRuleRateLimitOptionsArgs',
326
+ 'RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs',
327
+ 'RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs',
328
+ 'RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs',
314
329
  'RegionSecurityPolicyUserDefinedFieldArgs',
315
330
  'RegionUrlMapDefaultRouteActionArgs',
316
331
  'RegionUrlMapDefaultRouteActionCorsPolicyArgs',
@@ -3006,6 +3021,25 @@ class BackendServiceLocalityLbPolicyPolicyArgs:
3006
3021
  Note that specifying the same policy more than once for a backend is
3007
3022
  not a valid configuration and will be rejected.
3008
3023
  The possible values are:
3024
+ * `ROUND_ROBIN`: This is a simple policy in which each healthy backend
3025
+ is selected in round robin order.
3026
+ * `LEAST_REQUEST`: An O(1) algorithm which selects two random healthy
3027
+ hosts and picks the host which has fewer active requests.
3028
+ * `RING_HASH`: The ring/modulo hash load balancer implements consistent
3029
+ hashing to backends. The algorithm has the property that the
3030
+ addition/removal of a host from a set of N hosts only affects
3031
+ 1/N of the requests.
3032
+ * `RANDOM`: The load balancer selects a random healthy host.
3033
+ * `ORIGINAL_DESTINATION`: Backend host is selected based on the client
3034
+ connection metadata, i.e., connections are opened
3035
+ to the same address as the destination address of
3036
+ the incoming connection before the connection
3037
+ was redirected to the load balancer.
3038
+ * `MAGLEV`: used as a drop in replacement for the ring hash load balancer.
3039
+ Maglev is not as stable as ring hash but has faster table lookup
3040
+ build times and host selection times. For more information about
3041
+ Maglev, refer to https://ai.google/research/pubs/pub44824
3042
+ Possible values are: `ROUND_ROBIN`, `LEAST_REQUEST`, `RING_HASH`, `RANDOM`, `ORIGINAL_DESTINATION`, `MAGLEV`.
3009
3043
  """
3010
3044
  pulumi.set(__self__, "name", name)
3011
3045
 
@@ -3021,6 +3055,25 @@ class BackendServiceLocalityLbPolicyPolicyArgs:
3021
3055
  Note that specifying the same policy more than once for a backend is
3022
3056
  not a valid configuration and will be rejected.
3023
3057
  The possible values are:
3058
+ * `ROUND_ROBIN`: This is a simple policy in which each healthy backend
3059
+ is selected in round robin order.
3060
+ * `LEAST_REQUEST`: An O(1) algorithm which selects two random healthy
3061
+ hosts and picks the host which has fewer active requests.
3062
+ * `RING_HASH`: The ring/modulo hash load balancer implements consistent
3063
+ hashing to backends. The algorithm has the property that the
3064
+ addition/removal of a host from a set of N hosts only affects
3065
+ 1/N of the requests.
3066
+ * `RANDOM`: The load balancer selects a random healthy host.
3067
+ * `ORIGINAL_DESTINATION`: Backend host is selected based on the client
3068
+ connection metadata, i.e., connections are opened
3069
+ to the same address as the destination address of
3070
+ the incoming connection before the connection
3071
+ was redirected to the load balancer.
3072
+ * `MAGLEV`: used as a drop in replacement for the ring hash load balancer.
3073
+ Maglev is not as stable as ring hash but has faster table lookup
3074
+ build times and host selection times. For more information about
3075
+ Maglev, refer to https://ai.google/research/pubs/pub44824
3076
+ Possible values are: `ROUND_ROBIN`, `LEAST_REQUEST`, `RING_HASH`, `RANDOM`, `ORIGINAL_DESTINATION`, `MAGLEV`.
3024
3077
  """
3025
3078
  return pulumi.get(self, "name")
3026
3079
 
@@ -4573,6 +4626,15 @@ class HealthCheckGrpcHealthCheckArgs:
4573
4626
  port_name are defined, port takes precedence.
4574
4627
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
4575
4628
  following values:
4629
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
4630
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
4631
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
4632
+ network endpoint is used for health checking. For other backends, the
4633
+ port or named port specified in the Backend Service is used for health
4634
+ checking.
4635
+ If not specified, gRPC health check follows behavior specified in `port` and
4636
+ `portName` fields.
4637
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
4576
4638
  """
4577
4639
  if grpc_service_name is not None:
4578
4640
  pulumi.set(__self__, "grpc_service_name", grpc_service_name)
@@ -4632,6 +4694,15 @@ class HealthCheckGrpcHealthCheckArgs:
4632
4694
  """
4633
4695
  Specifies how port is selected for health checking, can be one of the
4634
4696
  following values:
4697
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
4698
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
4699
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
4700
+ network endpoint is used for health checking. For other backends, the
4701
+ port or named port specified in the Backend Service is used for health
4702
+ checking.
4703
+ If not specified, gRPC health check follows behavior specified in `port` and
4704
+ `portName` fields.
4705
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
4635
4706
  """
4636
4707
  return pulumi.get(self, "port_specification")
4637
4708
 
@@ -4821,6 +4892,15 @@ class HealthCheckHttpHealthCheckArgs:
4821
4892
  port_name are defined, port takes precedence.
4822
4893
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
4823
4894
  following values:
4895
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
4896
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
4897
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
4898
+ network endpoint is used for health checking. For other backends, the
4899
+ port or named port specified in the Backend Service is used for health
4900
+ checking.
4901
+ If not specified, HTTP health check follows behavior specified in `port` and
4902
+ `portName` fields.
4903
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
4824
4904
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
4825
4905
  backend.
4826
4906
  Default value is `NONE`.
@@ -4892,6 +4972,15 @@ class HealthCheckHttpHealthCheckArgs:
4892
4972
  """
4893
4973
  Specifies how port is selected for health checking, can be one of the
4894
4974
  following values:
4975
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
4976
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
4977
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
4978
+ network endpoint is used for health checking. For other backends, the
4979
+ port or named port specified in the Backend Service is used for health
4980
+ checking.
4981
+ If not specified, HTTP health check follows behavior specified in `port` and
4982
+ `portName` fields.
4983
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
4895
4984
  """
4896
4985
  return pulumi.get(self, "port_specification")
4897
4986
 
@@ -4962,6 +5051,15 @@ class HealthCheckHttpsHealthCheckArgs:
4962
5051
  port_name are defined, port takes precedence.
4963
5052
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
4964
5053
  following values:
5054
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5055
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5056
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5057
+ network endpoint is used for health checking. For other backends, the
5058
+ port or named port specified in the Backend Service is used for health
5059
+ checking.
5060
+ If not specified, HTTPS health check follows behavior specified in `port` and
5061
+ `portName` fields.
5062
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
4965
5063
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
4966
5064
  backend.
4967
5065
  Default value is `NONE`.
@@ -5033,6 +5131,15 @@ class HealthCheckHttpsHealthCheckArgs:
5033
5131
  """
5034
5132
  Specifies how port is selected for health checking, can be one of the
5035
5133
  following values:
5134
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5135
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5136
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5137
+ network endpoint is used for health checking. For other backends, the
5138
+ port or named port specified in the Backend Service is used for health
5139
+ checking.
5140
+ If not specified, HTTPS health check follows behavior specified in `port` and
5141
+ `portName` fields.
5142
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
5036
5143
  """
5037
5144
  return pulumi.get(self, "port_specification")
5038
5145
 
@@ -5124,6 +5231,15 @@ class HealthCheckSslHealthCheckArgs:
5124
5231
  port_name are defined, port takes precedence.
5125
5232
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
5126
5233
  following values:
5234
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5235
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5236
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5237
+ network endpoint is used for health checking. For other backends, the
5238
+ port or named port specified in the Backend Service is used for health
5239
+ checking.
5240
+ If not specified, HTTP2 health check follows behavior specified in `port` and
5241
+ `portName` fields.
5242
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
5127
5243
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
5128
5244
  backend.
5129
5245
  Default value is `NONE`.
@@ -5181,6 +5297,15 @@ class HealthCheckSslHealthCheckArgs:
5181
5297
  """
5182
5298
  Specifies how port is selected for health checking, can be one of the
5183
5299
  following values:
5300
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5301
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5302
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5303
+ network endpoint is used for health checking. For other backends, the
5304
+ port or named port specified in the Backend Service is used for health
5305
+ checking.
5306
+ If not specified, HTTP2 health check follows behavior specified in `port` and
5307
+ `portName` fields.
5308
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
5184
5309
  """
5185
5310
  return pulumi.get(self, "port_specification")
5186
5311
 
@@ -5249,6 +5374,15 @@ class HealthCheckTcpHealthCheckArgs:
5249
5374
  port_name are defined, port takes precedence.
5250
5375
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
5251
5376
  following values:
5377
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5378
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5379
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5380
+ network endpoint is used for health checking. For other backends, the
5381
+ port or named port specified in the Backend Service is used for health
5382
+ checking.
5383
+ If not specified, TCP health check follows behavior specified in `port` and
5384
+ `portName` fields.
5385
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
5252
5386
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
5253
5387
  backend.
5254
5388
  Default value is `NONE`.
@@ -5306,6 +5440,15 @@ class HealthCheckTcpHealthCheckArgs:
5306
5440
  """
5307
5441
  Specifies how port is selected for health checking, can be one of the
5308
5442
  following values:
5443
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
5444
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
5445
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
5446
+ network endpoint is used for health checking. For other backends, the
5447
+ port or named port specified in the Backend Service is used for health
5448
+ checking.
5449
+ If not specified, TCP health check follows behavior specified in `port` and
5450
+ `portName` fields.
5451
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
5309
5452
  """
5310
5453
  return pulumi.get(self, "port_specification")
5311
5454
 
@@ -13112,6 +13255,362 @@ class InterconnectAttachmentPrivateInterconnectInfoArgs:
13112
13255
  pulumi.set(self, "tag8021q", value)
13113
13256
 
13114
13257
 
13258
+ @pulumi.input_type
13259
+ class InterconnectCircuitInfoArgs:
13260
+ def __init__(__self__, *,
13261
+ customer_demarc_id: Optional[pulumi.Input[str]] = None,
13262
+ google_circuit_id: Optional[pulumi.Input[str]] = None,
13263
+ google_demarc_id: Optional[pulumi.Input[str]] = None):
13264
+ """
13265
+ :param pulumi.Input[str] customer_demarc_id: (Output)
13266
+ Customer-side demarc ID for this circuit.
13267
+ :param pulumi.Input[str] google_circuit_id: (Output)
13268
+ Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
13269
+ :param pulumi.Input[str] google_demarc_id: (Output)
13270
+ Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
13271
+ Google to the customer in the LOA.
13272
+ """
13273
+ if customer_demarc_id is not None:
13274
+ pulumi.set(__self__, "customer_demarc_id", customer_demarc_id)
13275
+ if google_circuit_id is not None:
13276
+ pulumi.set(__self__, "google_circuit_id", google_circuit_id)
13277
+ if google_demarc_id is not None:
13278
+ pulumi.set(__self__, "google_demarc_id", google_demarc_id)
13279
+
13280
+ @property
13281
+ @pulumi.getter(name="customerDemarcId")
13282
+ def customer_demarc_id(self) -> Optional[pulumi.Input[str]]:
13283
+ """
13284
+ (Output)
13285
+ Customer-side demarc ID for this circuit.
13286
+ """
13287
+ return pulumi.get(self, "customer_demarc_id")
13288
+
13289
+ @customer_demarc_id.setter
13290
+ def customer_demarc_id(self, value: Optional[pulumi.Input[str]]):
13291
+ pulumi.set(self, "customer_demarc_id", value)
13292
+
13293
+ @property
13294
+ @pulumi.getter(name="googleCircuitId")
13295
+ def google_circuit_id(self) -> Optional[pulumi.Input[str]]:
13296
+ """
13297
+ (Output)
13298
+ Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
13299
+ """
13300
+ return pulumi.get(self, "google_circuit_id")
13301
+
13302
+ @google_circuit_id.setter
13303
+ def google_circuit_id(self, value: Optional[pulumi.Input[str]]):
13304
+ pulumi.set(self, "google_circuit_id", value)
13305
+
13306
+ @property
13307
+ @pulumi.getter(name="googleDemarcId")
13308
+ def google_demarc_id(self) -> Optional[pulumi.Input[str]]:
13309
+ """
13310
+ (Output)
13311
+ Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
13312
+ Google to the customer in the LOA.
13313
+ """
13314
+ return pulumi.get(self, "google_demarc_id")
13315
+
13316
+ @google_demarc_id.setter
13317
+ def google_demarc_id(self, value: Optional[pulumi.Input[str]]):
13318
+ pulumi.set(self, "google_demarc_id", value)
13319
+
13320
+
13321
+ @pulumi.input_type
13322
+ class InterconnectExpectedOutageArgs:
13323
+ def __init__(__self__, *,
13324
+ affected_circuits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
13325
+ description: Optional[pulumi.Input[str]] = None,
13326
+ end_time: Optional[pulumi.Input[str]] = None,
13327
+ issue_type: Optional[pulumi.Input[str]] = None,
13328
+ name: Optional[pulumi.Input[str]] = None,
13329
+ source: Optional[pulumi.Input[str]] = None,
13330
+ start_time: Optional[pulumi.Input[str]] = None,
13331
+ state: Optional[pulumi.Input[str]] = None):
13332
+ """
13333
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] affected_circuits: (Output)
13334
+ If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
13335
+ affected.
13336
+ :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
13337
+ :param pulumi.Input[str] end_time: (Output)
13338
+ Scheduled end time for the outage (milliseconds since Unix epoch).
13339
+ :param pulumi.Input[str] issue_type: (Output)
13340
+ Form this outage is expected to take. Note that the versions of this enum prefixed with
13341
+ "IT_" have been deprecated in favor of the unprefixed values. Can take one of the
13342
+ following values:
13343
+ - OUTAGE: The Interconnect may be completely out of service for some or all of the
13344
+ specified window.
13345
+ - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
13346
+ up, but with reduced bandwidth.
13347
+ :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be
13348
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
13349
+ long and match the regular expression `a-z?` which means the first
13350
+ character must be a lowercase letter, and all following characters must be a dash,
13351
+ lowercase letter, or digit, except the last character, which cannot be a dash.
13352
+ :param pulumi.Input[str] source: (Output)
13353
+ The party that generated this notification. Note that the value of NSRC_GOOGLE has been
13354
+ deprecated in favor of GOOGLE. Can take the following value:
13355
+ - GOOGLE: this notification as generated by Google.
13356
+ :param pulumi.Input[str] start_time: (Output)
13357
+ Scheduled start time for the outage (milliseconds since Unix epoch).
13358
+ :param pulumi.Input[str] state: (Output)
13359
+ State of this notification. Note that the versions of this enum prefixed with "NS_" have
13360
+ been deprecated in favor of the unprefixed values. Can take one of the following values:
13361
+ - ACTIVE: This outage notification is active. The event could be in the past, present,
13362
+ or future. See startTime and endTime for scheduling.
13363
+ - CANCELLED: The outage associated with this notification was cancelled before the
13364
+ outage was due to start.
13365
+ - COMPLETED: The outage associated with this notification is complete.
13366
+ """
13367
+ if affected_circuits is not None:
13368
+ pulumi.set(__self__, "affected_circuits", affected_circuits)
13369
+ if description is not None:
13370
+ pulumi.set(__self__, "description", description)
13371
+ if end_time is not None:
13372
+ pulumi.set(__self__, "end_time", end_time)
13373
+ if issue_type is not None:
13374
+ pulumi.set(__self__, "issue_type", issue_type)
13375
+ if name is not None:
13376
+ pulumi.set(__self__, "name", name)
13377
+ if source is not None:
13378
+ pulumi.set(__self__, "source", source)
13379
+ if start_time is not None:
13380
+ pulumi.set(__self__, "start_time", start_time)
13381
+ if state is not None:
13382
+ pulumi.set(__self__, "state", state)
13383
+
13384
+ @property
13385
+ @pulumi.getter(name="affectedCircuits")
13386
+ def affected_circuits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
13387
+ """
13388
+ (Output)
13389
+ If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
13390
+ affected.
13391
+ """
13392
+ return pulumi.get(self, "affected_circuits")
13393
+
13394
+ @affected_circuits.setter
13395
+ def affected_circuits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
13396
+ pulumi.set(self, "affected_circuits", value)
13397
+
13398
+ @property
13399
+ @pulumi.getter
13400
+ def description(self) -> Optional[pulumi.Input[str]]:
13401
+ """
13402
+ An optional description of this resource. Provide this property when you create the resource.
13403
+ """
13404
+ return pulumi.get(self, "description")
13405
+
13406
+ @description.setter
13407
+ def description(self, value: Optional[pulumi.Input[str]]):
13408
+ pulumi.set(self, "description", value)
13409
+
13410
+ @property
13411
+ @pulumi.getter(name="endTime")
13412
+ def end_time(self) -> Optional[pulumi.Input[str]]:
13413
+ """
13414
+ (Output)
13415
+ Scheduled end time for the outage (milliseconds since Unix epoch).
13416
+ """
13417
+ return pulumi.get(self, "end_time")
13418
+
13419
+ @end_time.setter
13420
+ def end_time(self, value: Optional[pulumi.Input[str]]):
13421
+ pulumi.set(self, "end_time", value)
13422
+
13423
+ @property
13424
+ @pulumi.getter(name="issueType")
13425
+ def issue_type(self) -> Optional[pulumi.Input[str]]:
13426
+ """
13427
+ (Output)
13428
+ Form this outage is expected to take. Note that the versions of this enum prefixed with
13429
+ "IT_" have been deprecated in favor of the unprefixed values. Can take one of the
13430
+ following values:
13431
+ - OUTAGE: The Interconnect may be completely out of service for some or all of the
13432
+ specified window.
13433
+ - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
13434
+ up, but with reduced bandwidth.
13435
+ """
13436
+ return pulumi.get(self, "issue_type")
13437
+
13438
+ @issue_type.setter
13439
+ def issue_type(self, value: Optional[pulumi.Input[str]]):
13440
+ pulumi.set(self, "issue_type", value)
13441
+
13442
+ @property
13443
+ @pulumi.getter
13444
+ def name(self) -> Optional[pulumi.Input[str]]:
13445
+ """
13446
+ Name of the resource. Provided by the client when the resource is created. The name must be
13447
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
13448
+ long and match the regular expression `a-z?` which means the first
13449
+ character must be a lowercase letter, and all following characters must be a dash,
13450
+ lowercase letter, or digit, except the last character, which cannot be a dash.
13451
+ """
13452
+ return pulumi.get(self, "name")
13453
+
13454
+ @name.setter
13455
+ def name(self, value: Optional[pulumi.Input[str]]):
13456
+ pulumi.set(self, "name", value)
13457
+
13458
+ @property
13459
+ @pulumi.getter
13460
+ def source(self) -> Optional[pulumi.Input[str]]:
13461
+ """
13462
+ (Output)
13463
+ The party that generated this notification. Note that the value of NSRC_GOOGLE has been
13464
+ deprecated in favor of GOOGLE. Can take the following value:
13465
+ - GOOGLE: this notification as generated by Google.
13466
+ """
13467
+ return pulumi.get(self, "source")
13468
+
13469
+ @source.setter
13470
+ def source(self, value: Optional[pulumi.Input[str]]):
13471
+ pulumi.set(self, "source", value)
13472
+
13473
+ @property
13474
+ @pulumi.getter(name="startTime")
13475
+ def start_time(self) -> Optional[pulumi.Input[str]]:
13476
+ """
13477
+ (Output)
13478
+ Scheduled start time for the outage (milliseconds since Unix epoch).
13479
+ """
13480
+ return pulumi.get(self, "start_time")
13481
+
13482
+ @start_time.setter
13483
+ def start_time(self, value: Optional[pulumi.Input[str]]):
13484
+ pulumi.set(self, "start_time", value)
13485
+
13486
+ @property
13487
+ @pulumi.getter
13488
+ def state(self) -> Optional[pulumi.Input[str]]:
13489
+ """
13490
+ (Output)
13491
+ State of this notification. Note that the versions of this enum prefixed with "NS_" have
13492
+ been deprecated in favor of the unprefixed values. Can take one of the following values:
13493
+ - ACTIVE: This outage notification is active. The event could be in the past, present,
13494
+ or future. See startTime and endTime for scheduling.
13495
+ - CANCELLED: The outage associated with this notification was cancelled before the
13496
+ outage was due to start.
13497
+ - COMPLETED: The outage associated with this notification is complete.
13498
+ """
13499
+ return pulumi.get(self, "state")
13500
+
13501
+ @state.setter
13502
+ def state(self, value: Optional[pulumi.Input[str]]):
13503
+ pulumi.set(self, "state", value)
13504
+
13505
+
13506
+ @pulumi.input_type
13507
+ class InterconnectMacsecArgs:
13508
+ def __init__(__self__, *,
13509
+ pre_shared_keys: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
13510
+ """
13511
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]] pre_shared_keys: A keychain placeholder describing a set of named key objects along with their
13512
+ start times. A MACsec CKN/CAK is generated for each key in the key chain.
13513
+ Google router automatically picks the key with the most recent startTime when establishing
13514
+ or re-establishing a MACsec secure link.
13515
+ Structure is documented below.
13516
+ """
13517
+ pulumi.set(__self__, "pre_shared_keys", pre_shared_keys)
13518
+
13519
+ @property
13520
+ @pulumi.getter(name="preSharedKeys")
13521
+ def pre_shared_keys(self) -> pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]:
13522
+ """
13523
+ A keychain placeholder describing a set of named key objects along with their
13524
+ start times. A MACsec CKN/CAK is generated for each key in the key chain.
13525
+ Google router automatically picks the key with the most recent startTime when establishing
13526
+ or re-establishing a MACsec secure link.
13527
+ Structure is documented below.
13528
+ """
13529
+ return pulumi.get(self, "pre_shared_keys")
13530
+
13531
+ @pre_shared_keys.setter
13532
+ def pre_shared_keys(self, value: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgs']]]):
13533
+ pulumi.set(self, "pre_shared_keys", value)
13534
+
13535
+
13536
+ @pulumi.input_type
13537
+ class InterconnectMacsecPreSharedKeyArgs:
13538
+ def __init__(__self__, *,
13539
+ name: pulumi.Input[str],
13540
+ fail_open: Optional[pulumi.Input[bool]] = None,
13541
+ start_time: Optional[pulumi.Input[str]] = None):
13542
+ """
13543
+ :param pulumi.Input[str] name: A name for this pre-shared key. The name must be 1-63 characters long, and
13544
+ comply with RFC1035. Specifically, the name must be 1-63 characters long and match
13545
+ the regular expression `a-z?` which means the first character
13546
+ must be a lowercase letter, and all following characters must be a dash, lowercase
13547
+ letter, or digit, except the last character, which cannot be a dash.
13548
+ :param pulumi.Input[bool] fail_open: If set to true, the Interconnect connection is configured with a should-secure
13549
+ MACsec security policy, that allows the Google router to fallback to cleartext
13550
+ traffic if the MKA session cannot be established. By default, the Interconnect
13551
+ connection is configured with a must-secure security policy that drops all traffic
13552
+ if the MKA session cannot be established with your router.
13553
+ :param pulumi.Input[str] start_time: A RFC3339 timestamp on or after which the key is valid. startTime can be in the
13554
+ future. If the keychain has a single key, startTime can be omitted. If the keychain
13555
+ has multiple keys, startTime is mandatory for each key. The start times of keys must
13556
+ be in increasing order. The start times of two consecutive keys must be at least 6
13557
+ hours apart.
13558
+ """
13559
+ pulumi.set(__self__, "name", name)
13560
+ if fail_open is not None:
13561
+ pulumi.set(__self__, "fail_open", fail_open)
13562
+ if start_time is not None:
13563
+ pulumi.set(__self__, "start_time", start_time)
13564
+
13565
+ @property
13566
+ @pulumi.getter
13567
+ def name(self) -> pulumi.Input[str]:
13568
+ """
13569
+ A name for this pre-shared key. The name must be 1-63 characters long, and
13570
+ comply with RFC1035. Specifically, the name must be 1-63 characters long and match
13571
+ the regular expression `a-z?` which means the first character
13572
+ must be a lowercase letter, and all following characters must be a dash, lowercase
13573
+ letter, or digit, except the last character, which cannot be a dash.
13574
+ """
13575
+ return pulumi.get(self, "name")
13576
+
13577
+ @name.setter
13578
+ def name(self, value: pulumi.Input[str]):
13579
+ pulumi.set(self, "name", value)
13580
+
13581
+ @property
13582
+ @pulumi.getter(name="failOpen")
13583
+ def fail_open(self) -> Optional[pulumi.Input[bool]]:
13584
+ """
13585
+ If set to true, the Interconnect connection is configured with a should-secure
13586
+ MACsec security policy, that allows the Google router to fallback to cleartext
13587
+ traffic if the MKA session cannot be established. By default, the Interconnect
13588
+ connection is configured with a must-secure security policy that drops all traffic
13589
+ if the MKA session cannot be established with your router.
13590
+ """
13591
+ return pulumi.get(self, "fail_open")
13592
+
13593
+ @fail_open.setter
13594
+ def fail_open(self, value: Optional[pulumi.Input[bool]]):
13595
+ pulumi.set(self, "fail_open", value)
13596
+
13597
+ @property
13598
+ @pulumi.getter(name="startTime")
13599
+ def start_time(self) -> Optional[pulumi.Input[str]]:
13600
+ """
13601
+ A RFC3339 timestamp on or after which the key is valid. startTime can be in the
13602
+ future. If the keychain has a single key, startTime can be omitted. If the keychain
13603
+ has multiple keys, startTime is mandatory for each key. The start times of keys must
13604
+ be in increasing order. The start times of two consecutive keys must be at least 6
13605
+ hours apart.
13606
+ """
13607
+ return pulumi.get(self, "start_time")
13608
+
13609
+ @start_time.setter
13610
+ def start_time(self, value: Optional[pulumi.Input[str]]):
13611
+ pulumi.set(self, "start_time", value)
13612
+
13613
+
13115
13614
  @pulumi.input_type
13116
13615
  class MachineImageIamBindingConditionArgs:
13117
13616
  def __init__(__self__, *,
@@ -17755,6 +18254,15 @@ class RegionHealthCheckGrpcHealthCheckArgs:
17755
18254
  port_name are defined, port takes precedence.
17756
18255
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
17757
18256
  following values:
18257
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18258
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18259
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18260
+ network endpoint is used for health checking. For other backends, the
18261
+ port or named port specified in the Backend Service is used for health
18262
+ checking.
18263
+ If not specified, gRPC health check follows behavior specified in `port` and
18264
+ `portName` fields.
18265
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
17758
18266
  """
17759
18267
  if grpc_service_name is not None:
17760
18268
  pulumi.set(__self__, "grpc_service_name", grpc_service_name)
@@ -17814,6 +18322,15 @@ class RegionHealthCheckGrpcHealthCheckArgs:
17814
18322
  """
17815
18323
  Specifies how port is selected for health checking, can be one of the
17816
18324
  following values:
18325
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18326
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18327
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18328
+ network endpoint is used for health checking. For other backends, the
18329
+ port or named port specified in the Backend Service is used for health
18330
+ checking.
18331
+ If not specified, gRPC health check follows behavior specified in `port` and
18332
+ `portName` fields.
18333
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
17817
18334
  """
17818
18335
  return pulumi.get(self, "port_specification")
17819
18336
 
@@ -18003,6 +18520,15 @@ class RegionHealthCheckHttpHealthCheckArgs:
18003
18520
  port_name are defined, port takes precedence.
18004
18521
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
18005
18522
  following values:
18523
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18524
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18525
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18526
+ network endpoint is used for health checking. For other backends, the
18527
+ port or named port specified in the Backend Service is used for health
18528
+ checking.
18529
+ If not specified, HTTP health check follows behavior specified in `port` and
18530
+ `portName` fields.
18531
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18006
18532
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
18007
18533
  backend.
18008
18534
  Default value is `NONE`.
@@ -18074,6 +18600,15 @@ class RegionHealthCheckHttpHealthCheckArgs:
18074
18600
  """
18075
18601
  Specifies how port is selected for health checking, can be one of the
18076
18602
  following values:
18603
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18604
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18605
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18606
+ network endpoint is used for health checking. For other backends, the
18607
+ port or named port specified in the Backend Service is used for health
18608
+ checking.
18609
+ If not specified, HTTP health check follows behavior specified in `port` and
18610
+ `portName` fields.
18611
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18077
18612
  """
18078
18613
  return pulumi.get(self, "port_specification")
18079
18614
 
@@ -18144,6 +18679,15 @@ class RegionHealthCheckHttpsHealthCheckArgs:
18144
18679
  port_name are defined, port takes precedence.
18145
18680
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
18146
18681
  following values:
18682
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18683
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18684
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18685
+ network endpoint is used for health checking. For other backends, the
18686
+ port or named port specified in the Backend Service is used for health
18687
+ checking.
18688
+ If not specified, HTTPS health check follows behavior specified in `port` and
18689
+ `portName` fields.
18690
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18147
18691
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
18148
18692
  backend.
18149
18693
  Default value is `NONE`.
@@ -18215,6 +18759,15 @@ class RegionHealthCheckHttpsHealthCheckArgs:
18215
18759
  """
18216
18760
  Specifies how port is selected for health checking, can be one of the
18217
18761
  following values:
18762
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18763
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18764
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18765
+ network endpoint is used for health checking. For other backends, the
18766
+ port or named port specified in the Backend Service is used for health
18767
+ checking.
18768
+ If not specified, HTTPS health check follows behavior specified in `port` and
18769
+ `portName` fields.
18770
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18218
18771
  """
18219
18772
  return pulumi.get(self, "port_specification")
18220
18773
 
@@ -18306,6 +18859,15 @@ class RegionHealthCheckSslHealthCheckArgs:
18306
18859
  port_name are defined, port takes precedence.
18307
18860
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
18308
18861
  following values:
18862
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18863
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18864
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18865
+ network endpoint is used for health checking. For other backends, the
18866
+ port or named port specified in the Backend Service is used for health
18867
+ checking.
18868
+ If not specified, HTTP2 health check follows behavior specified in `port` and
18869
+ `portName` fields.
18870
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18309
18871
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
18310
18872
  backend.
18311
18873
  Default value is `NONE`.
@@ -18363,6 +18925,15 @@ class RegionHealthCheckSslHealthCheckArgs:
18363
18925
  """
18364
18926
  Specifies how port is selected for health checking, can be one of the
18365
18927
  following values:
18928
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
18929
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
18930
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
18931
+ network endpoint is used for health checking. For other backends, the
18932
+ port or named port specified in the Backend Service is used for health
18933
+ checking.
18934
+ If not specified, HTTP2 health check follows behavior specified in `port` and
18935
+ `portName` fields.
18936
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18366
18937
  """
18367
18938
  return pulumi.get(self, "port_specification")
18368
18939
 
@@ -18431,6 +19002,15 @@ class RegionHealthCheckTcpHealthCheckArgs:
18431
19002
  port_name are defined, port takes precedence.
18432
19003
  :param pulumi.Input[str] port_specification: Specifies how port is selected for health checking, can be one of the
18433
19004
  following values:
19005
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
19006
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
19007
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
19008
+ network endpoint is used for health checking. For other backends, the
19009
+ port or named port specified in the Backend Service is used for health
19010
+ checking.
19011
+ If not specified, TCP health check follows behavior specified in `port` and
19012
+ `portName` fields.
19013
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18434
19014
  :param pulumi.Input[str] proxy_header: Specifies the type of proxy header to append before sending data to the
18435
19015
  backend.
18436
19016
  Default value is `NONE`.
@@ -18488,6 +19068,15 @@ class RegionHealthCheckTcpHealthCheckArgs:
18488
19068
  """
18489
19069
  Specifies how port is selected for health checking, can be one of the
18490
19070
  following values:
19071
+ * `USE_FIXED_PORT`: The port number in `port` is used for health checking.
19072
+ * `USE_NAMED_PORT`: The `portName` is used for health checking.
19073
+ * `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each
19074
+ network endpoint is used for health checking. For other backends, the
19075
+ port or named port specified in the Backend Service is used for health
19076
+ checking.
19077
+ If not specified, TCP health check follows behavior specified in `port` and
19078
+ `portName` fields.
19079
+ Possible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.
18491
19080
  """
18492
19081
  return pulumi.get(self, "port_specification")
18493
19082
 
@@ -21914,17 +22503,22 @@ class RegionSecurityPolicyDdosProtectionConfigArgs:
21914
22503
  class RegionSecurityPolicyRuleMatchArgs:
21915
22504
  def __init__(__self__, *,
21916
22505
  config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None,
22506
+ expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None,
21917
22507
  versioned_expr: Optional[pulumi.Input[str]] = None):
21918
22508
  """
21919
22509
  :param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr.
21920
22510
  This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
21921
22511
  Structure is documented below.
22512
+ :param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] 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.
22513
+ Structure is documented below.
21922
22514
  :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
21923
22515
  Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
21924
22516
  Possible values are: `SRC_IPS_V1`.
21925
22517
  """
21926
22518
  if config is not None:
21927
22519
  pulumi.set(__self__, "config", config)
22520
+ if expr is not None:
22521
+ pulumi.set(__self__, "expr", expr)
21928
22522
  if versioned_expr is not None:
21929
22523
  pulumi.set(__self__, "versioned_expr", versioned_expr)
21930
22524
 
@@ -21942,6 +22536,19 @@ class RegionSecurityPolicyRuleMatchArgs:
21942
22536
  def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]):
21943
22537
  pulumi.set(self, "config", value)
21944
22538
 
22539
+ @property
22540
+ @pulumi.getter
22541
+ def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]:
22542
+ """
22543
+ 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.
22544
+ Structure is documented below.
22545
+ """
22546
+ return pulumi.get(self, "expr")
22547
+
22548
+ @expr.setter
22549
+ def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]):
22550
+ pulumi.set(self, "expr", value)
22551
+
21945
22552
  @property
21946
22553
  @pulumi.getter(name="versionedExpr")
21947
22554
  def versioned_expr(self) -> Optional[pulumi.Input[str]]:
@@ -21980,6 +22587,28 @@ class RegionSecurityPolicyRuleMatchConfigArgs:
21980
22587
  pulumi.set(self, "src_ip_ranges", value)
21981
22588
 
21982
22589
 
22590
+ @pulumi.input_type
22591
+ class RegionSecurityPolicyRuleMatchExprArgs:
22592
+ def __init__(__self__, *,
22593
+ expression: pulumi.Input[str]):
22594
+ """
22595
+ :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
22596
+ """
22597
+ pulumi.set(__self__, "expression", expression)
22598
+
22599
+ @property
22600
+ @pulumi.getter
22601
+ def expression(self) -> pulumi.Input[str]:
22602
+ """
22603
+ Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
22604
+ """
22605
+ return pulumi.get(self, "expression")
22606
+
22607
+ @expression.setter
22608
+ def expression(self, value: pulumi.Input[str]):
22609
+ pulumi.set(self, "expression", value)
22610
+
22611
+
21983
22612
  @pulumi.input_type
21984
22613
  class RegionSecurityPolicyRuleNetworkMatchArgs:
21985
22614
  def __init__(__self__, *,
@@ -22157,58 +22786,737 @@ class RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs:
22157
22786
 
22158
22787
 
22159
22788
  @pulumi.input_type
22160
- class RegionSecurityPolicyUserDefinedFieldArgs:
22789
+ class RegionSecurityPolicyRulePreconfiguredWafConfigArgs:
22161
22790
  def __init__(__self__, *,
22162
- base: pulumi.Input[str],
22163
- mask: Optional[pulumi.Input[str]] = None,
22164
- name: Optional[pulumi.Input[str]] = None,
22165
- offset: Optional[pulumi.Input[int]] = None,
22166
- size: Optional[pulumi.Input[int]] = None):
22791
+ exclusions: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs']]]] = None):
22167
22792
  """
22168
- :param pulumi.Input[str] base: The base relative to which 'offset' is measured. Possible values are:
22169
- - IPV4: Points to the beginning of the IPv4 header.
22170
- - IPV6: Points to the beginning of the IPv6 header.
22171
- - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
22172
- - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
22173
- Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`.
22174
- :param pulumi.Input[str] mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.
22175
- Encoded as a hexadecimal number (starting with "0x").
22176
- The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.
22177
- :param pulumi.Input[str] name: The name of this field. Must be unique within the policy.
22178
- :param pulumi.Input[int] offset: Offset of the first byte of the field (in network byte order) relative to 'base'.
22179
- :param pulumi.Input[int] size: Size of the field in bytes. Valid values: 1-4.
22793
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs']]] exclusions: An exclusion to apply during preconfigured WAF evaluation.
22794
+ Structure is documented below.
22180
22795
  """
22181
- pulumi.set(__self__, "base", base)
22182
- if mask is not None:
22183
- pulumi.set(__self__, "mask", mask)
22184
- if name is not None:
22185
- pulumi.set(__self__, "name", name)
22186
- if offset is not None:
22187
- pulumi.set(__self__, "offset", offset)
22188
- if size is not None:
22189
- pulumi.set(__self__, "size", size)
22796
+ if exclusions is not None:
22797
+ pulumi.set(__self__, "exclusions", exclusions)
22190
22798
 
22191
22799
  @property
22192
22800
  @pulumi.getter
22193
- def base(self) -> pulumi.Input[str]:
22801
+ def exclusions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs']]]]:
22194
22802
  """
22195
- The base relative to which 'offset' is measured. Possible values are:
22196
- - IPV4: Points to the beginning of the IPv4 header.
22197
- - IPV6: Points to the beginning of the IPv6 header.
22198
- - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
22199
- - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
22200
- Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`.
22803
+ An exclusion to apply during preconfigured WAF evaluation.
22804
+ Structure is documented below.
22201
22805
  """
22202
- return pulumi.get(self, "base")
22806
+ return pulumi.get(self, "exclusions")
22203
22807
 
22204
- @base.setter
22205
- def base(self, value: pulumi.Input[str]):
22206
- pulumi.set(self, "base", value)
22808
+ @exclusions.setter
22809
+ def exclusions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs']]]]):
22810
+ pulumi.set(self, "exclusions", value)
22207
22811
 
22208
- @property
22209
- @pulumi.getter
22210
- def mask(self) -> Optional[pulumi.Input[str]]:
22211
- """
22812
+
22813
+ @pulumi.input_type
22814
+ class RegionSecurityPolicyRulePreconfiguredWafConfigExclusionArgs:
22815
+ def __init__(__self__, *,
22816
+ target_rule_set: pulumi.Input[str],
22817
+ request_cookies: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs']]]] = None,
22818
+ request_headers: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs']]]] = None,
22819
+ request_query_params: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs']]]] = None,
22820
+ request_uris: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs']]]] = None,
22821
+ target_rule_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
22822
+ """
22823
+ :param pulumi.Input[str] target_rule_set: Target WAF rule set to apply the preconfigured WAF exclusion.
22824
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs']]] request_cookies: Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.
22825
+ Structure is documented below.
22826
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs']]] request_headers: Request header whose value will be excluded from inspection during preconfigured WAF evaluation.
22827
+ Structure is documented below.
22828
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs']]] request_query_params: Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.
22829
+ Note that the parameter can be in the query string or in the POST body.
22830
+ Structure is documented below.
22831
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs']]] request_uris: Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation.
22832
+ When specifying this field, the query or fragment part should be excluded.
22833
+ Structure is documented below.
22834
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_rule_ids: A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion.
22835
+ If omitted, it refers to all the rule IDs under the WAF rule set.
22836
+ """
22837
+ pulumi.set(__self__, "target_rule_set", target_rule_set)
22838
+ if request_cookies is not None:
22839
+ pulumi.set(__self__, "request_cookies", request_cookies)
22840
+ if request_headers is not None:
22841
+ pulumi.set(__self__, "request_headers", request_headers)
22842
+ if request_query_params is not None:
22843
+ pulumi.set(__self__, "request_query_params", request_query_params)
22844
+ if request_uris is not None:
22845
+ pulumi.set(__self__, "request_uris", request_uris)
22846
+ if target_rule_ids is not None:
22847
+ pulumi.set(__self__, "target_rule_ids", target_rule_ids)
22848
+
22849
+ @property
22850
+ @pulumi.getter(name="targetRuleSet")
22851
+ def target_rule_set(self) -> pulumi.Input[str]:
22852
+ """
22853
+ Target WAF rule set to apply the preconfigured WAF exclusion.
22854
+ """
22855
+ return pulumi.get(self, "target_rule_set")
22856
+
22857
+ @target_rule_set.setter
22858
+ def target_rule_set(self, value: pulumi.Input[str]):
22859
+ pulumi.set(self, "target_rule_set", value)
22860
+
22861
+ @property
22862
+ @pulumi.getter(name="requestCookies")
22863
+ def request_cookies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs']]]]:
22864
+ """
22865
+ Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.
22866
+ Structure is documented below.
22867
+ """
22868
+ return pulumi.get(self, "request_cookies")
22869
+
22870
+ @request_cookies.setter
22871
+ def request_cookies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs']]]]):
22872
+ pulumi.set(self, "request_cookies", value)
22873
+
22874
+ @property
22875
+ @pulumi.getter(name="requestHeaders")
22876
+ def request_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs']]]]:
22877
+ """
22878
+ Request header whose value will be excluded from inspection during preconfigured WAF evaluation.
22879
+ Structure is documented below.
22880
+ """
22881
+ return pulumi.get(self, "request_headers")
22882
+
22883
+ @request_headers.setter
22884
+ def request_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs']]]]):
22885
+ pulumi.set(self, "request_headers", value)
22886
+
22887
+ @property
22888
+ @pulumi.getter(name="requestQueryParams")
22889
+ def request_query_params(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs']]]]:
22890
+ """
22891
+ Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.
22892
+ Note that the parameter can be in the query string or in the POST body.
22893
+ Structure is documented below.
22894
+ """
22895
+ return pulumi.get(self, "request_query_params")
22896
+
22897
+ @request_query_params.setter
22898
+ def request_query_params(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs']]]]):
22899
+ pulumi.set(self, "request_query_params", value)
22900
+
22901
+ @property
22902
+ @pulumi.getter(name="requestUris")
22903
+ def request_uris(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs']]]]:
22904
+ """
22905
+ Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation.
22906
+ When specifying this field, the query or fragment part should be excluded.
22907
+ Structure is documented below.
22908
+ """
22909
+ return pulumi.get(self, "request_uris")
22910
+
22911
+ @request_uris.setter
22912
+ def request_uris(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs']]]]):
22913
+ pulumi.set(self, "request_uris", value)
22914
+
22915
+ @property
22916
+ @pulumi.getter(name="targetRuleIds")
22917
+ def target_rule_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
22918
+ """
22919
+ A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion.
22920
+ If omitted, it refers to all the rule IDs under the WAF rule set.
22921
+ """
22922
+ return pulumi.get(self, "target_rule_ids")
22923
+
22924
+ @target_rule_ids.setter
22925
+ def target_rule_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
22926
+ pulumi.set(self, "target_rule_ids", value)
22927
+
22928
+
22929
+ @pulumi.input_type
22930
+ class RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs:
22931
+ def __init__(__self__, *,
22932
+ operator: pulumi.Input[str],
22933
+ value: Optional[pulumi.Input[str]] = None):
22934
+ """
22935
+ :param pulumi.Input[str] operator: You can specify an exact match or a partial match by using a field operator and a field value.
22936
+ Available options:
22937
+ EQUALS: The operator matches if the field value equals the specified value.
22938
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
22939
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
22940
+ CONTAINS: The operator matches if the field value contains the specified value.
22941
+ EQUALS_ANY: The operator matches if the field value is any value.
22942
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
22943
+ :param pulumi.Input[str] value: A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
22944
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
22945
+ """
22946
+ pulumi.set(__self__, "operator", operator)
22947
+ if value is not None:
22948
+ pulumi.set(__self__, "value", value)
22949
+
22950
+ @property
22951
+ @pulumi.getter
22952
+ def operator(self) -> pulumi.Input[str]:
22953
+ """
22954
+ You can specify an exact match or a partial match by using a field operator and a field value.
22955
+ Available options:
22956
+ EQUALS: The operator matches if the field value equals the specified value.
22957
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
22958
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
22959
+ CONTAINS: The operator matches if the field value contains the specified value.
22960
+ EQUALS_ANY: The operator matches if the field value is any value.
22961
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
22962
+ """
22963
+ return pulumi.get(self, "operator")
22964
+
22965
+ @operator.setter
22966
+ def operator(self, value: pulumi.Input[str]):
22967
+ pulumi.set(self, "operator", value)
22968
+
22969
+ @property
22970
+ @pulumi.getter
22971
+ def value(self) -> Optional[pulumi.Input[str]]:
22972
+ """
22973
+ A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
22974
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
22975
+ """
22976
+ return pulumi.get(self, "value")
22977
+
22978
+ @value.setter
22979
+ def value(self, value: Optional[pulumi.Input[str]]):
22980
+ pulumi.set(self, "value", value)
22981
+
22982
+
22983
+ @pulumi.input_type
22984
+ class RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs:
22985
+ def __init__(__self__, *,
22986
+ operator: pulumi.Input[str],
22987
+ value: Optional[pulumi.Input[str]] = None):
22988
+ """
22989
+ :param pulumi.Input[str] operator: You can specify an exact match or a partial match by using a field operator and a field value.
22990
+ Available options:
22991
+ EQUALS: The operator matches if the field value equals the specified value.
22992
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
22993
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
22994
+ CONTAINS: The operator matches if the field value contains the specified value.
22995
+ EQUALS_ANY: The operator matches if the field value is any value.
22996
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
22997
+ :param pulumi.Input[str] value: A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
22998
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
22999
+ """
23000
+ pulumi.set(__self__, "operator", operator)
23001
+ if value is not None:
23002
+ pulumi.set(__self__, "value", value)
23003
+
23004
+ @property
23005
+ @pulumi.getter
23006
+ def operator(self) -> pulumi.Input[str]:
23007
+ """
23008
+ You can specify an exact match or a partial match by using a field operator and a field value.
23009
+ Available options:
23010
+ EQUALS: The operator matches if the field value equals the specified value.
23011
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
23012
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
23013
+ CONTAINS: The operator matches if the field value contains the specified value.
23014
+ EQUALS_ANY: The operator matches if the field value is any value.
23015
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
23016
+ """
23017
+ return pulumi.get(self, "operator")
23018
+
23019
+ @operator.setter
23020
+ def operator(self, value: pulumi.Input[str]):
23021
+ pulumi.set(self, "operator", value)
23022
+
23023
+ @property
23024
+ @pulumi.getter
23025
+ def value(self) -> Optional[pulumi.Input[str]]:
23026
+ """
23027
+ A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
23028
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
23029
+ """
23030
+ return pulumi.get(self, "value")
23031
+
23032
+ @value.setter
23033
+ def value(self, value: Optional[pulumi.Input[str]]):
23034
+ pulumi.set(self, "value", value)
23035
+
23036
+
23037
+ @pulumi.input_type
23038
+ class RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs:
23039
+ def __init__(__self__, *,
23040
+ operator: pulumi.Input[str],
23041
+ value: Optional[pulumi.Input[str]] = None):
23042
+ """
23043
+ :param pulumi.Input[str] operator: You can specify an exact match or a partial match by using a field operator and a field value.
23044
+ Available options:
23045
+ EQUALS: The operator matches if the field value equals the specified value.
23046
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
23047
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
23048
+ CONTAINS: The operator matches if the field value contains the specified value.
23049
+ EQUALS_ANY: The operator matches if the field value is any value.
23050
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
23051
+ :param pulumi.Input[str] value: A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
23052
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
23053
+ """
23054
+ pulumi.set(__self__, "operator", operator)
23055
+ if value is not None:
23056
+ pulumi.set(__self__, "value", value)
23057
+
23058
+ @property
23059
+ @pulumi.getter
23060
+ def operator(self) -> pulumi.Input[str]:
23061
+ """
23062
+ You can specify an exact match or a partial match by using a field operator and a field value.
23063
+ Available options:
23064
+ EQUALS: The operator matches if the field value equals the specified value.
23065
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
23066
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
23067
+ CONTAINS: The operator matches if the field value contains the specified value.
23068
+ EQUALS_ANY: The operator matches if the field value is any value.
23069
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
23070
+ """
23071
+ return pulumi.get(self, "operator")
23072
+
23073
+ @operator.setter
23074
+ def operator(self, value: pulumi.Input[str]):
23075
+ pulumi.set(self, "operator", value)
23076
+
23077
+ @property
23078
+ @pulumi.getter
23079
+ def value(self) -> Optional[pulumi.Input[str]]:
23080
+ """
23081
+ A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
23082
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
23083
+ """
23084
+ return pulumi.get(self, "value")
23085
+
23086
+ @value.setter
23087
+ def value(self, value: Optional[pulumi.Input[str]]):
23088
+ pulumi.set(self, "value", value)
23089
+
23090
+
23091
+ @pulumi.input_type
23092
+ class RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs:
23093
+ def __init__(__self__, *,
23094
+ operator: pulumi.Input[str],
23095
+ value: Optional[pulumi.Input[str]] = None):
23096
+ """
23097
+ :param pulumi.Input[str] operator: You can specify an exact match or a partial match by using a field operator and a field value.
23098
+ Available options:
23099
+ EQUALS: The operator matches if the field value equals the specified value.
23100
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
23101
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
23102
+ CONTAINS: The operator matches if the field value contains the specified value.
23103
+ EQUALS_ANY: The operator matches if the field value is any value.
23104
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
23105
+ :param pulumi.Input[str] value: A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
23106
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
23107
+ """
23108
+ pulumi.set(__self__, "operator", operator)
23109
+ if value is not None:
23110
+ pulumi.set(__self__, "value", value)
23111
+
23112
+ @property
23113
+ @pulumi.getter
23114
+ def operator(self) -> pulumi.Input[str]:
23115
+ """
23116
+ You can specify an exact match or a partial match by using a field operator and a field value.
23117
+ Available options:
23118
+ EQUALS: The operator matches if the field value equals the specified value.
23119
+ STARTS_WITH: The operator matches if the field value starts with the specified value.
23120
+ ENDS_WITH: The operator matches if the field value ends with the specified value.
23121
+ CONTAINS: The operator matches if the field value contains the specified value.
23122
+ EQUALS_ANY: The operator matches if the field value is any value.
23123
+ Possible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.
23124
+ """
23125
+ return pulumi.get(self, "operator")
23126
+
23127
+ @operator.setter
23128
+ def operator(self, value: pulumi.Input[str]):
23129
+ pulumi.set(self, "operator", value)
23130
+
23131
+ @property
23132
+ @pulumi.getter
23133
+ def value(self) -> Optional[pulumi.Input[str]]:
23134
+ """
23135
+ A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.
23136
+ The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.
23137
+ """
23138
+ return pulumi.get(self, "value")
23139
+
23140
+ @value.setter
23141
+ def value(self, value: Optional[pulumi.Input[str]]):
23142
+ pulumi.set(self, "value", value)
23143
+
23144
+
23145
+ @pulumi.input_type
23146
+ class RegionSecurityPolicyRuleRateLimitOptionsArgs:
23147
+ def __init__(__self__, *,
23148
+ ban_duration_sec: Optional[pulumi.Input[int]] = None,
23149
+ ban_threshold: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs']] = None,
23150
+ conform_action: Optional[pulumi.Input[str]] = None,
23151
+ enforce_on_key: Optional[pulumi.Input[str]] = None,
23152
+ enforce_on_key_configs: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]] = None,
23153
+ enforce_on_key_name: Optional[pulumi.Input[str]] = None,
23154
+ exceed_action: Optional[pulumi.Input[str]] = None,
23155
+ rate_limit_threshold: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']] = None):
23156
+ """
23157
+ :param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban".
23158
+ 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.
23159
+ :param pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban".
23160
+ If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
23161
+ Structure is documented below.
23162
+ :param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold.
23163
+ Valid option is "allow" only.
23164
+ :param pulumi.Input[str] enforce_on_key: Determines the key to enforce the rateLimitThreshold on. Possible values are:
23165
+ * 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.
23166
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
23167
+ * 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.
23168
+ * 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.
23169
+ * 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.
23170
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
23171
+ * 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.
23172
+ * REGION_CODE: The country/region from which the request originates.
23173
+ * 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.
23174
+ * 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.
23175
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
23176
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]] 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.
23177
+ You can specify up to 3 enforceOnKeyConfigs.
23178
+ If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
23179
+ Structure is documented below.
23180
+ :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
23181
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
23182
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
23183
+ :param pulumi.Input[str] exceed_action: Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code.
23184
+ Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
23185
+ :param pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting.
23186
+ Structure is documented below.
23187
+ """
23188
+ if ban_duration_sec is not None:
23189
+ pulumi.set(__self__, "ban_duration_sec", ban_duration_sec)
23190
+ if ban_threshold is not None:
23191
+ pulumi.set(__self__, "ban_threshold", ban_threshold)
23192
+ if conform_action is not None:
23193
+ pulumi.set(__self__, "conform_action", conform_action)
23194
+ if enforce_on_key is not None:
23195
+ pulumi.set(__self__, "enforce_on_key", enforce_on_key)
23196
+ if enforce_on_key_configs is not None:
23197
+ pulumi.set(__self__, "enforce_on_key_configs", enforce_on_key_configs)
23198
+ if enforce_on_key_name is not None:
23199
+ pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
23200
+ if exceed_action is not None:
23201
+ pulumi.set(__self__, "exceed_action", exceed_action)
23202
+ if rate_limit_threshold is not None:
23203
+ pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
23204
+
23205
+ @property
23206
+ @pulumi.getter(name="banDurationSec")
23207
+ def ban_duration_sec(self) -> Optional[pulumi.Input[int]]:
23208
+ """
23209
+ Can only be specified if the action for the rule is "rate_based_ban".
23210
+ 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.
23211
+ """
23212
+ return pulumi.get(self, "ban_duration_sec")
23213
+
23214
+ @ban_duration_sec.setter
23215
+ def ban_duration_sec(self, value: Optional[pulumi.Input[int]]):
23216
+ pulumi.set(self, "ban_duration_sec", value)
23217
+
23218
+ @property
23219
+ @pulumi.getter(name="banThreshold")
23220
+ def ban_threshold(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]:
23221
+ """
23222
+ Can only be specified if the action for the rule is "rate_based_ban".
23223
+ If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
23224
+ Structure is documented below.
23225
+ """
23226
+ return pulumi.get(self, "ban_threshold")
23227
+
23228
+ @ban_threshold.setter
23229
+ def ban_threshold(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs']]):
23230
+ pulumi.set(self, "ban_threshold", value)
23231
+
23232
+ @property
23233
+ @pulumi.getter(name="conformAction")
23234
+ def conform_action(self) -> Optional[pulumi.Input[str]]:
23235
+ """
23236
+ Action to take for requests that are under the configured rate limit threshold.
23237
+ Valid option is "allow" only.
23238
+ """
23239
+ return pulumi.get(self, "conform_action")
23240
+
23241
+ @conform_action.setter
23242
+ def conform_action(self, value: Optional[pulumi.Input[str]]):
23243
+ pulumi.set(self, "conform_action", value)
23244
+
23245
+ @property
23246
+ @pulumi.getter(name="enforceOnKey")
23247
+ def enforce_on_key(self) -> Optional[pulumi.Input[str]]:
23248
+ """
23249
+ Determines the key to enforce the rateLimitThreshold on. Possible values are:
23250
+ * 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.
23251
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
23252
+ * 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.
23253
+ * 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.
23254
+ * 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.
23255
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
23256
+ * 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.
23257
+ * REGION_CODE: The country/region from which the request originates.
23258
+ * 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.
23259
+ * 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.
23260
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
23261
+ """
23262
+ return pulumi.get(self, "enforce_on_key")
23263
+
23264
+ @enforce_on_key.setter
23265
+ def enforce_on_key(self, value: Optional[pulumi.Input[str]]):
23266
+ pulumi.set(self, "enforce_on_key", value)
23267
+
23268
+ @property
23269
+ @pulumi.getter(name="enforceOnKeyConfigs")
23270
+ def enforce_on_key_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]]:
23271
+ """
23272
+ If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
23273
+ You can specify up to 3 enforceOnKeyConfigs.
23274
+ If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
23275
+ Structure is documented below.
23276
+ """
23277
+ return pulumi.get(self, "enforce_on_key_configs")
23278
+
23279
+ @enforce_on_key_configs.setter
23280
+ def enforce_on_key_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]]]):
23281
+ pulumi.set(self, "enforce_on_key_configs", value)
23282
+
23283
+ @property
23284
+ @pulumi.getter(name="enforceOnKeyName")
23285
+ def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
23286
+ """
23287
+ Rate limit key name applicable only for the following key types:
23288
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
23289
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
23290
+ """
23291
+ return pulumi.get(self, "enforce_on_key_name")
23292
+
23293
+ @enforce_on_key_name.setter
23294
+ def enforce_on_key_name(self, value: Optional[pulumi.Input[str]]):
23295
+ pulumi.set(self, "enforce_on_key_name", value)
23296
+
23297
+ @property
23298
+ @pulumi.getter(name="exceedAction")
23299
+ def exceed_action(self) -> Optional[pulumi.Input[str]]:
23300
+ """
23301
+ Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code.
23302
+ Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
23303
+ """
23304
+ return pulumi.get(self, "exceed_action")
23305
+
23306
+ @exceed_action.setter
23307
+ def exceed_action(self, value: Optional[pulumi.Input[str]]):
23308
+ pulumi.set(self, "exceed_action", value)
23309
+
23310
+ @property
23311
+ @pulumi.getter(name="rateLimitThreshold")
23312
+ def rate_limit_threshold(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]:
23313
+ """
23314
+ Threshold at which to begin ratelimiting.
23315
+ Structure is documented below.
23316
+ """
23317
+ return pulumi.get(self, "rate_limit_threshold")
23318
+
23319
+ @rate_limit_threshold.setter
23320
+ def rate_limit_threshold(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs']]):
23321
+ pulumi.set(self, "rate_limit_threshold", value)
23322
+
23323
+
23324
+ @pulumi.input_type
23325
+ class RegionSecurityPolicyRuleRateLimitOptionsBanThresholdArgs:
23326
+ def __init__(__self__, *,
23327
+ count: Optional[pulumi.Input[int]] = None,
23328
+ interval_sec: Optional[pulumi.Input[int]] = None):
23329
+ """
23330
+ :param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
23331
+ :param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
23332
+ """
23333
+ if count is not None:
23334
+ pulumi.set(__self__, "count", count)
23335
+ if interval_sec is not None:
23336
+ pulumi.set(__self__, "interval_sec", interval_sec)
23337
+
23338
+ @property
23339
+ @pulumi.getter
23340
+ def count(self) -> Optional[pulumi.Input[int]]:
23341
+ """
23342
+ Number of HTTP(S) requests for calculating the threshold.
23343
+ """
23344
+ return pulumi.get(self, "count")
23345
+
23346
+ @count.setter
23347
+ def count(self, value: Optional[pulumi.Input[int]]):
23348
+ pulumi.set(self, "count", value)
23349
+
23350
+ @property
23351
+ @pulumi.getter(name="intervalSec")
23352
+ def interval_sec(self) -> Optional[pulumi.Input[int]]:
23353
+ """
23354
+ Interval over which the threshold is computed.
23355
+ """
23356
+ return pulumi.get(self, "interval_sec")
23357
+
23358
+ @interval_sec.setter
23359
+ def interval_sec(self, value: Optional[pulumi.Input[int]]):
23360
+ pulumi.set(self, "interval_sec", value)
23361
+
23362
+
23363
+ @pulumi.input_type
23364
+ class RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
23365
+ def __init__(__self__, *,
23366
+ enforce_on_key_name: Optional[pulumi.Input[str]] = None,
23367
+ enforce_on_key_type: Optional[pulumi.Input[str]] = None):
23368
+ """
23369
+ :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
23370
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
23371
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
23372
+ :param pulumi.Input[str] enforce_on_key_type: Determines the key to enforce the rateLimitThreshold on. Possible values are:
23373
+ * 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.
23374
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
23375
+ * 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.
23376
+ * 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.
23377
+ * 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.
23378
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
23379
+ * 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.
23380
+ * REGION_CODE: The country/region from which the request originates.
23381
+ * 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.
23382
+ * 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.
23383
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
23384
+ """
23385
+ if enforce_on_key_name is not None:
23386
+ pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
23387
+ if enforce_on_key_type is not None:
23388
+ pulumi.set(__self__, "enforce_on_key_type", enforce_on_key_type)
23389
+
23390
+ @property
23391
+ @pulumi.getter(name="enforceOnKeyName")
23392
+ def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
23393
+ """
23394
+ Rate limit key name applicable only for the following key types:
23395
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
23396
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
23397
+ """
23398
+ return pulumi.get(self, "enforce_on_key_name")
23399
+
23400
+ @enforce_on_key_name.setter
23401
+ def enforce_on_key_name(self, value: Optional[pulumi.Input[str]]):
23402
+ pulumi.set(self, "enforce_on_key_name", value)
23403
+
23404
+ @property
23405
+ @pulumi.getter(name="enforceOnKeyType")
23406
+ def enforce_on_key_type(self) -> Optional[pulumi.Input[str]]:
23407
+ """
23408
+ Determines the key to enforce the rateLimitThreshold on. Possible values are:
23409
+ * 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.
23410
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
23411
+ * 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.
23412
+ * 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.
23413
+ * 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.
23414
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
23415
+ * 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.
23416
+ * REGION_CODE: The country/region from which the request originates.
23417
+ * 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.
23418
+ * 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.
23419
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
23420
+ """
23421
+ return pulumi.get(self, "enforce_on_key_type")
23422
+
23423
+ @enforce_on_key_type.setter
23424
+ def enforce_on_key_type(self, value: Optional[pulumi.Input[str]]):
23425
+ pulumi.set(self, "enforce_on_key_type", value)
23426
+
23427
+
23428
+ @pulumi.input_type
23429
+ class RegionSecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs:
23430
+ def __init__(__self__, *,
23431
+ count: Optional[pulumi.Input[int]] = None,
23432
+ interval_sec: Optional[pulumi.Input[int]] = None):
23433
+ """
23434
+ :param pulumi.Input[int] count: Number of HTTP(S) requests for calculating the threshold.
23435
+ :param pulumi.Input[int] interval_sec: Interval over which the threshold is computed.
23436
+ """
23437
+ if count is not None:
23438
+ pulumi.set(__self__, "count", count)
23439
+ if interval_sec is not None:
23440
+ pulumi.set(__self__, "interval_sec", interval_sec)
23441
+
23442
+ @property
23443
+ @pulumi.getter
23444
+ def count(self) -> Optional[pulumi.Input[int]]:
23445
+ """
23446
+ Number of HTTP(S) requests for calculating the threshold.
23447
+ """
23448
+ return pulumi.get(self, "count")
23449
+
23450
+ @count.setter
23451
+ def count(self, value: Optional[pulumi.Input[int]]):
23452
+ pulumi.set(self, "count", value)
23453
+
23454
+ @property
23455
+ @pulumi.getter(name="intervalSec")
23456
+ def interval_sec(self) -> Optional[pulumi.Input[int]]:
23457
+ """
23458
+ Interval over which the threshold is computed.
23459
+ """
23460
+ return pulumi.get(self, "interval_sec")
23461
+
23462
+ @interval_sec.setter
23463
+ def interval_sec(self, value: Optional[pulumi.Input[int]]):
23464
+ pulumi.set(self, "interval_sec", value)
23465
+
23466
+
23467
+ @pulumi.input_type
23468
+ class RegionSecurityPolicyUserDefinedFieldArgs:
23469
+ def __init__(__self__, *,
23470
+ base: pulumi.Input[str],
23471
+ mask: Optional[pulumi.Input[str]] = None,
23472
+ name: Optional[pulumi.Input[str]] = None,
23473
+ offset: Optional[pulumi.Input[int]] = None,
23474
+ size: Optional[pulumi.Input[int]] = None):
23475
+ """
23476
+ :param pulumi.Input[str] base: The base relative to which 'offset' is measured. Possible values are:
23477
+ - IPV4: Points to the beginning of the IPv4 header.
23478
+ - IPV6: Points to the beginning of the IPv6 header.
23479
+ - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
23480
+ - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
23481
+ Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`.
23482
+ :param pulumi.Input[str] mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.
23483
+ Encoded as a hexadecimal number (starting with "0x").
23484
+ The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.
23485
+ :param pulumi.Input[str] name: The name of this field. Must be unique within the policy.
23486
+ :param pulumi.Input[int] offset: Offset of the first byte of the field (in network byte order) relative to 'base'.
23487
+ :param pulumi.Input[int] size: Size of the field in bytes. Valid values: 1-4.
23488
+ """
23489
+ pulumi.set(__self__, "base", base)
23490
+ if mask is not None:
23491
+ pulumi.set(__self__, "mask", mask)
23492
+ if name is not None:
23493
+ pulumi.set(__self__, "name", name)
23494
+ if offset is not None:
23495
+ pulumi.set(__self__, "offset", offset)
23496
+ if size is not None:
23497
+ pulumi.set(__self__, "size", size)
23498
+
23499
+ @property
23500
+ @pulumi.getter
23501
+ def base(self) -> pulumi.Input[str]:
23502
+ """
23503
+ The base relative to which 'offset' is measured. Possible values are:
23504
+ - IPV4: Points to the beginning of the IPv4 header.
23505
+ - IPV6: Points to the beginning of the IPv6 header.
23506
+ - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
23507
+ - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.
23508
+ Possible values are: `IPV4`, `IPV6`, `TCP`, `UDP`.
23509
+ """
23510
+ return pulumi.get(self, "base")
23511
+
23512
+ @base.setter
23513
+ def base(self, value: pulumi.Input[str]):
23514
+ pulumi.set(self, "base", value)
23515
+
23516
+ @property
23517
+ @pulumi.getter
23518
+ def mask(self) -> Optional[pulumi.Input[str]]:
23519
+ """
22212
23520
  If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.
22213
23521
  Encoded as a hexadecimal number (starting with "0x").
22214
23522
  The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.
@@ -28894,7 +30202,11 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
28894
30202
  :param pulumi.Input['SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs'] json_custom_config: Custom configuration to apply the JSON parsing. Only applicable when
28895
30203
  `json_parsing` is set to `STANDARD`. Structure is documented below.
28896
30204
  :param pulumi.Input[str] json_parsing: Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30205
+ * `DISABLED` - Don't parse JSON payloads in POST bodies.
30206
+ * `STANDARD` - Parse JSON payloads in POST bodies.
28897
30207
  :param pulumi.Input[str] log_level: Log level to use. Defaults to `NORMAL`.
30208
+ * `NORMAL` - Normal log level.
30209
+ * `VERBOSE` - Verbose log level.
28898
30210
  :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ip_request_headers: An optional list of case-insensitive request header names to use for resolving the callers client IP address.
28899
30211
  """
28900
30212
  if json_custom_config is not None:
@@ -28924,6 +30236,8 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
28924
30236
  def json_parsing(self) -> Optional[pulumi.Input[str]]:
28925
30237
  """
28926
30238
  Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30239
+ * `DISABLED` - Don't parse JSON payloads in POST bodies.
30240
+ * `STANDARD` - Parse JSON payloads in POST bodies.
28927
30241
  """
28928
30242
  return pulumi.get(self, "json_parsing")
28929
30243
 
@@ -28936,6 +30250,8 @@ class SecurityPolicyAdvancedOptionsConfigArgs:
28936
30250
  def log_level(self) -> Optional[pulumi.Input[str]]:
28937
30251
  """
28938
30252
  Log level to use. Defaults to `NORMAL`.
30253
+ * `NORMAL` - Normal log level.
30254
+ * `VERBOSE` - Verbose log level.
28939
30255
  """
28940
30256
  return pulumi.get(self, "log_level")
28941
30257
 
@@ -29702,10 +31018,22 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
29702
31018
  If specified, the key will be banned for the configured `ban_duration_sec` when the number of requests that exceed the `rate_limit_threshold` also
29703
31019
  exceed this `ban_threshold`. Structure is documented below.
29704
31020
  :param pulumi.Input[str] enforce_on_key: Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31021
+
31022
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31023
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31024
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31025
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31026
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31027
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31028
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31029
+ * `REGION_CODE`: The country/region from which the request originates.
29705
31030
  :param pulumi.Input[Sequence[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs']]] enforce_on_key_configs: If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which rate limit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If `enforce_on_key_configs` is specified, `enforce_on_key` must be set to an empty string. Structure is documented below.
29706
31031
 
29707
31032
  **Note:** To avoid the conflict between `enforce_on_key` and `enforce_on_key_configs`, the field `enforce_on_key` needs to be set to an empty string.
29708
31033
  :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
31034
+
31035
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31036
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
29709
31037
  :param pulumi.Input['SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
29710
31038
  """
29711
31039
  pulumi.set(__self__, "conform_action", conform_action)
@@ -29793,6 +31121,15 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
29793
31121
  def enforce_on_key(self) -> Optional[pulumi.Input[str]]:
29794
31122
  """
29795
31123
  Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31124
+
31125
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31126
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31127
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31128
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31129
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31130
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31131
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31132
+ * `REGION_CODE`: The country/region from which the request originates.
29796
31133
  """
29797
31134
  return pulumi.get(self, "enforce_on_key")
29798
31135
 
@@ -29819,6 +31156,9 @@ class SecurityPolicyRuleRateLimitOptionsArgs:
29819
31156
  def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
29820
31157
  """
29821
31158
  Rate limit key name applicable only for the following key types:
31159
+
31160
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31161
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
29822
31162
  """
29823
31163
  return pulumi.get(self, "enforce_on_key_name")
29824
31164
 
@@ -29883,7 +31223,19 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
29883
31223
  enforce_on_key_type: Optional[pulumi.Input[str]] = None):
29884
31224
  """
29885
31225
  :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types:
31226
+
31227
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31228
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
29886
31229
  :param pulumi.Input[str] enforce_on_key_type: Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31230
+
31231
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31232
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31233
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31234
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31235
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31236
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31237
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31238
+ * `REGION_CODE`: The country/region from which the request originates.
29887
31239
  """
29888
31240
  if enforce_on_key_name is not None:
29889
31241
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
@@ -29895,6 +31247,9 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
29895
31247
  def enforce_on_key_name(self) -> Optional[pulumi.Input[str]]:
29896
31248
  """
29897
31249
  Rate limit key name applicable only for the following key types:
31250
+
31251
+ * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31252
+ * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
29898
31253
  """
29899
31254
  return pulumi.get(self, "enforce_on_key_name")
29900
31255
 
@@ -29907,6 +31262,15 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs:
29907
31262
  def enforce_on_key_type(self) -> Optional[pulumi.Input[str]]:
29908
31263
  """
29909
31264
  Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31265
+
31266
+ * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31267
+ * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31268
+ * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31269
+ * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31270
+ * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31271
+ * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31272
+ * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31273
+ * `REGION_CODE`: The country/region from which the request originates.
29910
31274
  """
29911
31275
  return pulumi.get(self, "enforce_on_key_type")
29912
31276
 
@@ -29997,6 +31361,9 @@ class SecurityPolicyRuleRedirectOptionsArgs:
29997
31361
  target: Optional[pulumi.Input[str]] = None):
29998
31362
  """
29999
31363
  :param pulumi.Input[str] type: Type of redirect action.
31364
+
31365
+ * `EXTERNAL_302`: Redirect to an external address, configured in `target`.
31366
+ * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA.
30000
31367
  :param pulumi.Input[str] target: External redirection target when `EXTERNAL_302` is set in `type`.
30001
31368
  """
30002
31369
  pulumi.set(__self__, "type", type)
@@ -30008,6 +31375,9 @@ class SecurityPolicyRuleRedirectOptionsArgs:
30008
31375
  def type(self) -> pulumi.Input[str]:
30009
31376
  """
30010
31377
  Type of redirect action.
31378
+
31379
+ * `EXTERNAL_302`: Redirect to an external address, configured in `target`.
31380
+ * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA.
30011
31381
  """
30012
31382
  return pulumi.get(self, "type")
30013
31383