pulumi-gcp 8.40.0a1754721948__py3-none-any.whl → 8.41.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 (469) hide show
  1. pulumi_gcp/__init__.py +152 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +2 -0
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +2 -0
  5. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +2 -0
  6. pulumi_gcp/accesscontextmanager/outputs.py +15 -3
  7. pulumi_gcp/apigateway/api_config_iam_binding.py +2 -0
  8. pulumi_gcp/apigateway/api_config_iam_member.py +2 -0
  9. pulumi_gcp/apigateway/api_config_iam_policy.py +2 -0
  10. pulumi_gcp/apigateway/api_iam_binding.py +2 -0
  11. pulumi_gcp/apigateway/api_iam_member.py +2 -0
  12. pulumi_gcp/apigateway/api_iam_policy.py +2 -0
  13. pulumi_gcp/apigateway/gateway_iam_binding.py +2 -0
  14. pulumi_gcp/apigateway/gateway_iam_member.py +2 -0
  15. pulumi_gcp/apigateway/gateway_iam_policy.py +2 -0
  16. pulumi_gcp/apigee/__init__.py +2 -0
  17. pulumi_gcp/apigee/_inputs.py +1435 -0
  18. pulumi_gcp/apigee/api_product.py +1698 -0
  19. pulumi_gcp/apigee/environment_iam_binding.py +2 -0
  20. pulumi_gcp/apigee/environment_iam_member.py +2 -0
  21. pulumi_gcp/apigee/environment_iam_policy.py +2 -0
  22. pulumi_gcp/apigee/outputs.py +1081 -0
  23. pulumi_gcp/apigee/security_action.py +1010 -0
  24. pulumi_gcp/artifactregistry/__init__.py +6 -0
  25. pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
  26. pulumi_gcp/artifactregistry/get_package.py +220 -0
  27. pulumi_gcp/artifactregistry/get_repositories.py +160 -0
  28. pulumi_gcp/artifactregistry/get_tag.py +187 -0
  29. pulumi_gcp/artifactregistry/get_tags.py +200 -0
  30. pulumi_gcp/artifactregistry/get_version.py +261 -0
  31. pulumi_gcp/artifactregistry/outputs.py +239 -2
  32. pulumi_gcp/artifactregistry/repository.py +6 -6
  33. pulumi_gcp/artifactregistry/repository_iam_binding.py +2 -0
  34. pulumi_gcp/artifactregistry/repository_iam_member.py +2 -0
  35. pulumi_gcp/artifactregistry/repository_iam_policy.py +2 -0
  36. pulumi_gcp/backupdisasterrecovery/backup_plan.py +114 -7
  37. pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
  38. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  39. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
  40. pulumi_gcp/beyondcorp/application_iam_binding.py +8 -0
  41. pulumi_gcp/beyondcorp/application_iam_member.py +8 -0
  42. pulumi_gcp/beyondcorp/application_iam_policy.py +8 -0
  43. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  44. pulumi_gcp/beyondcorp/security_gateway_application_iam_binding.py +2 -0
  45. pulumi_gcp/beyondcorp/security_gateway_application_iam_member.py +2 -0
  46. pulumi_gcp/beyondcorp/security_gateway_application_iam_policy.py +2 -0
  47. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +2 -0
  48. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +2 -0
  49. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +2 -0
  50. pulumi_gcp/bigquery/_inputs.py +6 -0
  51. pulumi_gcp/bigquery/connection_iam_binding.py +2 -0
  52. pulumi_gcp/bigquery/connection_iam_member.py +2 -0
  53. pulumi_gcp/bigquery/connection_iam_policy.py +2 -0
  54. pulumi_gcp/bigquery/data_transfer_config.py +2 -0
  55. pulumi_gcp/bigquery/dataset.py +2 -2
  56. pulumi_gcp/bigquery/get_table.py +23 -1
  57. pulumi_gcp/bigquery/iam_binding.py +2 -0
  58. pulumi_gcp/bigquery/iam_member.py +2 -0
  59. pulumi_gcp/bigquery/iam_policy.py +2 -0
  60. pulumi_gcp/bigquery/outputs.py +4 -0
  61. pulumi_gcp/bigquery/reservation.py +535 -0
  62. pulumi_gcp/bigquery/table.py +62 -0
  63. pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
  64. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
  65. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +2 -0
  66. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +2 -0
  67. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +2 -0
  68. pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
  69. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +2 -0
  70. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +2 -0
  71. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +2 -0
  72. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
  73. pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
  74. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +2 -0
  75. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +2 -0
  76. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +2 -0
  77. pulumi_gcp/bigtable/__init__.py +1 -0
  78. pulumi_gcp/bigtable/_inputs.py +33 -0
  79. pulumi_gcp/bigtable/outputs.py +36 -0
  80. pulumi_gcp/bigtable/schema_bundle.py +568 -0
  81. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +2 -0
  82. pulumi_gcp/binaryauthorization/attestor_iam_member.py +2 -0
  83. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +2 -0
  84. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +2 -0
  85. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +2 -0
  86. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +2 -0
  87. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +2 -0
  88. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +2 -0
  89. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +2 -0
  90. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +2 -0
  91. pulumi_gcp/cloudbuildv2/connection_iam_member.py +2 -0
  92. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +2 -0
  93. pulumi_gcp/clouddeploy/_inputs.py +48 -48
  94. pulumi_gcp/clouddeploy/deploy_policy.py +54 -74
  95. pulumi_gcp/clouddeploy/outputs.py +32 -32
  96. pulumi_gcp/cloudfunctions/_inputs.py +48 -0
  97. pulumi_gcp/cloudfunctions/function.py +94 -0
  98. pulumi_gcp/cloudfunctions/function_iam_binding.py +2 -0
  99. pulumi_gcp/cloudfunctions/function_iam_member.py +2 -0
  100. pulumi_gcp/cloudfunctions/function_iam_policy.py +2 -0
  101. pulumi_gcp/cloudfunctions/get_function.py +23 -1
  102. pulumi_gcp/cloudfunctions/outputs.py +70 -0
  103. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +2 -0
  104. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +2 -0
  105. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +2 -0
  106. pulumi_gcp/cloudrun/iam_binding.py +2 -0
  107. pulumi_gcp/cloudrun/iam_member.py +2 -0
  108. pulumi_gcp/cloudrun/iam_policy.py +2 -0
  109. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  110. pulumi_gcp/cloudrunv2/job.py +2 -0
  111. pulumi_gcp/cloudrunv2/job_iam_binding.py +2 -0
  112. pulumi_gcp/cloudrunv2/job_iam_member.py +2 -0
  113. pulumi_gcp/cloudrunv2/job_iam_policy.py +2 -0
  114. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  115. pulumi_gcp/cloudrunv2/service_iam_binding.py +2 -0
  116. pulumi_gcp/cloudrunv2/service_iam_member.py +2 -0
  117. pulumi_gcp/cloudrunv2/service_iam_policy.py +2 -0
  118. pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
  119. pulumi_gcp/cloudrunv2/worker_pool_iam_binding.py +2 -0
  120. pulumi_gcp/cloudrunv2/worker_pool_iam_member.py +2 -0
  121. pulumi_gcp/cloudrunv2/worker_pool_iam_policy.py +2 -0
  122. pulumi_gcp/cloudtasks/queue_iam_binding.py +2 -0
  123. pulumi_gcp/cloudtasks/queue_iam_member.py +2 -0
  124. pulumi_gcp/cloudtasks/queue_iam_policy.py +2 -0
  125. pulumi_gcp/colab/runtime_template_iam_binding.py +2 -0
  126. pulumi_gcp/colab/runtime_template_iam_member.py +2 -0
  127. pulumi_gcp/colab/runtime_template_iam_policy.py +2 -0
  128. pulumi_gcp/composer/user_workloads_config_map.py +26 -2
  129. pulumi_gcp/compute/__init__.py +1 -0
  130. pulumi_gcp/compute/_inputs.py +1068 -22
  131. pulumi_gcp/compute/disk_iam_binding.py +2 -0
  132. pulumi_gcp/compute/disk_iam_member.py +2 -0
  133. pulumi_gcp/compute/disk_iam_policy.py +2 -0
  134. pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
  135. pulumi_gcp/compute/forwarding_rule.py +0 -21
  136. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  137. pulumi_gcp/compute/get_router.py +12 -1
  138. pulumi_gcp/compute/image_iam_binding.py +2 -0
  139. pulumi_gcp/compute/image_iam_member.py +2 -0
  140. pulumi_gcp/compute/image_iam_policy.py +2 -0
  141. pulumi_gcp/compute/instance_iam_binding.py +2 -0
  142. pulumi_gcp/compute/instance_iam_member.py +2 -0
  143. pulumi_gcp/compute/instance_iam_policy.py +2 -0
  144. pulumi_gcp/compute/instance_template_iam_binding.py +2 -0
  145. pulumi_gcp/compute/instance_template_iam_member.py +2 -0
  146. pulumi_gcp/compute/instance_template_iam_policy.py +2 -0
  147. pulumi_gcp/compute/instant_snapshot_iam_binding.py +2 -0
  148. pulumi_gcp/compute/instant_snapshot_iam_member.py +2 -0
  149. pulumi_gcp/compute/instant_snapshot_iam_policy.py +2 -0
  150. pulumi_gcp/compute/machine_image_iam_binding.py +2 -0
  151. pulumi_gcp/compute/machine_image_iam_member.py +2 -0
  152. pulumi_gcp/compute/machine_image_iam_policy.py +2 -0
  153. pulumi_gcp/compute/outputs.py +966 -22
  154. pulumi_gcp/compute/preview_feature.py +396 -0
  155. pulumi_gcp/compute/region_backend_service.py +257 -0
  156. pulumi_gcp/compute/region_disk_iam_binding.py +2 -0
  157. pulumi_gcp/compute/region_disk_iam_member.py +2 -0
  158. pulumi_gcp/compute/region_disk_iam_policy.py +2 -0
  159. pulumi_gcp/compute/region_security_policy.py +54 -0
  160. pulumi_gcp/compute/region_url_map.py +392 -0
  161. pulumi_gcp/compute/reservation.py +4 -4
  162. pulumi_gcp/compute/router.py +54 -0
  163. pulumi_gcp/compute/service_attachment.py +126 -0
  164. pulumi_gcp/compute/snapshot_iam_binding.py +2 -0
  165. pulumi_gcp/compute/snapshot_iam_member.py +2 -0
  166. pulumi_gcp/compute/snapshot_iam_policy.py +2 -0
  167. pulumi_gcp/compute/storage_pool.py +154 -0
  168. pulumi_gcp/compute/storage_pool_iam_binding.py +2 -0
  169. pulumi_gcp/compute/storage_pool_iam_member.py +2 -0
  170. pulumi_gcp/compute/storage_pool_iam_policy.py +2 -0
  171. pulumi_gcp/compute/subnetwork.py +54 -0
  172. pulumi_gcp/compute/subnetwork_iam_binding.py +2 -0
  173. pulumi_gcp/compute/subnetwork_iam_member.py +2 -0
  174. pulumi_gcp/compute/subnetwork_iam_policy.py +2 -0
  175. pulumi_gcp/config/__init__.pyi +2 -4
  176. pulumi_gcp/config/vars.py +4 -8
  177. pulumi_gcp/container/_inputs.py +2622 -246
  178. pulumi_gcp/container/cluster.py +61 -21
  179. pulumi_gcp/container/get_cluster.py +12 -1
  180. pulumi_gcp/container/outputs.py +2877 -133
  181. pulumi_gcp/containeranalysis/note_iam_binding.py +2 -0
  182. pulumi_gcp/containeranalysis/note_iam_member.py +2 -0
  183. pulumi_gcp/containeranalysis/note_iam_policy.py +2 -0
  184. pulumi_gcp/datacatalog/entry_group_iam_binding.py +2 -0
  185. pulumi_gcp/datacatalog/entry_group_iam_member.py +2 -0
  186. pulumi_gcp/datacatalog/entry_group_iam_policy.py +2 -0
  187. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +2 -0
  188. pulumi_gcp/datacatalog/policy_tag_iam_member.py +2 -0
  189. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +2 -0
  190. pulumi_gcp/datacatalog/tag_template_iam_binding.py +2 -0
  191. pulumi_gcp/datacatalog/tag_template_iam_member.py +2 -0
  192. pulumi_gcp/datacatalog/tag_template_iam_policy.py +2 -0
  193. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +2 -0
  194. pulumi_gcp/datacatalog/taxonomy_iam_member.py +2 -0
  195. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +2 -0
  196. pulumi_gcp/datafusion/instance.py +18 -4
  197. pulumi_gcp/dataplex/aspect_type_iam_binding.py +2 -0
  198. pulumi_gcp/dataplex/aspect_type_iam_member.py +2 -0
  199. pulumi_gcp/dataplex/aspect_type_iam_policy.py +2 -0
  200. pulumi_gcp/dataplex/asset_iam_binding.py +2 -0
  201. pulumi_gcp/dataplex/asset_iam_member.py +2 -0
  202. pulumi_gcp/dataplex/asset_iam_policy.py +2 -0
  203. pulumi_gcp/dataplex/datascan_iam_binding.py +2 -0
  204. pulumi_gcp/dataplex/datascan_iam_member.py +2 -0
  205. pulumi_gcp/dataplex/datascan_iam_policy.py +2 -0
  206. pulumi_gcp/dataplex/entry_group_iam_binding.py +2 -0
  207. pulumi_gcp/dataplex/entry_group_iam_member.py +2 -0
  208. pulumi_gcp/dataplex/entry_group_iam_policy.py +2 -0
  209. pulumi_gcp/dataplex/entry_type_iam_binding.py +2 -0
  210. pulumi_gcp/dataplex/entry_type_iam_member.py +2 -0
  211. pulumi_gcp/dataplex/entry_type_iam_policy.py +2 -0
  212. pulumi_gcp/dataplex/glossary_iam_binding.py +2 -0
  213. pulumi_gcp/dataplex/glossary_iam_member.py +2 -0
  214. pulumi_gcp/dataplex/glossary_iam_policy.py +2 -0
  215. pulumi_gcp/dataplex/lake_iam_binding.py +2 -0
  216. pulumi_gcp/dataplex/lake_iam_member.py +2 -0
  217. pulumi_gcp/dataplex/lake_iam_policy.py +2 -0
  218. pulumi_gcp/dataplex/task_iam_binding.py +2 -0
  219. pulumi_gcp/dataplex/task_iam_member.py +2 -0
  220. pulumi_gcp/dataplex/task_iam_policy.py +2 -0
  221. pulumi_gcp/dataplex/zone_iam_binding.py +2 -0
  222. pulumi_gcp/dataplex/zone_iam_member.py +2 -0
  223. pulumi_gcp/dataplex/zone_iam_policy.py +2 -0
  224. pulumi_gcp/dataproc/_inputs.py +249 -14
  225. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +2 -0
  226. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +2 -0
  227. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +2 -0
  228. pulumi_gcp/dataproc/batch.py +6 -0
  229. pulumi_gcp/dataproc/cluster.py +2 -0
  230. pulumi_gcp/dataproc/metastore_database_iam_binding.py +2 -0
  231. pulumi_gcp/dataproc/metastore_database_iam_member.py +2 -0
  232. pulumi_gcp/dataproc/metastore_database_iam_policy.py +2 -0
  233. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +2 -0
  234. pulumi_gcp/dataproc/metastore_federation_iam_member.py +2 -0
  235. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +2 -0
  236. pulumi_gcp/dataproc/metastore_service_iam_binding.py +2 -0
  237. pulumi_gcp/dataproc/metastore_service_iam_member.py +2 -0
  238. pulumi_gcp/dataproc/metastore_service_iam_policy.py +2 -0
  239. pulumi_gcp/dataproc/metastore_table_iam_binding.py +2 -0
  240. pulumi_gcp/dataproc/metastore_table_iam_member.py +2 -0
  241. pulumi_gcp/dataproc/metastore_table_iam_policy.py +2 -0
  242. pulumi_gcp/dataproc/outputs.py +215 -12
  243. pulumi_gcp/dataproc/session_template.py +14 -2
  244. pulumi_gcp/developerconnect/__init__.py +1 -0
  245. pulumi_gcp/developerconnect/_inputs.py +583 -0
  246. pulumi_gcp/developerconnect/insights_config.py +895 -0
  247. pulumi_gcp/developerconnect/outputs.py +442 -0
  248. pulumi_gcp/diagflow/__init__.py +3 -0
  249. pulumi_gcp/diagflow/_inputs.py +11899 -7963
  250. pulumi_gcp/diagflow/conversation_profile.py +959 -0
  251. pulumi_gcp/diagflow/cx_generator.py +636 -0
  252. pulumi_gcp/diagflow/cx_playbook.py +967 -0
  253. pulumi_gcp/diagflow/cx_tool.py +2 -2
  254. pulumi_gcp/diagflow/cx_webhook.py +380 -36
  255. pulumi_gcp/diagflow/outputs.py +9099 -5946
  256. pulumi_gcp/discoveryengine/__init__.py +2 -0
  257. pulumi_gcp/discoveryengine/_inputs.py +465 -0
  258. pulumi_gcp/discoveryengine/cmek_config.py +707 -0
  259. pulumi_gcp/discoveryengine/outputs.py +412 -0
  260. pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
  261. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +2 -0
  262. pulumi_gcp/dns/dns_managed_zone_iam_member.py +2 -0
  263. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +2 -0
  264. pulumi_gcp/endpoints/service_iam_binding.py +2 -0
  265. pulumi_gcp/endpoints/service_iam_member.py +2 -0
  266. pulumi_gcp/endpoints/service_iam_policy.py +2 -0
  267. pulumi_gcp/firestore/field.py +6 -6
  268. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
  269. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
  270. pulumi_gcp/gemini/repository_group_iam_binding.py +2 -0
  271. pulumi_gcp/gemini/repository_group_iam_member.py +2 -0
  272. pulumi_gcp/gemini/repository_group_iam_policy.py +2 -0
  273. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +2 -0
  274. pulumi_gcp/gkebackup/backup_plan_iam_member.py +2 -0
  275. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +2 -0
  276. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -0
  277. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -0
  278. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -0
  279. pulumi_gcp/gkehub/feature_iam_binding.py +2 -0
  280. pulumi_gcp/gkehub/feature_iam_member.py +2 -0
  281. pulumi_gcp/gkehub/feature_iam_policy.py +2 -0
  282. pulumi_gcp/gkehub/membership_binding.py +6 -6
  283. pulumi_gcp/gkehub/membership_iam_binding.py +2 -0
  284. pulumi_gcp/gkehub/membership_iam_member.py +2 -0
  285. pulumi_gcp/gkehub/membership_iam_policy.py +2 -0
  286. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  287. pulumi_gcp/gkehub/namespace.py +4 -4
  288. pulumi_gcp/gkehub/scope_iam_binding.py +2 -0
  289. pulumi_gcp/gkehub/scope_iam_member.py +2 -0
  290. pulumi_gcp/gkehub/scope_iam_policy.py +2 -0
  291. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  292. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +24 -3
  293. pulumi_gcp/healthcare/consent_store_iam_binding.py +2 -0
  294. pulumi_gcp/healthcare/consent_store_iam_member.py +2 -0
  295. pulumi_gcp/healthcare/consent_store_iam_policy.py +2 -0
  296. pulumi_gcp/iam/__init__.py +4 -0
  297. pulumi_gcp/iam/_inputs.py +98 -0
  298. pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
  299. pulumi_gcp/iam/outputs.py +56 -0
  300. pulumi_gcp/iam/workforce_pool_iam_binding.py +763 -0
  301. pulumi_gcp/iam/workforce_pool_iam_member.py +763 -0
  302. pulumi_gcp/iam/workforce_pool_iam_policy.py +602 -0
  303. pulumi_gcp/iap/app_engine_service_iam_binding.py +2 -0
  304. pulumi_gcp/iap/app_engine_service_iam_member.py +2 -0
  305. pulumi_gcp/iap/app_engine_service_iam_policy.py +2 -0
  306. pulumi_gcp/iap/app_engine_version_iam_binding.py +2 -0
  307. pulumi_gcp/iap/app_engine_version_iam_member.py +2 -0
  308. pulumi_gcp/iap/app_engine_version_iam_policy.py +2 -0
  309. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  310. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +2 -0
  311. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +2 -0
  312. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +2 -0
  313. pulumi_gcp/iap/tunnel_iam_binding.py +2 -0
  314. pulumi_gcp/iap/tunnel_iam_member.py +2 -0
  315. pulumi_gcp/iap/tunnel_iam_policy.py +2 -0
  316. pulumi_gcp/iap/tunnel_instance_iam_binding.py +2 -0
  317. pulumi_gcp/iap/tunnel_instance_iam_member.py +2 -0
  318. pulumi_gcp/iap/tunnel_instance_iam_policy.py +2 -0
  319. pulumi_gcp/iap/web_backend_service_iam_binding.py +2 -0
  320. pulumi_gcp/iap/web_backend_service_iam_member.py +2 -0
  321. pulumi_gcp/iap/web_backend_service_iam_policy.py +2 -0
  322. pulumi_gcp/iap/web_cloud_run_service_iam_binding.py +2 -0
  323. pulumi_gcp/iap/web_cloud_run_service_iam_member.py +2 -0
  324. pulumi_gcp/iap/web_cloud_run_service_iam_policy.py +2 -0
  325. pulumi_gcp/iap/web_iam_binding.py +2 -0
  326. pulumi_gcp/iap/web_iam_member.py +2 -0
  327. pulumi_gcp/iap/web_iam_policy.py +2 -0
  328. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +2 -0
  329. pulumi_gcp/iap/web_region_backend_service_iam_member.py +2 -0
  330. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +2 -0
  331. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +2 -0
  332. pulumi_gcp/iap/web_type_app_enging_iam_member.py +2 -0
  333. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +2 -0
  334. pulumi_gcp/iap/web_type_compute_iam_binding.py +2 -0
  335. pulumi_gcp/iap/web_type_compute_iam_member.py +2 -0
  336. pulumi_gcp/iap/web_type_compute_iam_policy.py +2 -0
  337. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  338. pulumi_gcp/kms/crypto_key.py +7 -0
  339. pulumi_gcp/kms/ekm_connection_iam_binding.py +2 -0
  340. pulumi_gcp/kms/ekm_connection_iam_member.py +2 -0
  341. pulumi_gcp/kms/ekm_connection_iam_policy.py +2 -0
  342. pulumi_gcp/kms/outputs.py +2 -0
  343. pulumi_gcp/logging/log_view_iam_binding.py +2 -0
  344. pulumi_gcp/logging/log_view_iam_member.py +2 -0
  345. pulumi_gcp/logging/log_view_iam_policy.py +2 -0
  346. pulumi_gcp/looker/instance.py +28 -7
  347. pulumi_gcp/managedkafka/_inputs.py +127 -0
  348. pulumi_gcp/managedkafka/cluster.py +131 -1
  349. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  350. pulumi_gcp/managedkafka/connector.py +4 -4
  351. pulumi_gcp/managedkafka/outputs.py +128 -0
  352. pulumi_gcp/memorystore/get_instance.py +12 -1
  353. pulumi_gcp/memorystore/instance.py +78 -12
  354. pulumi_gcp/modelarmor/__init__.py +1 -0
  355. pulumi_gcp/modelarmor/_inputs.py +683 -0
  356. pulumi_gcp/modelarmor/floorsetting.py +736 -0
  357. pulumi_gcp/modelarmor/outputs.py +618 -0
  358. pulumi_gcp/monitoring/_inputs.py +3 -3
  359. pulumi_gcp/monitoring/outputs.py +2 -2
  360. pulumi_gcp/networkconnectivity/_inputs.py +60 -0
  361. pulumi_gcp/networkconnectivity/internal_range.py +136 -0
  362. pulumi_gcp/networkconnectivity/outputs.py +55 -0
  363. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  364. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +213 -168
  365. pulumi_gcp/notebooks/instance.py +18 -18
  366. pulumi_gcp/notebooks/instance_iam_binding.py +2 -0
  367. pulumi_gcp/notebooks/instance_iam_member.py +2 -0
  368. pulumi_gcp/notebooks/instance_iam_policy.py +2 -0
  369. pulumi_gcp/notebooks/runtime_iam_binding.py +2 -0
  370. pulumi_gcp/notebooks/runtime_iam_member.py +2 -0
  371. pulumi_gcp/notebooks/runtime_iam_policy.py +2 -0
  372. pulumi_gcp/oracledatabase/__init__.py +2 -0
  373. pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
  374. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
  375. pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
  376. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
  377. pulumi_gcp/oracledatabase/odb_network.py +721 -0
  378. pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
  379. pulumi_gcp/oracledatabase/outputs.py +83 -0
  380. pulumi_gcp/organizations/folder.py +56 -0
  381. pulumi_gcp/organizations/get_folder.py +29 -1
  382. pulumi_gcp/orgpolicy/policy.py +2 -2
  383. pulumi_gcp/parametermanager/parameter_version.py +62 -0
  384. pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
  385. pulumi_gcp/projects/api_key.py +88 -1
  386. pulumi_gcp/provider.py +20 -40
  387. pulumi_gcp/pubsub/schema_iam_binding.py +2 -0
  388. pulumi_gcp/pubsub/schema_iam_member.py +2 -0
  389. pulumi_gcp/pubsub/schema_iam_policy.py +2 -0
  390. pulumi_gcp/pubsub/subscription.py +130 -6
  391. pulumi_gcp/pubsub/topic.py +116 -0
  392. pulumi_gcp/pubsub/topic_iam_binding.py +2 -0
  393. pulumi_gcp/pubsub/topic_iam_member.py +2 -0
  394. pulumi_gcp/pubsub/topic_iam_policy.py +2 -0
  395. pulumi_gcp/pulumi-plugin.json +1 -1
  396. pulumi_gcp/redis/cluster.py +70 -0
  397. pulumi_gcp/redis/get_cluster.py +12 -1
  398. pulumi_gcp/redis/instance.py +8 -12
  399. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  400. pulumi_gcp/secretmanager/get_secret.py +12 -1
  401. pulumi_gcp/secretmanager/outputs.py +30 -0
  402. pulumi_gcp/secretmanager/regional_secret.py +61 -0
  403. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +2 -0
  404. pulumi_gcp/secretmanager/regional_secret_iam_member.py +2 -0
  405. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +2 -0
  406. pulumi_gcp/secretmanager/secret.py +61 -0
  407. pulumi_gcp/secretmanager/secret_iam_binding.py +2 -0
  408. pulumi_gcp/secretmanager/secret_iam_member.py +2 -0
  409. pulumi_gcp/secretmanager/secret_iam_policy.py +2 -0
  410. pulumi_gcp/secretmanager/secret_version.py +1 -48
  411. pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
  412. pulumi_gcp/securesourcemanager/instance.py +112 -4
  413. pulumi_gcp/securesourcemanager/repository.py +112 -8
  414. pulumi_gcp/securesourcemanager/repository_iam_binding.py +2 -0
  415. pulumi_gcp/securesourcemanager/repository_iam_member.py +2 -0
  416. pulumi_gcp/securesourcemanager/repository_iam_policy.py +2 -0
  417. pulumi_gcp/securitycenter/instance_iam_binding.py +18 -4
  418. pulumi_gcp/securitycenter/instance_iam_member.py +18 -4
  419. pulumi_gcp/securitycenter/instance_iam_policy.py +18 -4
  420. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +2 -0
  421. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +2 -0
  422. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +2 -0
  423. pulumi_gcp/serviceaccount/get_account_key.py +1 -0
  424. pulumi_gcp/servicedirectory/namespace_iam_binding.py +2 -0
  425. pulumi_gcp/servicedirectory/namespace_iam_member.py +2 -0
  426. pulumi_gcp/servicedirectory/namespace_iam_policy.py +2 -0
  427. pulumi_gcp/servicedirectory/service_iam_binding.py +2 -0
  428. pulumi_gcp/servicedirectory/service_iam_member.py +2 -0
  429. pulumi_gcp/servicedirectory/service_iam_policy.py +2 -0
  430. pulumi_gcp/sourcerepo/repository_iam_binding.py +2 -0
  431. pulumi_gcp/sourcerepo/repository_iam_member.py +2 -0
  432. pulumi_gcp/sourcerepo/repository_iam_policy.py +2 -0
  433. pulumi_gcp/sql/_inputs.py +88 -10
  434. pulumi_gcp/sql/database.py +0 -12
  435. pulumi_gcp/sql/database_instance.py +108 -7
  436. pulumi_gcp/sql/get_database_instance.py +12 -1
  437. pulumi_gcp/sql/outputs.py +158 -11
  438. pulumi_gcp/storage/__init__.py +2 -0
  439. pulumi_gcp/storage/_inputs.py +555 -12
  440. pulumi_gcp/storage/bucket.py +7 -7
  441. pulumi_gcp/storage/bucket_object.py +34 -0
  442. pulumi_gcp/storage/get_bucket_object.py +12 -1
  443. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  444. pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
  445. pulumi_gcp/storage/insights_dataset_config.py +1280 -0
  446. pulumi_gcp/storage/outputs.py +703 -7
  447. pulumi_gcp/tags/tag_key_iam_binding.py +2 -0
  448. pulumi_gcp/tags/tag_key_iam_member.py +2 -0
  449. pulumi_gcp/tags/tag_key_iam_policy.py +2 -0
  450. pulumi_gcp/tags/tag_value_iam_binding.py +2 -0
  451. pulumi_gcp/tags/tag_value_iam_member.py +2 -0
  452. pulumi_gcp/tags/tag_value_iam_policy.py +2 -0
  453. pulumi_gcp/tpu/get_tensorflow_versions.py +10 -0
  454. pulumi_gcp/vertex/__init__.py +2 -0
  455. pulumi_gcp/vertex/_inputs.py +3768 -3
  456. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  457. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
  458. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  459. pulumi_gcp/vertex/ai_index.py +21 -7
  460. pulumi_gcp/vertex/ai_rag_engine_config.py +354 -0
  461. pulumi_gcp/vertex/outputs.py +2678 -2
  462. pulumi_gcp/vmwareengine/network_peering.py +7 -7
  463. pulumi_gcp/workbench/_inputs.py +118 -0
  464. pulumi_gcp/workbench/instance.py +171 -2
  465. pulumi_gcp/workbench/outputs.py +91 -0
  466. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/METADATA +1 -1
  467. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/RECORD +469 -442
  468. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/WHEEL +0 -0
  469. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/top_level.txt +0 -0
@@ -85,9 +85,13 @@ __all__ = [
85
85
  'FirewallPolicyWithRulesPredefinedRule',
86
86
  'FirewallPolicyWithRulesPredefinedRuleMatch',
87
87
  'FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config',
88
+ 'FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag',
89
+ 'FirewallPolicyWithRulesPredefinedRuleTargetSecureTag',
88
90
  'FirewallPolicyWithRulesRule',
89
91
  'FirewallPolicyWithRulesRuleMatch',
90
92
  'FirewallPolicyWithRulesRuleMatchLayer4Config',
93
+ 'FirewallPolicyWithRulesRuleMatchSrcSecureTag',
94
+ 'FirewallPolicyWithRulesRuleTargetSecureTag',
91
95
  'ForwardingRuleServiceDirectoryRegistrations',
92
96
  'FutureReservationAggregateReservation',
93
97
  'FutureReservationAggregateReservationReservedResource',
@@ -348,6 +352,8 @@ __all__ = [
348
352
  'PerInstanceConfigPreservedStateExternalIpIpAddress',
349
353
  'PerInstanceConfigPreservedStateInternalIp',
350
354
  'PerInstanceConfigPreservedStateInternalIpIpAddress',
355
+ 'PreviewFeatureRolloutOperation',
356
+ 'PreviewFeatureRolloutOperationRolloutInput',
351
357
  'RegionAutoscalerAutoscalingPolicy',
352
358
  'RegionAutoscalerAutoscalingPolicyCpuUtilization',
353
359
  'RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization',
@@ -372,6 +378,9 @@ __all__ = [
372
378
  'RegionBackendServiceDynamicForwarding',
373
379
  'RegionBackendServiceDynamicForwardingIpPortSelection',
374
380
  'RegionBackendServiceFailoverPolicy',
381
+ 'RegionBackendServiceHaPolicy',
382
+ 'RegionBackendServiceHaPolicyLeader',
383
+ 'RegionBackendServiceHaPolicyLeaderNetworkEndpoint',
375
384
  'RegionBackendServiceIamBindingCondition',
376
385
  'RegionBackendServiceIamMemberCondition',
377
386
  'RegionBackendServiceIap',
@@ -484,6 +493,8 @@ __all__ = [
484
493
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink',
485
494
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage',
486
495
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo',
496
+ 'RegionSecurityPolicyAdvancedOptionsConfig',
497
+ 'RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig',
487
498
  'RegionSecurityPolicyDdosProtectionConfig',
488
499
  'RegionSecurityPolicyRule',
489
500
  'RegionSecurityPolicyRuleMatch',
@@ -634,6 +645,7 @@ __all__ = [
634
645
  'RouterNatRule',
635
646
  'RouterNatRuleAction',
636
647
  'RouterNatSubnetwork',
648
+ 'RouterParams',
637
649
  'RouterPeerAdvertisedIpRange',
638
650
  'RouterPeerBfd',
639
651
  'RouterPeerCustomLearnedIpRange',
@@ -698,6 +710,7 @@ __all__ = [
698
710
  'SubnetworkIAMBindingCondition',
699
711
  'SubnetworkIAMMemberCondition',
700
712
  'SubnetworkLogConfig',
713
+ 'SubnetworkParams',
701
714
  'SubnetworkSecondaryIpRange',
702
715
  'URLMapDefaultCustomErrorResponsePolicy',
703
716
  'URLMapDefaultCustomErrorResponsePolicyErrorResponseRule',
@@ -958,6 +971,9 @@ __all__ = [
958
971
  'GetRegionBackendServiceDynamicForwardingResult',
959
972
  'GetRegionBackendServiceDynamicForwardingIpPortSelectionResult',
960
973
  'GetRegionBackendServiceFailoverPolicyResult',
974
+ 'GetRegionBackendServiceHaPolicyResult',
975
+ 'GetRegionBackendServiceHaPolicyLeaderResult',
976
+ 'GetRegionBackendServiceHaPolicyLeaderNetworkEndpointResult',
961
977
  'GetRegionBackendServiceIapResult',
962
978
  'GetRegionBackendServiceLogConfigResult',
963
979
  'GetRegionBackendServiceOutlierDetectionResult',
@@ -1049,6 +1065,7 @@ __all__ = [
1049
1065
  'GetRouterNatRuleResult',
1050
1066
  'GetRouterNatRuleActionResult',
1051
1067
  'GetRouterNatSubnetworkResult',
1068
+ 'GetRouterParamResult',
1052
1069
  'GetRouterStatusBestRouteResult',
1053
1070
  'GetRouterStatusBestRouteAsPathResult',
1054
1071
  'GetRouterStatusBestRouteParamResult',
@@ -5825,6 +5842,8 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5825
5842
  suggest = "security_profile_group"
5826
5843
  elif key == "targetResources":
5827
5844
  suggest = "target_resources"
5845
+ elif key == "targetSecureTags":
5846
+ suggest = "target_secure_tags"
5828
5847
  elif key == "targetServiceAccounts":
5829
5848
  suggest = "target_service_accounts"
5830
5849
  elif key == "tlsInspect":
@@ -5852,6 +5871,7 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5852
5871
  rule_name: Optional[_builtins.str] = None,
5853
5872
  security_profile_group: Optional[_builtins.str] = None,
5854
5873
  target_resources: Optional[Sequence[_builtins.str]] = None,
5874
+ target_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleTargetSecureTag']] = None,
5855
5875
  target_service_accounts: Optional[Sequence[_builtins.str]] = None,
5856
5876
  tls_inspect: Optional[_builtins.bool] = None):
5857
5877
  """
@@ -5890,6 +5910,19 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5890
5910
  This field allows you to control which network's VMs get
5891
5911
  this rule. If this field is left blank, all VMs
5892
5912
  within the organization will receive the rule.
5913
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs'] target_secure_tags: (Output)
5914
+ A list of secure tags that controls which instances the firewall rule
5915
+ applies to. If <code>targetSecureTag</code> are specified, then the
5916
+ firewall rule applies only to instances in the VPC network that have one
5917
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
5918
+ INEFFECTIVE state, then this rule will be ignored.
5919
+ <code>targetSecureTag</code> may not be set at the same time as
5920
+ <code>targetServiceAccounts</code>.
5921
+ If neither <code>targetServiceAccounts</code> nor
5922
+ <code>targetSecureTag</code> are specified, the firewall rule applies
5923
+ to all instances on the specified network.
5924
+ Maximum number of target secure tags allowed is 256.
5925
+ Structure is documented below.
5893
5926
  :param Sequence[_builtins.str] target_service_accounts: (Output)
5894
5927
  A list of service accounts indicating the sets of
5895
5928
  instances that are applied with this rule.
@@ -5917,6 +5950,8 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
5917
5950
  pulumi.set(__self__, "security_profile_group", security_profile_group)
5918
5951
  if target_resources is not None:
5919
5952
  pulumi.set(__self__, "target_resources", target_resources)
5953
+ if target_secure_tags is not None:
5954
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
5920
5955
  if target_service_accounts is not None:
5921
5956
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
5922
5957
  if tls_inspect is not None:
@@ -6027,6 +6062,26 @@ class FirewallPolicyWithRulesPredefinedRule(dict):
6027
6062
  """
6028
6063
  return pulumi.get(self, "target_resources")
6029
6064
 
6065
+ @_builtins.property
6066
+ @pulumi.getter(name="targetSecureTags")
6067
+ def target_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleTargetSecureTag']]:
6068
+ """
6069
+ (Output)
6070
+ A list of secure tags that controls which instances the firewall rule
6071
+ applies to. If <code>targetSecureTag</code> are specified, then the
6072
+ firewall rule applies only to instances in the VPC network that have one
6073
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6074
+ INEFFECTIVE state, then this rule will be ignored.
6075
+ <code>targetSecureTag</code> may not be set at the same time as
6076
+ <code>targetServiceAccounts</code>.
6077
+ If neither <code>targetServiceAccounts</code> nor
6078
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6079
+ to all instances on the specified network.
6080
+ Maximum number of target secure tags allowed is 256.
6081
+ Structure is documented below.
6082
+ """
6083
+ return pulumi.get(self, "target_secure_tags")
6084
+
6030
6085
  @_builtins.property
6031
6086
  @pulumi.getter(name="targetServiceAccounts")
6032
6087
  def target_service_accounts(self) -> Optional[Sequence[_builtins.str]]:
@@ -6073,6 +6128,8 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6073
6128
  suggest = "src_ip_ranges"
6074
6129
  elif key == "srcRegionCodes":
6075
6130
  suggest = "src_region_codes"
6131
+ elif key == "srcSecureTags":
6132
+ suggest = "src_secure_tags"
6076
6133
  elif key == "srcThreatIntelligences":
6077
6134
  suggest = "src_threat_intelligences"
6078
6135
 
@@ -6098,6 +6155,7 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6098
6155
  src_fqdns: Optional[Sequence[_builtins.str]] = None,
6099
6156
  src_ip_ranges: Optional[Sequence[_builtins.str]] = None,
6100
6157
  src_region_codes: Optional[Sequence[_builtins.str]] = None,
6158
+ src_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']] = None,
6101
6159
  src_threat_intelligences: Optional[Sequence[_builtins.str]] = None):
6102
6160
  """
6103
6161
  :param Sequence[_builtins.str] dest_address_groups: Address groups which should be matched against the traffic destination.
@@ -6114,9 +6172,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6114
6172
  The IPs in these lists will be matched against traffic destination.
6115
6173
  :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6116
6174
  Structure is documented below.
6117
-
6118
-
6119
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6120
6175
  :param Sequence[_builtins.str] src_address_groups: Address groups which should be matched against the traffic source.
6121
6176
  Maximum number of source address groups is 10.
6122
6177
  :param Sequence[_builtins.str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -6127,6 +6182,12 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6127
6182
  of traffic. Should be specified as 2 letter country code defined as per
6128
6183
  ISO 3166 alpha-2 country codes. ex."US"
6129
6184
  Maximum number of source region codes allowed is 5000.
6185
+ :param Sequence['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
6186
+ of the traffic.
6187
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6188
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6189
+ Maximum number of source tag values allowed is 256.
6190
+ Structure is documented below.
6130
6191
  :param Sequence[_builtins.str] src_threat_intelligences: Names of Network Threat Intelligence lists.
6131
6192
  The IPs in these lists will be matched against traffic source.
6132
6193
  """
@@ -6150,6 +6211,8 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6150
6211
  pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
6151
6212
  if src_region_codes is not None:
6152
6213
  pulumi.set(__self__, "src_region_codes", src_region_codes)
6214
+ if src_secure_tags is not None:
6215
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
6153
6216
  if src_threat_intelligences is not None:
6154
6217
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
6155
6218
 
@@ -6206,9 +6269,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6206
6269
  """
6207
6270
  Pairs of IP protocols and ports that the rule should match.
6208
6271
  Structure is documented below.
6209
-
6210
-
6211
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6212
6272
  """
6213
6273
  return pulumi.get(self, "layer4_configs")
6214
6274
 
@@ -6250,6 +6310,19 @@ class FirewallPolicyWithRulesPredefinedRuleMatch(dict):
6250
6310
  """
6251
6311
  return pulumi.get(self, "src_region_codes")
6252
6312
 
6313
+ @_builtins.property
6314
+ @pulumi.getter(name="srcSecureTags")
6315
+ def src_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag']]:
6316
+ """
6317
+ List of secure tag values, which should be matched at the source
6318
+ of the traffic.
6319
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6320
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6321
+ Maximum number of source tag values allowed is 256.
6322
+ Structure is documented below.
6323
+ """
6324
+ return pulumi.get(self, "src_secure_tags")
6325
+
6253
6326
  @_builtins.property
6254
6327
  @pulumi.getter(name="srcThreatIntelligences")
6255
6328
  def src_threat_intelligences(self) -> Optional[Sequence[_builtins.str]]:
@@ -6330,6 +6403,88 @@ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config(dict):
6330
6403
  return pulumi.get(self, "ports")
6331
6404
 
6332
6405
 
6406
+ @pulumi.output_type
6407
+ class FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag(dict):
6408
+ def __init__(__self__, *,
6409
+ name: Optional[_builtins.str] = None,
6410
+ state: Optional[_builtins.str] = None):
6411
+ """
6412
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
6413
+ @pattern tagValues/[0-9]+
6414
+ :param _builtins.str state: (Output)
6415
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6416
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6417
+ or its network is deleted.
6418
+
6419
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6420
+ """
6421
+ if name is not None:
6422
+ pulumi.set(__self__, "name", name)
6423
+ if state is not None:
6424
+ pulumi.set(__self__, "state", state)
6425
+
6426
+ @_builtins.property
6427
+ @pulumi.getter
6428
+ def name(self) -> Optional[_builtins.str]:
6429
+ """
6430
+ Name of the secure tag, created with TagManager's TagValue API.
6431
+ @pattern tagValues/[0-9]+
6432
+ """
6433
+ return pulumi.get(self, "name")
6434
+
6435
+ @_builtins.property
6436
+ @pulumi.getter
6437
+ def state(self) -> Optional[_builtins.str]:
6438
+ """
6439
+ (Output)
6440
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6441
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6442
+ or its network is deleted.
6443
+
6444
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6445
+ """
6446
+ return pulumi.get(self, "state")
6447
+
6448
+
6449
+ @pulumi.output_type
6450
+ class FirewallPolicyWithRulesPredefinedRuleTargetSecureTag(dict):
6451
+ def __init__(__self__, *,
6452
+ name: Optional[_builtins.str] = None,
6453
+ state: Optional[_builtins.str] = None):
6454
+ """
6455
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
6456
+ @pattern tagValues/[0-9]+
6457
+ :param _builtins.str state: (Output)
6458
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6459
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6460
+ or its network is deleted.
6461
+ """
6462
+ if name is not None:
6463
+ pulumi.set(__self__, "name", name)
6464
+ if state is not None:
6465
+ pulumi.set(__self__, "state", state)
6466
+
6467
+ @_builtins.property
6468
+ @pulumi.getter
6469
+ def name(self) -> Optional[_builtins.str]:
6470
+ """
6471
+ Name of the secure tag, created with TagManager's TagValue API.
6472
+ @pattern tagValues/[0-9]+
6473
+ """
6474
+ return pulumi.get(self, "name")
6475
+
6476
+ @_builtins.property
6477
+ @pulumi.getter
6478
+ def state(self) -> Optional[_builtins.str]:
6479
+ """
6480
+ (Output)
6481
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
6482
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
6483
+ or its network is deleted.
6484
+ """
6485
+ return pulumi.get(self, "state")
6486
+
6487
+
6333
6488
  @pulumi.output_type
6334
6489
  class FirewallPolicyWithRulesRule(dict):
6335
6490
  @staticmethod
@@ -6343,6 +6498,8 @@ class FirewallPolicyWithRulesRule(dict):
6343
6498
  suggest = "security_profile_group"
6344
6499
  elif key == "targetResources":
6345
6500
  suggest = "target_resources"
6501
+ elif key == "targetSecureTags":
6502
+ suggest = "target_secure_tags"
6346
6503
  elif key == "targetServiceAccounts":
6347
6504
  suggest = "target_service_accounts"
6348
6505
  elif key == "tlsInspect":
@@ -6370,6 +6527,7 @@ class FirewallPolicyWithRulesRule(dict):
6370
6527
  rule_name: Optional[_builtins.str] = None,
6371
6528
  security_profile_group: Optional[_builtins.str] = None,
6372
6529
  target_resources: Optional[Sequence[_builtins.str]] = None,
6530
+ target_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesRuleTargetSecureTag']] = None,
6373
6531
  target_service_accounts: Optional[Sequence[_builtins.str]] = None,
6374
6532
  tls_inspect: Optional[_builtins.bool] = None):
6375
6533
  """
@@ -6400,6 +6558,18 @@ class FirewallPolicyWithRulesRule(dict):
6400
6558
  This field allows you to control which network's VMs get
6401
6559
  this rule. If this field is left blank, all VMs
6402
6560
  within the organization will receive the rule.
6561
+ :param Sequence['FirewallPolicyWithRulesRuleTargetSecureTagArgs'] target_secure_tags: A list of secure tags that controls which instances the firewall rule
6562
+ applies to. If <code>targetSecureTag</code> are specified, then the
6563
+ firewall rule applies only to instances in the VPC network that have one
6564
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6565
+ INEFFECTIVE state, then this rule will be ignored.
6566
+ <code>targetSecureTag</code> may not be set at the same time as
6567
+ <code>targetServiceAccounts</code>.
6568
+ If neither <code>targetServiceAccounts</code> nor
6569
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6570
+ to all instances on the specified network.
6571
+ Maximum number of target secure tags allowed is 256.
6572
+ Structure is documented below.
6403
6573
  :param Sequence[_builtins.str] target_service_accounts: A list of service accounts indicating the sets of
6404
6574
  instances that are applied with this rule.
6405
6575
  :param _builtins.bool tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
@@ -6422,6 +6592,8 @@ class FirewallPolicyWithRulesRule(dict):
6422
6592
  pulumi.set(__self__, "security_profile_group", security_profile_group)
6423
6593
  if target_resources is not None:
6424
6594
  pulumi.set(__self__, "target_resources", target_resources)
6595
+ if target_secure_tags is not None:
6596
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
6425
6597
  if target_service_accounts is not None:
6426
6598
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
6427
6599
  if tls_inspect is not None:
@@ -6524,6 +6696,25 @@ class FirewallPolicyWithRulesRule(dict):
6524
6696
  """
6525
6697
  return pulumi.get(self, "target_resources")
6526
6698
 
6699
+ @_builtins.property
6700
+ @pulumi.getter(name="targetSecureTags")
6701
+ def target_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesRuleTargetSecureTag']]:
6702
+ """
6703
+ A list of secure tags that controls which instances the firewall rule
6704
+ applies to. If <code>targetSecureTag</code> are specified, then the
6705
+ firewall rule applies only to instances in the VPC network that have one
6706
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
6707
+ INEFFECTIVE state, then this rule will be ignored.
6708
+ <code>targetSecureTag</code> may not be set at the same time as
6709
+ <code>targetServiceAccounts</code>.
6710
+ If neither <code>targetServiceAccounts</code> nor
6711
+ <code>targetSecureTag</code> are specified, the firewall rule applies
6712
+ to all instances on the specified network.
6713
+ Maximum number of target secure tags allowed is 256.
6714
+ Structure is documented below.
6715
+ """
6716
+ return pulumi.get(self, "target_secure_tags")
6717
+
6527
6718
  @_builtins.property
6528
6719
  @pulumi.getter(name="targetServiceAccounts")
6529
6720
  def target_service_accounts(self) -> Optional[Sequence[_builtins.str]]:
@@ -6574,6 +6765,8 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6574
6765
  suggest = "src_networks"
6575
6766
  elif key == "srcRegionCodes":
6576
6767
  suggest = "src_region_codes"
6768
+ elif key == "srcSecureTags":
6769
+ suggest = "src_secure_tags"
6577
6770
  elif key == "srcThreatIntelligences":
6578
6771
  suggest = "src_threat_intelligences"
6579
6772
 
@@ -6602,13 +6795,11 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6602
6795
  src_network_scope: Optional[_builtins.str] = None,
6603
6796
  src_networks: Optional[Sequence[_builtins.str]] = None,
6604
6797
  src_region_codes: Optional[Sequence[_builtins.str]] = None,
6798
+ src_secure_tags: Optional[Sequence['outputs.FirewallPolicyWithRulesRuleMatchSrcSecureTag']] = None,
6605
6799
  src_threat_intelligences: Optional[Sequence[_builtins.str]] = None):
6606
6800
  """
6607
6801
  :param Sequence['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6608
6802
  Structure is documented below.
6609
-
6610
-
6611
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6612
6803
  :param Sequence[_builtins.str] dest_address_groups: Address groups which should be matched against the traffic destination.
6613
6804
  Maximum number of destination address groups is 10.
6614
6805
  :param Sequence[_builtins.str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -6636,6 +6827,12 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6636
6827
  of traffic. Should be specified as 2 letter country code defined as per
6637
6828
  ISO 3166 alpha-2 country codes. ex."US"
6638
6829
  Maximum number of source region codes allowed is 5000.
6830
+ :param Sequence['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs'] src_secure_tags: List of secure tag values, which should be matched at the source
6831
+ of the traffic.
6832
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6833
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6834
+ Maximum number of source tag values allowed is 256.
6835
+ Structure is documented below.
6639
6836
  :param Sequence[_builtins.str] src_threat_intelligences: Names of Network Threat Intelligence lists.
6640
6837
  The IPs in these lists will be matched against traffic source.
6641
6838
  """
@@ -6664,6 +6861,8 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6664
6861
  pulumi.set(__self__, "src_networks", src_networks)
6665
6862
  if src_region_codes is not None:
6666
6863
  pulumi.set(__self__, "src_region_codes", src_region_codes)
6864
+ if src_secure_tags is not None:
6865
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
6667
6866
  if src_threat_intelligences is not None:
6668
6867
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
6669
6868
 
@@ -6673,9 +6872,6 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6673
6872
  """
6674
6873
  Pairs of IP protocols and ports that the rule should match.
6675
6874
  Structure is documented below.
6676
-
6677
-
6678
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
6679
6875
  """
6680
6876
  return pulumi.get(self, "layer4_configs")
6681
6877
 
@@ -6790,6 +6986,19 @@ class FirewallPolicyWithRulesRuleMatch(dict):
6790
6986
  """
6791
6987
  return pulumi.get(self, "src_region_codes")
6792
6988
 
6989
+ @_builtins.property
6990
+ @pulumi.getter(name="srcSecureTags")
6991
+ def src_secure_tags(self) -> Optional[Sequence['outputs.FirewallPolicyWithRulesRuleMatchSrcSecureTag']]:
6992
+ """
6993
+ List of secure tag values, which should be matched at the source
6994
+ of the traffic.
6995
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
6996
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
6997
+ Maximum number of source tag values allowed is 256.
6998
+ Structure is documented below.
6999
+ """
7000
+ return pulumi.get(self, "src_secure_tags")
7001
+
6793
7002
  @_builtins.property
6794
7003
  @pulumi.getter(name="srcThreatIntelligences")
6795
7004
  def src_threat_intelligences(self) -> Optional[Sequence[_builtins.str]]:
@@ -6869,6 +7078,88 @@ class FirewallPolicyWithRulesRuleMatchLayer4Config(dict):
6869
7078
  return pulumi.get(self, "ports")
6870
7079
 
6871
7080
 
7081
+ @pulumi.output_type
7082
+ class FirewallPolicyWithRulesRuleMatchSrcSecureTag(dict):
7083
+ def __init__(__self__, *,
7084
+ name: Optional[_builtins.str] = None,
7085
+ state: Optional[_builtins.str] = None):
7086
+ """
7087
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
7088
+ @pattern tagValues/[0-9]+
7089
+ :param _builtins.str state: (Output)
7090
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7091
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7092
+ or its network is deleted.
7093
+
7094
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
7095
+ """
7096
+ if name is not None:
7097
+ pulumi.set(__self__, "name", name)
7098
+ if state is not None:
7099
+ pulumi.set(__self__, "state", state)
7100
+
7101
+ @_builtins.property
7102
+ @pulumi.getter
7103
+ def name(self) -> Optional[_builtins.str]:
7104
+ """
7105
+ Name of the secure tag, created with TagManager's TagValue API.
7106
+ @pattern tagValues/[0-9]+
7107
+ """
7108
+ return pulumi.get(self, "name")
7109
+
7110
+ @_builtins.property
7111
+ @pulumi.getter
7112
+ def state(self) -> Optional[_builtins.str]:
7113
+ """
7114
+ (Output)
7115
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7116
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7117
+ or its network is deleted.
7118
+
7119
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
7120
+ """
7121
+ return pulumi.get(self, "state")
7122
+
7123
+
7124
+ @pulumi.output_type
7125
+ class FirewallPolicyWithRulesRuleTargetSecureTag(dict):
7126
+ def __init__(__self__, *,
7127
+ name: Optional[_builtins.str] = None,
7128
+ state: Optional[_builtins.str] = None):
7129
+ """
7130
+ :param _builtins.str name: Name of the secure tag, created with TagManager's TagValue API.
7131
+ @pattern tagValues/[0-9]+
7132
+ :param _builtins.str state: (Output)
7133
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7134
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7135
+ or its network is deleted.
7136
+ """
7137
+ if name is not None:
7138
+ pulumi.set(__self__, "name", name)
7139
+ if state is not None:
7140
+ pulumi.set(__self__, "state", state)
7141
+
7142
+ @_builtins.property
7143
+ @pulumi.getter
7144
+ def name(self) -> Optional[_builtins.str]:
7145
+ """
7146
+ Name of the secure tag, created with TagManager's TagValue API.
7147
+ @pattern tagValues/[0-9]+
7148
+ """
7149
+ return pulumi.get(self, "name")
7150
+
7151
+ @_builtins.property
7152
+ @pulumi.getter
7153
+ def state(self) -> Optional[_builtins.str]:
7154
+ """
7155
+ (Output)
7156
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
7157
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
7158
+ or its network is deleted.
7159
+ """
7160
+ return pulumi.get(self, "state")
7161
+
7162
+
6872
7163
  @pulumi.output_type
6873
7164
  class ForwardingRuleServiceDirectoryRegistrations(dict):
6874
7165
  def __init__(__self__, *,
@@ -25911,6 +26202,81 @@ class PerInstanceConfigPreservedStateInternalIpIpAddress(dict):
25911
26202
  return pulumi.get(self, "address")
25912
26203
 
25913
26204
 
26205
+ @pulumi.output_type
26206
+ class PreviewFeatureRolloutOperation(dict):
26207
+ @staticmethod
26208
+ def __key_warning(key: str):
26209
+ suggest = None
26210
+ if key == "rolloutInput":
26211
+ suggest = "rollout_input"
26212
+
26213
+ if suggest:
26214
+ pulumi.log.warn(f"Key '{key}' not found in PreviewFeatureRolloutOperation. Access the value via the '{suggest}' property getter instead.")
26215
+
26216
+ def __getitem__(self, key: str) -> Any:
26217
+ PreviewFeatureRolloutOperation.__key_warning(key)
26218
+ return super().__getitem__(key)
26219
+
26220
+ def get(self, key: str, default = None) -> Any:
26221
+ PreviewFeatureRolloutOperation.__key_warning(key)
26222
+ return super().get(key, default)
26223
+
26224
+ def __init__(__self__, *,
26225
+ rollout_input: Optional['outputs.PreviewFeatureRolloutOperationRolloutInput'] = None):
26226
+ """
26227
+ :param 'PreviewFeatureRolloutOperationRolloutInputArgs' rollout_input: The input for the rollout operation.
26228
+ Structure is documented below.
26229
+ """
26230
+ if rollout_input is not None:
26231
+ pulumi.set(__self__, "rollout_input", rollout_input)
26232
+
26233
+ @_builtins.property
26234
+ @pulumi.getter(name="rolloutInput")
26235
+ def rollout_input(self) -> Optional['outputs.PreviewFeatureRolloutOperationRolloutInput']:
26236
+ """
26237
+ The input for the rollout operation.
26238
+ Structure is documented below.
26239
+ """
26240
+ return pulumi.get(self, "rollout_input")
26241
+
26242
+
26243
+ @pulumi.output_type
26244
+ class PreviewFeatureRolloutOperationRolloutInput(dict):
26245
+ @staticmethod
26246
+ def __key_warning(key: str):
26247
+ suggest = None
26248
+ if key == "predefinedRolloutPlan":
26249
+ suggest = "predefined_rollout_plan"
26250
+
26251
+ if suggest:
26252
+ pulumi.log.warn(f"Key '{key}' not found in PreviewFeatureRolloutOperationRolloutInput. Access the value via the '{suggest}' property getter instead.")
26253
+
26254
+ def __getitem__(self, key: str) -> Any:
26255
+ PreviewFeatureRolloutOperationRolloutInput.__key_warning(key)
26256
+ return super().__getitem__(key)
26257
+
26258
+ def get(self, key: str, default = None) -> Any:
26259
+ PreviewFeatureRolloutOperationRolloutInput.__key_warning(key)
26260
+ return super().get(key, default)
26261
+
26262
+ def __init__(__self__, *,
26263
+ predefined_rollout_plan: _builtins.str):
26264
+ """
26265
+ :param _builtins.str predefined_rollout_plan: Predefined rollout plans.
26266
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
26267
+ """
26268
+ pulumi.set(__self__, "predefined_rollout_plan", predefined_rollout_plan)
26269
+
26270
+ @_builtins.property
26271
+ @pulumi.getter(name="predefinedRolloutPlan")
26272
+ def predefined_rollout_plan(self) -> _builtins.str:
26273
+ """
26274
+ Predefined rollout plans.
26275
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
26276
+ """
26277
+ return pulumi.get(self, "predefined_rollout_plan")
26278
+
26279
+
25914
26280
  @pulumi.output_type
25915
26281
  class RegionAutoscalerAutoscalingPolicy(dict):
25916
26282
  @staticmethod
@@ -28085,6 +28451,157 @@ class RegionBackendServiceFailoverPolicy(dict):
28085
28451
  return pulumi.get(self, "failover_ratio")
28086
28452
 
28087
28453
 
28454
+ @pulumi.output_type
28455
+ class RegionBackendServiceHaPolicy(dict):
28456
+ @staticmethod
28457
+ def __key_warning(key: str):
28458
+ suggest = None
28459
+ if key == "fastIpMove":
28460
+ suggest = "fast_ip_move"
28461
+
28462
+ if suggest:
28463
+ pulumi.log.warn(f"Key '{key}' not found in RegionBackendServiceHaPolicy. Access the value via the '{suggest}' property getter instead.")
28464
+
28465
+ def __getitem__(self, key: str) -> Any:
28466
+ RegionBackendServiceHaPolicy.__key_warning(key)
28467
+ return super().__getitem__(key)
28468
+
28469
+ def get(self, key: str, default = None) -> Any:
28470
+ RegionBackendServiceHaPolicy.__key_warning(key)
28471
+ return super().get(key, default)
28472
+
28473
+ def __init__(__self__, *,
28474
+ fast_ip_move: Optional[_builtins.str] = None,
28475
+ leader: Optional['outputs.RegionBackendServiceHaPolicyLeader'] = None):
28476
+ """
28477
+ :param _builtins.str fast_ip_move: Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
28478
+ Supported values are:
28479
+ * `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to
28480
+ update the leader.
28481
+ * `GARP_RA`: Provides a method to very quickly define a new network endpoint as the
28482
+ leader. This method is faster than updating the leader using the
28483
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
28484
+ network endpoint that should become the new leader sends either a
28485
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
28486
+ packet (IPv6). Google Cloud immediately but temporarily associates the
28487
+ forwarding rule IP address with that VM, and both new and in-flight packets
28488
+ are quickly delivered to that VM.
28489
+ Possible values are: `DISABLED`, `GARP_RA`.
28490
+ :param 'RegionBackendServiceHaPolicyLeaderArgs' leader: Selects one of the network endpoints attached to the backend NEGs of this service as the
28491
+ active endpoint (the leader) that receives all traffic.
28492
+ Structure is documented below.
28493
+ """
28494
+ if fast_ip_move is not None:
28495
+ pulumi.set(__self__, "fast_ip_move", fast_ip_move)
28496
+ if leader is not None:
28497
+ pulumi.set(__self__, "leader", leader)
28498
+
28499
+ @_builtins.property
28500
+ @pulumi.getter(name="fastIpMove")
28501
+ def fast_ip_move(self) -> Optional[_builtins.str]:
28502
+ """
28503
+ Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
28504
+ Supported values are:
28505
+ * `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to
28506
+ update the leader.
28507
+ * `GARP_RA`: Provides a method to very quickly define a new network endpoint as the
28508
+ leader. This method is faster than updating the leader using the
28509
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
28510
+ network endpoint that should become the new leader sends either a
28511
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
28512
+ packet (IPv6). Google Cloud immediately but temporarily associates the
28513
+ forwarding rule IP address with that VM, and both new and in-flight packets
28514
+ are quickly delivered to that VM.
28515
+ Possible values are: `DISABLED`, `GARP_RA`.
28516
+ """
28517
+ return pulumi.get(self, "fast_ip_move")
28518
+
28519
+ @_builtins.property
28520
+ @pulumi.getter
28521
+ def leader(self) -> Optional['outputs.RegionBackendServiceHaPolicyLeader']:
28522
+ """
28523
+ Selects one of the network endpoints attached to the backend NEGs of this service as the
28524
+ active endpoint (the leader) that receives all traffic.
28525
+ Structure is documented below.
28526
+ """
28527
+ return pulumi.get(self, "leader")
28528
+
28529
+
28530
+ @pulumi.output_type
28531
+ class RegionBackendServiceHaPolicyLeader(dict):
28532
+ @staticmethod
28533
+ def __key_warning(key: str):
28534
+ suggest = None
28535
+ if key == "backendGroup":
28536
+ suggest = "backend_group"
28537
+ elif key == "networkEndpoint":
28538
+ suggest = "network_endpoint"
28539
+
28540
+ if suggest:
28541
+ pulumi.log.warn(f"Key '{key}' not found in RegionBackendServiceHaPolicyLeader. Access the value via the '{suggest}' property getter instead.")
28542
+
28543
+ def __getitem__(self, key: str) -> Any:
28544
+ RegionBackendServiceHaPolicyLeader.__key_warning(key)
28545
+ return super().__getitem__(key)
28546
+
28547
+ def get(self, key: str, default = None) -> Any:
28548
+ RegionBackendServiceHaPolicyLeader.__key_warning(key)
28549
+ return super().get(key, default)
28550
+
28551
+ def __init__(__self__, *,
28552
+ backend_group: Optional[_builtins.str] = None,
28553
+ network_endpoint: Optional['outputs.RegionBackendServiceHaPolicyLeaderNetworkEndpoint'] = None):
28554
+ """
28555
+ :param _builtins.str backend_group: A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
28556
+ attached to.
28557
+ :param 'RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs' network_endpoint: The network endpoint within the leader.backendGroup that is designated as the leader.
28558
+ Structure is documented below.
28559
+ """
28560
+ if backend_group is not None:
28561
+ pulumi.set(__self__, "backend_group", backend_group)
28562
+ if network_endpoint is not None:
28563
+ pulumi.set(__self__, "network_endpoint", network_endpoint)
28564
+
28565
+ @_builtins.property
28566
+ @pulumi.getter(name="backendGroup")
28567
+ def backend_group(self) -> Optional[_builtins.str]:
28568
+ """
28569
+ A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
28570
+ attached to.
28571
+ """
28572
+ return pulumi.get(self, "backend_group")
28573
+
28574
+ @_builtins.property
28575
+ @pulumi.getter(name="networkEndpoint")
28576
+ def network_endpoint(self) -> Optional['outputs.RegionBackendServiceHaPolicyLeaderNetworkEndpoint']:
28577
+ """
28578
+ The network endpoint within the leader.backendGroup that is designated as the leader.
28579
+ Structure is documented below.
28580
+ """
28581
+ return pulumi.get(self, "network_endpoint")
28582
+
28583
+
28584
+ @pulumi.output_type
28585
+ class RegionBackendServiceHaPolicyLeaderNetworkEndpoint(dict):
28586
+ def __init__(__self__, *,
28587
+ instance: Optional[_builtins.str] = None):
28588
+ """
28589
+ :param _builtins.str instance: The name of the VM instance of the leader network endpoint. The instance must
28590
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
28591
+ """
28592
+ if instance is not None:
28593
+ pulumi.set(__self__, "instance", instance)
28594
+
28595
+ @_builtins.property
28596
+ @pulumi.getter
28597
+ def instance(self) -> Optional[_builtins.str]:
28598
+ """
28599
+ The name of the VM instance of the leader network endpoint. The instance must
28600
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
28601
+ """
28602
+ return pulumi.get(self, "instance")
28603
+
28604
+
28088
28605
  @pulumi.output_type
28089
28606
  class RegionBackendServiceIamBindingCondition(dict):
28090
28607
  def __init__(__self__, *,
@@ -36521,6 +37038,143 @@ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(dict):
36521
37038
  return pulumi.get(self, "rollout_status")
36522
37039
 
36523
37040
 
37041
+ @pulumi.output_type
37042
+ class RegionSecurityPolicyAdvancedOptionsConfig(dict):
37043
+ @staticmethod
37044
+ def __key_warning(key: str):
37045
+ suggest = None
37046
+ if key == "jsonCustomConfig":
37047
+ suggest = "json_custom_config"
37048
+ elif key == "jsonParsing":
37049
+ suggest = "json_parsing"
37050
+ elif key == "logLevel":
37051
+ suggest = "log_level"
37052
+ elif key == "requestBodyInspectionSize":
37053
+ suggest = "request_body_inspection_size"
37054
+ elif key == "userIpRequestHeaders":
37055
+ suggest = "user_ip_request_headers"
37056
+
37057
+ if suggest:
37058
+ pulumi.log.warn(f"Key '{key}' not found in RegionSecurityPolicyAdvancedOptionsConfig. Access the value via the '{suggest}' property getter instead.")
37059
+
37060
+ def __getitem__(self, key: str) -> Any:
37061
+ RegionSecurityPolicyAdvancedOptionsConfig.__key_warning(key)
37062
+ return super().__getitem__(key)
37063
+
37064
+ def get(self, key: str, default = None) -> Any:
37065
+ RegionSecurityPolicyAdvancedOptionsConfig.__key_warning(key)
37066
+ return super().get(key, default)
37067
+
37068
+ def __init__(__self__, *,
37069
+ json_custom_config: Optional['outputs.RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig'] = None,
37070
+ json_parsing: Optional[_builtins.str] = None,
37071
+ log_level: Optional[_builtins.str] = None,
37072
+ request_body_inspection_size: Optional[_builtins.str] = None,
37073
+ user_ip_request_headers: Optional[Sequence[_builtins.str]] = None):
37074
+ """
37075
+ :param 'RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs' json_custom_config: Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.
37076
+ Structure is documented below.
37077
+ :param _builtins.str json_parsing: JSON body parsing. Supported values include: "DISABLED", "STANDARD", "STANDARD_WITH_GRAPHQL".
37078
+ Possible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.
37079
+ :param _builtins.str log_level: Logging level. Supported values include: "NORMAL", "VERBOSE".
37080
+ Possible values are: `NORMAL`, `VERBOSE`.
37081
+ :param _builtins.str request_body_inspection_size: The maximum request size chosen by the customer with Waf enabled. Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB".
37082
+ Values are case insensitive.
37083
+ Possible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.
37084
+ :param Sequence[_builtins.str] user_ip_request_headers: An optional list of case-insensitive request header names to use for resolving the callers client IP address.
37085
+ """
37086
+ if json_custom_config is not None:
37087
+ pulumi.set(__self__, "json_custom_config", json_custom_config)
37088
+ if json_parsing is not None:
37089
+ pulumi.set(__self__, "json_parsing", json_parsing)
37090
+ if log_level is not None:
37091
+ pulumi.set(__self__, "log_level", log_level)
37092
+ if request_body_inspection_size is not None:
37093
+ pulumi.set(__self__, "request_body_inspection_size", request_body_inspection_size)
37094
+ if user_ip_request_headers is not None:
37095
+ pulumi.set(__self__, "user_ip_request_headers", user_ip_request_headers)
37096
+
37097
+ @_builtins.property
37098
+ @pulumi.getter(name="jsonCustomConfig")
37099
+ def json_custom_config(self) -> Optional['outputs.RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig']:
37100
+ """
37101
+ Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.
37102
+ Structure is documented below.
37103
+ """
37104
+ return pulumi.get(self, "json_custom_config")
37105
+
37106
+ @_builtins.property
37107
+ @pulumi.getter(name="jsonParsing")
37108
+ def json_parsing(self) -> Optional[_builtins.str]:
37109
+ """
37110
+ JSON body parsing. Supported values include: "DISABLED", "STANDARD", "STANDARD_WITH_GRAPHQL".
37111
+ Possible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.
37112
+ """
37113
+ return pulumi.get(self, "json_parsing")
37114
+
37115
+ @_builtins.property
37116
+ @pulumi.getter(name="logLevel")
37117
+ def log_level(self) -> Optional[_builtins.str]:
37118
+ """
37119
+ Logging level. Supported values include: "NORMAL", "VERBOSE".
37120
+ Possible values are: `NORMAL`, `VERBOSE`.
37121
+ """
37122
+ return pulumi.get(self, "log_level")
37123
+
37124
+ @_builtins.property
37125
+ @pulumi.getter(name="requestBodyInspectionSize")
37126
+ def request_body_inspection_size(self) -> Optional[_builtins.str]:
37127
+ """
37128
+ The maximum request size chosen by the customer with Waf enabled. Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB".
37129
+ Values are case insensitive.
37130
+ Possible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.
37131
+ """
37132
+ return pulumi.get(self, "request_body_inspection_size")
37133
+
37134
+ @_builtins.property
37135
+ @pulumi.getter(name="userIpRequestHeaders")
37136
+ def user_ip_request_headers(self) -> Optional[Sequence[_builtins.str]]:
37137
+ """
37138
+ An optional list of case-insensitive request header names to use for resolving the callers client IP address.
37139
+ """
37140
+ return pulumi.get(self, "user_ip_request_headers")
37141
+
37142
+
37143
+ @pulumi.output_type
37144
+ class RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig(dict):
37145
+ @staticmethod
37146
+ def __key_warning(key: str):
37147
+ suggest = None
37148
+ if key == "contentTypes":
37149
+ suggest = "content_types"
37150
+
37151
+ if suggest:
37152
+ pulumi.log.warn(f"Key '{key}' not found in RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig. Access the value via the '{suggest}' property getter instead.")
37153
+
37154
+ def __getitem__(self, key: str) -> Any:
37155
+ RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig.__key_warning(key)
37156
+ return super().__getitem__(key)
37157
+
37158
+ def get(self, key: str, default = None) -> Any:
37159
+ RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig.__key_warning(key)
37160
+ return super().get(key, default)
37161
+
37162
+ def __init__(__self__, *,
37163
+ content_types: Sequence[_builtins.str]):
37164
+ """
37165
+ :param Sequence[_builtins.str] content_types: A list of custom Content-Type header values to apply the JSON parsing.
37166
+ """
37167
+ pulumi.set(__self__, "content_types", content_types)
37168
+
37169
+ @_builtins.property
37170
+ @pulumi.getter(name="contentTypes")
37171
+ def content_types(self) -> Sequence[_builtins.str]:
37172
+ """
37173
+ A list of custom Content-Type header values to apply the JSON parsing.
37174
+ """
37175
+ return pulumi.get(self, "content_types")
37176
+
37177
+
36524
37178
  @pulumi.output_type
36525
37179
  class RegionSecurityPolicyDdosProtectionConfig(dict):
36526
37180
  @staticmethod
@@ -38254,6 +38908,8 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38254
38908
  suggest = None
38255
38909
  if key == "backendService":
38256
38910
  suggest = "backend_service"
38911
+ elif key == "mirrorPercent":
38912
+ suggest = "mirror_percent"
38257
38913
 
38258
38914
  if suggest:
38259
38915
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapDefaultRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -38267,14 +38923,19 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38267
38923
  return super().get(key, default)
38268
38924
 
38269
38925
  def __init__(__self__, *,
38270
- backend_service: Optional[_builtins.str] = None):
38926
+ backend_service: Optional[_builtins.str] = None,
38927
+ mirror_percent: Optional[_builtins.float] = None):
38271
38928
  """
38272
38929
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
38273
38930
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
38274
38931
  Serverless NEG backends are not currently supported as a mirrored backend service.
38932
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
38933
+ The value must be between 0.0 and 100.0 inclusive.
38275
38934
  """
38276
38935
  if backend_service is not None:
38277
38936
  pulumi.set(__self__, "backend_service", backend_service)
38937
+ if mirror_percent is not None:
38938
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
38278
38939
 
38279
38940
  @_builtins.property
38280
38941
  @pulumi.getter(name="backendService")
@@ -38286,6 +38947,15 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicy(dict):
38286
38947
  """
38287
38948
  return pulumi.get(self, "backend_service")
38288
38949
 
38950
+ @_builtins.property
38951
+ @pulumi.getter(name="mirrorPercent")
38952
+ def mirror_percent(self) -> Optional[_builtins.float]:
38953
+ """
38954
+ The percentage of requests to be mirrored to backendService.
38955
+ The value must be between 0.0 and 100.0 inclusive.
38956
+ """
38957
+ return pulumi.get(self, "mirror_percent")
38958
+
38289
38959
 
38290
38960
  @pulumi.output_type
38291
38961
  class RegionUrlMapDefaultRouteActionRetryPolicy(dict):
@@ -39696,6 +40366,8 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39696
40366
  suggest = None
39697
40367
  if key == "backendService":
39698
40368
  suggest = "backend_service"
40369
+ elif key == "mirrorPercent":
40370
+ suggest = "mirror_percent"
39699
40371
 
39700
40372
  if suggest:
39701
40373
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -39709,13 +40381,18 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39709
40381
  return super().get(key, default)
39710
40382
 
39711
40383
  def __init__(__self__, *,
39712
- backend_service: _builtins.str):
40384
+ backend_service: _builtins.str,
40385
+ mirror_percent: Optional[_builtins.float] = None):
39713
40386
  """
39714
40387
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
39715
40388
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
39716
40389
  Serverless NEG backends are not currently supported as a mirrored backend service.
40390
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
40391
+ The value must be between 0.0 and 100.0 inclusive.
39717
40392
  """
39718
40393
  pulumi.set(__self__, "backend_service", backend_service)
40394
+ if mirror_percent is not None:
40395
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
39719
40396
 
39720
40397
  @_builtins.property
39721
40398
  @pulumi.getter(name="backendService")
@@ -39727,6 +40404,15 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
39727
40404
  """
39728
40405
  return pulumi.get(self, "backend_service")
39729
40406
 
40407
+ @_builtins.property
40408
+ @pulumi.getter(name="mirrorPercent")
40409
+ def mirror_percent(self) -> Optional[_builtins.float]:
40410
+ """
40411
+ The percentage of requests to be mirrored to backendService.
40412
+ The value must be between 0.0 and 100.0 inclusive.
40413
+ """
40414
+ return pulumi.get(self, "mirror_percent")
40415
+
39730
40416
 
39731
40417
  @pulumi.output_type
39732
40418
  class RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy(dict):
@@ -41005,6 +41691,8 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41005
41691
  suggest = None
41006
41692
  if key == "backendService":
41007
41693
  suggest = "backend_service"
41694
+ elif key == "mirrorPercent":
41695
+ suggest = "mirror_percent"
41008
41696
 
41009
41697
  if suggest:
41010
41698
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -41018,13 +41706,18 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41018
41706
  return super().get(key, default)
41019
41707
 
41020
41708
  def __init__(__self__, *,
41021
- backend_service: _builtins.str):
41709
+ backend_service: _builtins.str,
41710
+ mirror_percent: Optional[_builtins.float] = None):
41022
41711
  """
41023
41712
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
41024
41713
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
41025
41714
  Serverless NEG backends are not currently supported as a mirrored backend service.
41715
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
41716
+ The value must be between 0.0 and 100.0 inclusive.
41026
41717
  """
41027
41718
  pulumi.set(__self__, "backend_service", backend_service)
41719
+ if mirror_percent is not None:
41720
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
41028
41721
 
41029
41722
  @_builtins.property
41030
41723
  @pulumi.getter(name="backendService")
@@ -41036,6 +41729,15 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
41036
41729
  """
41037
41730
  return pulumi.get(self, "backend_service")
41038
41731
 
41732
+ @_builtins.property
41733
+ @pulumi.getter(name="mirrorPercent")
41734
+ def mirror_percent(self) -> Optional[_builtins.float]:
41735
+ """
41736
+ The percentage of requests to be mirrored to backendService.
41737
+ The value must be between 0.0 and 100.0 inclusive.
41738
+ """
41739
+ return pulumi.get(self, "mirror_percent")
41740
+
41039
41741
 
41040
41742
  @pulumi.output_type
41041
41743
  class RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy(dict):
@@ -43168,6 +43870,8 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43168
43870
  suggest = None
43169
43871
  if key == "backendService":
43170
43872
  suggest = "backend_service"
43873
+ elif key == "mirrorPercent":
43874
+ suggest = "mirror_percent"
43171
43875
 
43172
43876
  if suggest:
43173
43877
  pulumi.log.warn(f"Key '{key}' not found in RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy. Access the value via the '{suggest}' property getter instead.")
@@ -43181,13 +43885,18 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43181
43885
  return super().get(key, default)
43182
43886
 
43183
43887
  def __init__(__self__, *,
43184
- backend_service: _builtins.str):
43888
+ backend_service: _builtins.str,
43889
+ mirror_percent: Optional[_builtins.float] = None):
43185
43890
  """
43186
43891
  :param _builtins.str backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
43187
43892
  The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.
43188
43893
  Serverless NEG backends are not currently supported as a mirrored backend service.
43894
+ :param _builtins.float mirror_percent: The percentage of requests to be mirrored to backendService.
43895
+ The value must be between 0.0 and 100.0 inclusive.
43189
43896
  """
43190
43897
  pulumi.set(__self__, "backend_service", backend_service)
43898
+ if mirror_percent is not None:
43899
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
43191
43900
 
43192
43901
  @_builtins.property
43193
43902
  @pulumi.getter(name="backendService")
@@ -43199,6 +43908,15 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
43199
43908
  """
43200
43909
  return pulumi.get(self, "backend_service")
43201
43910
 
43911
+ @_builtins.property
43912
+ @pulumi.getter(name="mirrorPercent")
43913
+ def mirror_percent(self) -> Optional[_builtins.float]:
43914
+ """
43915
+ The percentage of requests to be mirrored to backendService.
43916
+ The value must be between 0.0 and 100.0 inclusive.
43917
+ """
43918
+ return pulumi.get(self, "mirror_percent")
43919
+
43202
43920
 
43203
43921
  @pulumi.output_type
43204
43922
  class RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy(dict):
@@ -46953,6 +47671,46 @@ class RouterNatSubnetwork(dict):
46953
47671
  return pulumi.get(self, "secondary_ip_range_names")
46954
47672
 
46955
47673
 
47674
+ @pulumi.output_type
47675
+ class RouterParams(dict):
47676
+ @staticmethod
47677
+ def __key_warning(key: str):
47678
+ suggest = None
47679
+ if key == "resourceManagerTags":
47680
+ suggest = "resource_manager_tags"
47681
+
47682
+ if suggest:
47683
+ pulumi.log.warn(f"Key '{key}' not found in RouterParams. Access the value via the '{suggest}' property getter instead.")
47684
+
47685
+ def __getitem__(self, key: str) -> Any:
47686
+ RouterParams.__key_warning(key)
47687
+ return super().__getitem__(key)
47688
+
47689
+ def get(self, key: str, default = None) -> Any:
47690
+ RouterParams.__key_warning(key)
47691
+ return super().get(key, default)
47692
+
47693
+ def __init__(__self__, *,
47694
+ resource_manager_tags: Optional[Mapping[str, _builtins.str]] = None):
47695
+ """
47696
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the router. Tag keys and values have the
47697
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
47698
+ and values are in the format tagValues/456.
47699
+ """
47700
+ if resource_manager_tags is not None:
47701
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
47702
+
47703
+ @_builtins.property
47704
+ @pulumi.getter(name="resourceManagerTags")
47705
+ def resource_manager_tags(self) -> Optional[Mapping[str, _builtins.str]]:
47706
+ """
47707
+ Resource manager tags to be bound to the router. Tag keys and values have the
47708
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
47709
+ and values are in the format tagValues/456.
47710
+ """
47711
+ return pulumi.get(self, "resource_manager_tags")
47712
+
47713
+
46956
47714
  @pulumi.output_type
46957
47715
  class RouterPeerAdvertisedIpRange(dict):
46958
47716
  def __init__(__self__, *,
@@ -51467,6 +52225,52 @@ class SubnetworkLogConfig(dict):
51467
52225
  return pulumi.get(self, "metadata_fields")
51468
52226
 
51469
52227
 
52228
+ @pulumi.output_type
52229
+ class SubnetworkParams(dict):
52230
+ @staticmethod
52231
+ def __key_warning(key: str):
52232
+ suggest = None
52233
+ if key == "resourceManagerTags":
52234
+ suggest = "resource_manager_tags"
52235
+
52236
+ if suggest:
52237
+ pulumi.log.warn(f"Key '{key}' not found in SubnetworkParams. Access the value via the '{suggest}' property getter instead.")
52238
+
52239
+ def __getitem__(self, key: str) -> Any:
52240
+ SubnetworkParams.__key_warning(key)
52241
+ return super().__getitem__(key)
52242
+
52243
+ def get(self, key: str, default = None) -> Any:
52244
+ SubnetworkParams.__key_warning(key)
52245
+ return super().get(key, default)
52246
+
52247
+ def __init__(__self__, *,
52248
+ resource_manager_tags: Optional[Mapping[str, _builtins.str]] = None):
52249
+ """
52250
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the subnetwork. Tag keys and values have the
52251
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52252
+ and values are in the format tagValues/456. The field is ignored when empty.
52253
+ The field is immutable and causes resource replacement when mutated. This field is only
52254
+ set at create time and modifying this field after creation will trigger recreation.
52255
+ To apply tags to an existing resource, see the tags.TagBinding resource.
52256
+ """
52257
+ if resource_manager_tags is not None:
52258
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
52259
+
52260
+ @_builtins.property
52261
+ @pulumi.getter(name="resourceManagerTags")
52262
+ def resource_manager_tags(self) -> Optional[Mapping[str, _builtins.str]]:
52263
+ """
52264
+ Resource manager tags to be bound to the subnetwork. Tag keys and values have the
52265
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52266
+ and values are in the format tagValues/456. The field is ignored when empty.
52267
+ The field is immutable and causes resource replacement when mutated. This field is only
52268
+ set at create time and modifying this field after creation will trigger recreation.
52269
+ To apply tags to an existing resource, see the tags.TagBinding resource.
52270
+ """
52271
+ return pulumi.get(self, "resource_manager_tags")
52272
+
52273
+
51470
52274
  @pulumi.output_type
51471
52275
  class SubnetworkSecondaryIpRange(dict):
51472
52276
  @staticmethod
@@ -62575,9 +63379,6 @@ class GetForwardingRulesRuleResult(dict):
62575
63379
 
62576
63380
  The forwarded traffic must be of a type appropriate to the target object.
62577
63381
  * For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
62578
- * For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
62579
- * 'vpc-sc' - [ APIs that support VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/supported-products).
62580
- * 'all-apis' - [All supported Google APIs](https://cloud.google.com/vpc/docs/private-service-connect#supported-apis).
62581
63382
 
62582
63383
  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment.
62583
63384
  """
@@ -63107,9 +63908,6 @@ class GetForwardingRulesRuleResult(dict):
63107
63908
 
63108
63909
  The forwarded traffic must be of a type appropriate to the target object.
63109
63910
  * For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
63110
- * For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
63111
- * 'vpc-sc' - [ APIs that support VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/supported-products).
63112
- * 'all-apis' - [All supported Google APIs](https://cloud.google.com/vpc/docs/private-service-connect#supported-apis).
63113
63911
 
63114
63912
  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment.
63115
63913
  """
@@ -69428,6 +70226,114 @@ class GetRegionBackendServiceFailoverPolicyResult(dict):
69428
70226
  return pulumi.get(self, "failover_ratio")
69429
70227
 
69430
70228
 
70229
+ @pulumi.output_type
70230
+ class GetRegionBackendServiceHaPolicyResult(dict):
70231
+ def __init__(__self__, *,
70232
+ fast_ip_move: _builtins.str,
70233
+ leaders: Sequence['outputs.GetRegionBackendServiceHaPolicyLeaderResult']):
70234
+ """
70235
+ :param _builtins.str fast_ip_move: Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
70236
+ Supported values are:
70237
+
70238
+ * 'DISABLED': Fast IP Move is disabled. You can only use the haPolicy.leader API to
70239
+ update the leader.
70240
+
70241
+ * 'GARP_RA': Provides a method to very quickly define a new network endpoint as the
70242
+ leader. This method is faster than updating the leader using the
70243
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
70244
+ network endpoint that should become the new leader sends either a
70245
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
70246
+ packet (IPv6). Google Cloud immediately but temporarily associates the
70247
+ forwarding rule IP address with that VM, and both new and in-flight packets
70248
+ are quickly delivered to that VM. Possible values: ["DISABLED", "GARP_RA"]
70249
+ :param Sequence['GetRegionBackendServiceHaPolicyLeaderArgs'] leaders: Selects one of the network endpoints attached to the backend NEGs of this service as the
70250
+ active endpoint (the leader) that receives all traffic.
70251
+ """
70252
+ pulumi.set(__self__, "fast_ip_move", fast_ip_move)
70253
+ pulumi.set(__self__, "leaders", leaders)
70254
+
70255
+ @_builtins.property
70256
+ @pulumi.getter(name="fastIpMove")
70257
+ def fast_ip_move(self) -> _builtins.str:
70258
+ """
70259
+ Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
70260
+ Supported values are:
70261
+
70262
+ * 'DISABLED': Fast IP Move is disabled. You can only use the haPolicy.leader API to
70263
+ update the leader.
70264
+
70265
+ * 'GARP_RA': Provides a method to very quickly define a new network endpoint as the
70266
+ leader. This method is faster than updating the leader using the
70267
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
70268
+ network endpoint that should become the new leader sends either a
70269
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
70270
+ packet (IPv6). Google Cloud immediately but temporarily associates the
70271
+ forwarding rule IP address with that VM, and both new and in-flight packets
70272
+ are quickly delivered to that VM. Possible values: ["DISABLED", "GARP_RA"]
70273
+ """
70274
+ return pulumi.get(self, "fast_ip_move")
70275
+
70276
+ @_builtins.property
70277
+ @pulumi.getter
70278
+ def leaders(self) -> Sequence['outputs.GetRegionBackendServiceHaPolicyLeaderResult']:
70279
+ """
70280
+ Selects one of the network endpoints attached to the backend NEGs of this service as the
70281
+ active endpoint (the leader) that receives all traffic.
70282
+ """
70283
+ return pulumi.get(self, "leaders")
70284
+
70285
+
70286
+ @pulumi.output_type
70287
+ class GetRegionBackendServiceHaPolicyLeaderResult(dict):
70288
+ def __init__(__self__, *,
70289
+ backend_group: _builtins.str,
70290
+ network_endpoints: Sequence['outputs.GetRegionBackendServiceHaPolicyLeaderNetworkEndpointResult']):
70291
+ """
70292
+ :param _builtins.str backend_group: A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
70293
+ attached to.
70294
+ :param Sequence['GetRegionBackendServiceHaPolicyLeaderNetworkEndpointArgs'] network_endpoints: The network endpoint within the leader.backendGroup that is designated as the leader.
70295
+ """
70296
+ pulumi.set(__self__, "backend_group", backend_group)
70297
+ pulumi.set(__self__, "network_endpoints", network_endpoints)
70298
+
70299
+ @_builtins.property
70300
+ @pulumi.getter(name="backendGroup")
70301
+ def backend_group(self) -> _builtins.str:
70302
+ """
70303
+ A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
70304
+ attached to.
70305
+ """
70306
+ return pulumi.get(self, "backend_group")
70307
+
70308
+ @_builtins.property
70309
+ @pulumi.getter(name="networkEndpoints")
70310
+ def network_endpoints(self) -> Sequence['outputs.GetRegionBackendServiceHaPolicyLeaderNetworkEndpointResult']:
70311
+ """
70312
+ The network endpoint within the leader.backendGroup that is designated as the leader.
70313
+ """
70314
+ return pulumi.get(self, "network_endpoints")
70315
+
70316
+
70317
+ @pulumi.output_type
70318
+ class GetRegionBackendServiceHaPolicyLeaderNetworkEndpointResult(dict):
70319
+ def __init__(__self__, *,
70320
+ instance: _builtins.str):
70321
+ """
70322
+ :param _builtins.str instance: The name of the VM instance of the leader network endpoint. The instance must
70323
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
70324
+ """
70325
+ pulumi.set(__self__, "instance", instance)
70326
+
70327
+ @_builtins.property
70328
+ @pulumi.getter
70329
+ def instance(self) -> _builtins.str:
70330
+ """
70331
+ The name of the VM instance of the leader network endpoint. The instance must
70332
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
70333
+ """
70334
+ return pulumi.get(self, "instance")
70335
+
70336
+
69431
70337
  @pulumi.output_type
69432
70338
  class GetRegionBackendServiceIapResult(dict):
69433
70339
  def __init__(__self__, *,
@@ -73759,6 +74665,28 @@ class GetRouterNatSubnetworkResult(dict):
73759
74665
  return pulumi.get(self, "source_ip_ranges_to_nats")
73760
74666
 
73761
74667
 
74668
+ @pulumi.output_type
74669
+ class GetRouterParamResult(dict):
74670
+ def __init__(__self__, *,
74671
+ resource_manager_tags: Mapping[str, _builtins.str]):
74672
+ """
74673
+ :param Mapping[str, _builtins.str] resource_manager_tags: Resource manager tags to be bound to the router. Tag keys and values have the
74674
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
74675
+ and values are in the format tagValues/456.
74676
+ """
74677
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
74678
+
74679
+ @_builtins.property
74680
+ @pulumi.getter(name="resourceManagerTags")
74681
+ def resource_manager_tags(self) -> Mapping[str, _builtins.str]:
74682
+ """
74683
+ Resource manager tags to be bound to the router. Tag keys and values have the
74684
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
74685
+ and values are in the format tagValues/456.
74686
+ """
74687
+ return pulumi.get(self, "resource_manager_tags")
74688
+
74689
+
73762
74690
  @pulumi.output_type
73763
74691
  class GetRouterStatusBestRouteResult(dict):
73764
74692
  def __init__(__self__, *,
@@ -76095,6 +77023,7 @@ class GetSubnetworksSubnetworkResult(dict):
76095
77023
  ip_cidr_range: _builtins.str,
76096
77024
  name: _builtins.str,
76097
77025
  network: _builtins.str,
77026
+ network_name: _builtins.str,
76098
77027
  network_self_link: _builtins.str,
76099
77028
  private_ip_google_access: _builtins.bool,
76100
77029
  self_link: _builtins.str):
@@ -76103,6 +77032,8 @@ class GetSubnetworksSubnetworkResult(dict):
76103
77032
  :param _builtins.str ip_cidr_range: The IP address range represented as a CIDR block.
76104
77033
  :param _builtins.str name: The name of the subnetwork.
76105
77034
  :param _builtins.str network: The self link of the parent network.
77035
+ :param _builtins.str network_name: The name of the parent network computed from `network` attribute.
77036
+ :param _builtins.str network_self_link: (Deprecated) The name of the parent network computed from `network` attribute. (deprecated and will be removed in a future major release. Use `network_name` instead.)
76106
77037
  :param _builtins.bool private_ip_google_access: Whether the VMs in the subnet can access Google services without assigned external IP addresses.
76107
77038
  :param _builtins.str self_link: The self link of the subnetwork.
76108
77039
  """
@@ -76110,6 +77041,7 @@ class GetSubnetworksSubnetworkResult(dict):
76110
77041
  pulumi.set(__self__, "ip_cidr_range", ip_cidr_range)
76111
77042
  pulumi.set(__self__, "name", name)
76112
77043
  pulumi.set(__self__, "network", network)
77044
+ pulumi.set(__self__, "network_name", network_name)
76113
77045
  pulumi.set(__self__, "network_self_link", network_self_link)
76114
77046
  pulumi.set(__self__, "private_ip_google_access", private_ip_google_access)
76115
77047
  pulumi.set(__self__, "self_link", self_link)
@@ -76146,9 +77078,21 @@ class GetSubnetworksSubnetworkResult(dict):
76146
77078
  """
76147
77079
  return pulumi.get(self, "network")
76148
77080
 
77081
+ @_builtins.property
77082
+ @pulumi.getter(name="networkName")
77083
+ def network_name(self) -> _builtins.str:
77084
+ """
77085
+ The name of the parent network computed from `network` attribute.
77086
+ """
77087
+ return pulumi.get(self, "network_name")
77088
+
76149
77089
  @_builtins.property
76150
77090
  @pulumi.getter(name="networkSelfLink")
77091
+ @_utilities.deprecated("""Use `network_name` instead. This field will be removed in a future major release.""")
76151
77092
  def network_self_link(self) -> _builtins.str:
77093
+ """
77094
+ (Deprecated) The name of the parent network computed from `network` attribute. (deprecated and will be removed in a future major release. Use `network_name` instead.)
77095
+ """
76152
77096
  return pulumi.get(self, "network_self_link")
76153
77097
 
76154
77098
  @_builtins.property