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
@@ -153,12 +153,20 @@ __all__ = [
153
153
  'FirewallPolicyWithRulesPredefinedRuleMatchArgsDict',
154
154
  'FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs',
155
155
  'FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgsDict',
156
+ 'FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs',
157
+ 'FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict',
158
+ 'FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs',
159
+ 'FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict',
156
160
  'FirewallPolicyWithRulesRuleArgs',
157
161
  'FirewallPolicyWithRulesRuleArgsDict',
158
162
  'FirewallPolicyWithRulesRuleMatchArgs',
159
163
  'FirewallPolicyWithRulesRuleMatchArgsDict',
160
164
  'FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs',
161
165
  'FirewallPolicyWithRulesRuleMatchLayer4ConfigArgsDict',
166
+ 'FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs',
167
+ 'FirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict',
168
+ 'FirewallPolicyWithRulesRuleTargetSecureTagArgs',
169
+ 'FirewallPolicyWithRulesRuleTargetSecureTagArgsDict',
162
170
  'ForwardingRuleServiceDirectoryRegistrationsArgs',
163
171
  'ForwardingRuleServiceDirectoryRegistrationsArgsDict',
164
172
  'FutureReservationAggregateReservationArgs',
@@ -679,6 +687,10 @@ __all__ = [
679
687
  'PerInstanceConfigPreservedStateInternalIpArgsDict',
680
688
  'PerInstanceConfigPreservedStateInternalIpIpAddressArgs',
681
689
  'PerInstanceConfigPreservedStateInternalIpIpAddressArgsDict',
690
+ 'PreviewFeatureRolloutOperationArgs',
691
+ 'PreviewFeatureRolloutOperationArgsDict',
692
+ 'PreviewFeatureRolloutOperationRolloutInputArgs',
693
+ 'PreviewFeatureRolloutOperationRolloutInputArgsDict',
682
694
  'RegionAutoscalerAutoscalingPolicyArgs',
683
695
  'RegionAutoscalerAutoscalingPolicyArgsDict',
684
696
  'RegionAutoscalerAutoscalingPolicyCpuUtilizationArgs',
@@ -727,6 +739,12 @@ __all__ = [
727
739
  'RegionBackendServiceDynamicForwardingIpPortSelectionArgsDict',
728
740
  'RegionBackendServiceFailoverPolicyArgs',
729
741
  'RegionBackendServiceFailoverPolicyArgsDict',
742
+ 'RegionBackendServiceHaPolicyArgs',
743
+ 'RegionBackendServiceHaPolicyArgsDict',
744
+ 'RegionBackendServiceHaPolicyLeaderArgs',
745
+ 'RegionBackendServiceHaPolicyLeaderArgsDict',
746
+ 'RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs',
747
+ 'RegionBackendServiceHaPolicyLeaderNetworkEndpointArgsDict',
730
748
  'RegionBackendServiceIamBindingConditionArgs',
731
749
  'RegionBackendServiceIamBindingConditionArgsDict',
732
750
  'RegionBackendServiceIamMemberConditionArgs',
@@ -951,6 +969,10 @@ __all__ = [
951
969
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict',
952
970
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs',
953
971
  'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict',
972
+ 'RegionSecurityPolicyAdvancedOptionsConfigArgs',
973
+ 'RegionSecurityPolicyAdvancedOptionsConfigArgsDict',
974
+ 'RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs',
975
+ 'RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgsDict',
954
976
  'RegionSecurityPolicyDdosProtectionConfigArgs',
955
977
  'RegionSecurityPolicyDdosProtectionConfigArgsDict',
956
978
  'RegionSecurityPolicyRuleArgs',
@@ -1251,6 +1273,8 @@ __all__ = [
1251
1273
  'RouterNatRuleActionArgsDict',
1252
1274
  'RouterNatSubnetworkArgs',
1253
1275
  'RouterNatSubnetworkArgsDict',
1276
+ 'RouterParamsArgs',
1277
+ 'RouterParamsArgsDict',
1254
1278
  'RouterPeerAdvertisedIpRangeArgs',
1255
1279
  'RouterPeerAdvertisedIpRangeArgsDict',
1256
1280
  'RouterPeerBfdArgs',
@@ -1359,6 +1383,8 @@ __all__ = [
1359
1383
  'SubnetworkIAMMemberConditionArgsDict',
1360
1384
  'SubnetworkLogConfigArgs',
1361
1385
  'SubnetworkLogConfigArgsDict',
1386
+ 'SubnetworkParamsArgs',
1387
+ 'SubnetworkParamsArgsDict',
1362
1388
  'SubnetworkSecondaryIpRangeArgs',
1363
1389
  'SubnetworkSecondaryIpRangeArgsDict',
1364
1390
  'URLMapDefaultCustomErrorResponsePolicyArgs',
@@ -8077,6 +8103,22 @@ if not MYPY:
8077
8103
  this rule. If this field is left blank, all VMs
8078
8104
  within the organization will receive the rule.
8079
8105
  """
8106
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict']]]]
8107
+ """
8108
+ (Output)
8109
+ A list of secure tags that controls which instances the firewall rule
8110
+ applies to. If <code>targetSecureTag</code> are specified, then the
8111
+ firewall rule applies only to instances in the VPC network that have one
8112
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
8113
+ INEFFECTIVE state, then this rule will be ignored.
8114
+ <code>targetSecureTag</code> may not be set at the same time as
8115
+ <code>targetServiceAccounts</code>.
8116
+ If neither <code>targetServiceAccounts</code> nor
8117
+ <code>targetSecureTag</code> are specified, the firewall rule applies
8118
+ to all instances on the specified network.
8119
+ Maximum number of target secure tags allowed is 256.
8120
+ Structure is documented below.
8121
+ """
8080
8122
  target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
8081
8123
  """
8082
8124
  (Output)
@@ -8105,6 +8147,7 @@ class FirewallPolicyWithRulesPredefinedRuleArgs:
8105
8147
  rule_name: Optional[pulumi.Input[_builtins.str]] = None,
8106
8148
  security_profile_group: Optional[pulumi.Input[_builtins.str]] = None,
8107
8149
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8150
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]] = None,
8108
8151
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8109
8152
  tls_inspect: Optional[pulumi.Input[_builtins.bool]] = None):
8110
8153
  """
@@ -8143,6 +8186,19 @@ class FirewallPolicyWithRulesPredefinedRuleArgs:
8143
8186
  This field allows you to control which network's VMs get
8144
8187
  this rule. If this field is left blank, all VMs
8145
8188
  within the organization will receive the rule.
8189
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]] target_secure_tags: (Output)
8190
+ A list of secure tags that controls which instances the firewall rule
8191
+ applies to. If <code>targetSecureTag</code> are specified, then the
8192
+ firewall rule applies only to instances in the VPC network that have one
8193
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
8194
+ INEFFECTIVE state, then this rule will be ignored.
8195
+ <code>targetSecureTag</code> may not be set at the same time as
8196
+ <code>targetServiceAccounts</code>.
8197
+ If neither <code>targetServiceAccounts</code> nor
8198
+ <code>targetSecureTag</code> are specified, the firewall rule applies
8199
+ to all instances on the specified network.
8200
+ Maximum number of target secure tags allowed is 256.
8201
+ Structure is documented below.
8146
8202
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] target_service_accounts: (Output)
8147
8203
  A list of service accounts indicating the sets of
8148
8204
  instances that are applied with this rule.
@@ -8170,6 +8226,8 @@ class FirewallPolicyWithRulesPredefinedRuleArgs:
8170
8226
  pulumi.set(__self__, "security_profile_group", security_profile_group)
8171
8227
  if target_resources is not None:
8172
8228
  pulumi.set(__self__, "target_resources", target_resources)
8229
+ if target_secure_tags is not None:
8230
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
8173
8231
  if target_service_accounts is not None:
8174
8232
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
8175
8233
  if tls_inspect is not None:
@@ -8320,6 +8378,30 @@ class FirewallPolicyWithRulesPredefinedRuleArgs:
8320
8378
  def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
8321
8379
  pulumi.set(self, "target_resources", value)
8322
8380
 
8381
+ @_builtins.property
8382
+ @pulumi.getter(name="targetSecureTags")
8383
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]:
8384
+ """
8385
+ (Output)
8386
+ A list of secure tags that controls which instances the firewall rule
8387
+ applies to. If <code>targetSecureTag</code> are specified, then the
8388
+ firewall rule applies only to instances in the VPC network that have one
8389
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
8390
+ INEFFECTIVE state, then this rule will be ignored.
8391
+ <code>targetSecureTag</code> may not be set at the same time as
8392
+ <code>targetServiceAccounts</code>.
8393
+ If neither <code>targetServiceAccounts</code> nor
8394
+ <code>targetSecureTag</code> are specified, the firewall rule applies
8395
+ to all instances on the specified network.
8396
+ Maximum number of target secure tags allowed is 256.
8397
+ Structure is documented below.
8398
+ """
8399
+ return pulumi.get(self, "target_secure_tags")
8400
+
8401
+ @target_secure_tags.setter
8402
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs']]]]):
8403
+ pulumi.set(self, "target_secure_tags", value)
8404
+
8323
8405
  @_builtins.property
8324
8406
  @pulumi.getter(name="targetServiceAccounts")
8325
8407
  def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -8382,9 +8464,6 @@ if not MYPY:
8382
8464
  """
8383
8465
  Pairs of IP protocols and ports that the rule should match.
8384
8466
  Structure is documented below.
8385
-
8386
-
8387
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8388
8467
  """
8389
8468
  src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
8390
8469
  """
@@ -8408,6 +8487,15 @@ if not MYPY:
8408
8487
  ISO 3166 alpha-2 country codes. ex."US"
8409
8488
  Maximum number of source region codes allowed is 5000.
8410
8489
  """
8490
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict']]]]
8491
+ """
8492
+ List of secure tag values, which should be matched at the source
8493
+ of the traffic.
8494
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
8495
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
8496
+ Maximum number of source tag values allowed is 256.
8497
+ Structure is documented below.
8498
+ """
8411
8499
  src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
8412
8500
  """
8413
8501
  Names of Network Threat Intelligence lists.
@@ -8429,6 +8517,7 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8429
8517
  src_fqdns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8430
8518
  src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8431
8519
  src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8520
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]] = None,
8432
8521
  src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
8433
8522
  """
8434
8523
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
@@ -8445,9 +8534,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8445
8534
  The IPs in these lists will be matched against traffic destination.
8446
8535
  :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
8447
8536
  Structure is documented below.
8448
-
8449
-
8450
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8451
8537
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] src_address_groups: Address groups which should be matched against the traffic source.
8452
8538
  Maximum number of source address groups is 10.
8453
8539
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -8458,6 +8544,12 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8458
8544
  of traffic. Should be specified as 2 letter country code defined as per
8459
8545
  ISO 3166 alpha-2 country codes. ex."US"
8460
8546
  Maximum number of source region codes allowed is 5000.
8547
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
8548
+ of the traffic.
8549
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
8550
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
8551
+ Maximum number of source tag values allowed is 256.
8552
+ Structure is documented below.
8461
8553
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
8462
8554
  The IPs in these lists will be matched against traffic source.
8463
8555
  """
@@ -8481,6 +8573,8 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8481
8573
  pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
8482
8574
  if src_region_codes is not None:
8483
8575
  pulumi.set(__self__, "src_region_codes", src_region_codes)
8576
+ if src_secure_tags is not None:
8577
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
8484
8578
  if src_threat_intelligences is not None:
8485
8579
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
8486
8580
 
@@ -8557,9 +8651,6 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8557
8651
  """
8558
8652
  Pairs of IP protocols and ports that the rule should match.
8559
8653
  Structure is documented below.
8560
-
8561
-
8562
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8563
8654
  """
8564
8655
  return pulumi.get(self, "layer4_configs")
8565
8656
 
@@ -8621,6 +8712,23 @@ class FirewallPolicyWithRulesPredefinedRuleMatchArgs:
8621
8712
  def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
8622
8713
  pulumi.set(self, "src_region_codes", value)
8623
8714
 
8715
+ @_builtins.property
8716
+ @pulumi.getter(name="srcSecureTags")
8717
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]:
8718
+ """
8719
+ List of secure tag values, which should be matched at the source
8720
+ of the traffic.
8721
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
8722
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
8723
+ Maximum number of source tag values allowed is 256.
8724
+ Structure is documented below.
8725
+ """
8726
+ return pulumi.get(self, "src_secure_tags")
8727
+
8728
+ @src_secure_tags.setter
8729
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs']]]]):
8730
+ pulumi.set(self, "src_secure_tags", value)
8731
+
8624
8732
  @_builtins.property
8625
8733
  @pulumi.getter(name="srcThreatIntelligences")
8626
8734
  def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -8720,6 +8828,140 @@ class FirewallPolicyWithRulesPredefinedRuleMatchLayer4ConfigArgs:
8720
8828
  pulumi.set(self, "ports", value)
8721
8829
 
8722
8830
 
8831
+ if not MYPY:
8832
+ class FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict(TypedDict):
8833
+ name: NotRequired[pulumi.Input[_builtins.str]]
8834
+ """
8835
+ Name of the secure tag, created with TagManager's TagValue API.
8836
+ @pattern tagValues/[0-9]+
8837
+ """
8838
+ state: NotRequired[pulumi.Input[_builtins.str]]
8839
+ """
8840
+ (Output)
8841
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8842
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8843
+ or its network is deleted.
8844
+
8845
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8846
+ """
8847
+ elif False:
8848
+ FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
8849
+
8850
+ @pulumi.input_type
8851
+ class FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTagArgs:
8852
+ def __init__(__self__, *,
8853
+ name: Optional[pulumi.Input[_builtins.str]] = None,
8854
+ state: Optional[pulumi.Input[_builtins.str]] = None):
8855
+ """
8856
+ :param pulumi.Input[_builtins.str] name: Name of the secure tag, created with TagManager's TagValue API.
8857
+ @pattern tagValues/[0-9]+
8858
+ :param pulumi.Input[_builtins.str] state: (Output)
8859
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8860
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8861
+ or its network is deleted.
8862
+
8863
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8864
+ """
8865
+ if name is not None:
8866
+ pulumi.set(__self__, "name", name)
8867
+ if state is not None:
8868
+ pulumi.set(__self__, "state", state)
8869
+
8870
+ @_builtins.property
8871
+ @pulumi.getter
8872
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
8873
+ """
8874
+ Name of the secure tag, created with TagManager's TagValue API.
8875
+ @pattern tagValues/[0-9]+
8876
+ """
8877
+ return pulumi.get(self, "name")
8878
+
8879
+ @name.setter
8880
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
8881
+ pulumi.set(self, "name", value)
8882
+
8883
+ @_builtins.property
8884
+ @pulumi.getter
8885
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
8886
+ """
8887
+ (Output)
8888
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8889
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8890
+ or its network is deleted.
8891
+
8892
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
8893
+ """
8894
+ return pulumi.get(self, "state")
8895
+
8896
+ @state.setter
8897
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
8898
+ pulumi.set(self, "state", value)
8899
+
8900
+
8901
+ if not MYPY:
8902
+ class FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict(TypedDict):
8903
+ name: NotRequired[pulumi.Input[_builtins.str]]
8904
+ """
8905
+ Name of the secure tag, created with TagManager's TagValue API.
8906
+ @pattern tagValues/[0-9]+
8907
+ """
8908
+ state: NotRequired[pulumi.Input[_builtins.str]]
8909
+ """
8910
+ (Output)
8911
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8912
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8913
+ or its network is deleted.
8914
+ """
8915
+ elif False:
8916
+ FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
8917
+
8918
+ @pulumi.input_type
8919
+ class FirewallPolicyWithRulesPredefinedRuleTargetSecureTagArgs:
8920
+ def __init__(__self__, *,
8921
+ name: Optional[pulumi.Input[_builtins.str]] = None,
8922
+ state: Optional[pulumi.Input[_builtins.str]] = None):
8923
+ """
8924
+ :param pulumi.Input[_builtins.str] name: Name of the secure tag, created with TagManager's TagValue API.
8925
+ @pattern tagValues/[0-9]+
8926
+ :param pulumi.Input[_builtins.str] state: (Output)
8927
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8928
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8929
+ or its network is deleted.
8930
+ """
8931
+ if name is not None:
8932
+ pulumi.set(__self__, "name", name)
8933
+ if state is not None:
8934
+ pulumi.set(__self__, "state", state)
8935
+
8936
+ @_builtins.property
8937
+ @pulumi.getter
8938
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
8939
+ """
8940
+ Name of the secure tag, created with TagManager's TagValue API.
8941
+ @pattern tagValues/[0-9]+
8942
+ """
8943
+ return pulumi.get(self, "name")
8944
+
8945
+ @name.setter
8946
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
8947
+ pulumi.set(self, "name", value)
8948
+
8949
+ @_builtins.property
8950
+ @pulumi.getter
8951
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
8952
+ """
8953
+ (Output)
8954
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
8955
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
8956
+ or its network is deleted.
8957
+ """
8958
+ return pulumi.get(self, "state")
8959
+
8960
+ @state.setter
8961
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
8962
+ pulumi.set(self, "state", value)
8963
+
8964
+
8723
8965
  if not MYPY:
8724
8966
  class FirewallPolicyWithRulesRuleArgsDict(TypedDict):
8725
8967
  action: pulumi.Input[_builtins.str]
@@ -8779,6 +9021,21 @@ if not MYPY:
8779
9021
  this rule. If this field is left blank, all VMs
8780
9022
  within the organization will receive the rule.
8781
9023
  """
9024
+ target_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleTargetSecureTagArgsDict']]]]
9025
+ """
9026
+ A list of secure tags that controls which instances the firewall rule
9027
+ applies to. If <code>targetSecureTag</code> are specified, then the
9028
+ firewall rule applies only to instances in the VPC network that have one
9029
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
9030
+ INEFFECTIVE state, then this rule will be ignored.
9031
+ <code>targetSecureTag</code> may not be set at the same time as
9032
+ <code>targetServiceAccounts</code>.
9033
+ If neither <code>targetServiceAccounts</code> nor
9034
+ <code>targetSecureTag</code> are specified, the firewall rule applies
9035
+ to all instances on the specified network.
9036
+ Maximum number of target secure tags allowed is 256.
9037
+ Structure is documented below.
9038
+ """
8782
9039
  target_service_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
8783
9040
  """
8784
9041
  A list of service accounts indicating the sets of
@@ -8805,6 +9062,7 @@ class FirewallPolicyWithRulesRuleArgs:
8805
9062
  rule_name: Optional[pulumi.Input[_builtins.str]] = None,
8806
9063
  security_profile_group: Optional[pulumi.Input[_builtins.str]] = None,
8807
9064
  target_resources: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
9065
+ target_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleTargetSecureTagArgs']]]] = None,
8808
9066
  target_service_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
8809
9067
  tls_inspect: Optional[pulumi.Input[_builtins.bool]] = None):
8810
9068
  """
@@ -8835,6 +9093,18 @@ class FirewallPolicyWithRulesRuleArgs:
8835
9093
  This field allows you to control which network's VMs get
8836
9094
  this rule. If this field is left blank, all VMs
8837
9095
  within the organization will receive the rule.
9096
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleTargetSecureTagArgs']]] target_secure_tags: A list of secure tags that controls which instances the firewall rule
9097
+ applies to. If <code>targetSecureTag</code> are specified, then the
9098
+ firewall rule applies only to instances in the VPC network that have one
9099
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
9100
+ INEFFECTIVE state, then this rule will be ignored.
9101
+ <code>targetSecureTag</code> may not be set at the same time as
9102
+ <code>targetServiceAccounts</code>.
9103
+ If neither <code>targetServiceAccounts</code> nor
9104
+ <code>targetSecureTag</code> are specified, the firewall rule applies
9105
+ to all instances on the specified network.
9106
+ Maximum number of target secure tags allowed is 256.
9107
+ Structure is documented below.
8838
9108
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] target_service_accounts: A list of service accounts indicating the sets of
8839
9109
  instances that are applied with this rule.
8840
9110
  :param pulumi.Input[_builtins.bool] tls_inspect: Boolean flag indicating if the traffic should be TLS decrypted.
@@ -8857,6 +9127,8 @@ class FirewallPolicyWithRulesRuleArgs:
8857
9127
  pulumi.set(__self__, "security_profile_group", security_profile_group)
8858
9128
  if target_resources is not None:
8859
9129
  pulumi.set(__self__, "target_resources", target_resources)
9130
+ if target_secure_tags is not None:
9131
+ pulumi.set(__self__, "target_secure_tags", target_secure_tags)
8860
9132
  if target_service_accounts is not None:
8861
9133
  pulumi.set(__self__, "target_service_accounts", target_service_accounts)
8862
9134
  if tls_inspect is not None:
@@ -8999,6 +9271,29 @@ class FirewallPolicyWithRulesRuleArgs:
8999
9271
  def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
9000
9272
  pulumi.set(self, "target_resources", value)
9001
9273
 
9274
+ @_builtins.property
9275
+ @pulumi.getter(name="targetSecureTags")
9276
+ def target_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]:
9277
+ """
9278
+ A list of secure tags that controls which instances the firewall rule
9279
+ applies to. If <code>targetSecureTag</code> are specified, then the
9280
+ firewall rule applies only to instances in the VPC network that have one
9281
+ of those EFFECTIVE secure tags, if all the target_secure_tag are in
9282
+ INEFFECTIVE state, then this rule will be ignored.
9283
+ <code>targetSecureTag</code> may not be set at the same time as
9284
+ <code>targetServiceAccounts</code>.
9285
+ If neither <code>targetServiceAccounts</code> nor
9286
+ <code>targetSecureTag</code> are specified, the firewall rule applies
9287
+ to all instances on the specified network.
9288
+ Maximum number of target secure tags allowed is 256.
9289
+ Structure is documented below.
9290
+ """
9291
+ return pulumi.get(self, "target_secure_tags")
9292
+
9293
+ @target_secure_tags.setter
9294
+ def target_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleTargetSecureTagArgs']]]]):
9295
+ pulumi.set(self, "target_secure_tags", value)
9296
+
9002
9297
  @_builtins.property
9003
9298
  @pulumi.getter(name="targetServiceAccounts")
9004
9299
  def target_service_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -9032,9 +9327,6 @@ if not MYPY:
9032
9327
  """
9033
9328
  Pairs of IP protocols and ports that the rule should match.
9034
9329
  Structure is documented below.
9035
-
9036
-
9037
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9038
9330
  """
9039
9331
  dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
9040
9332
  """
@@ -9099,6 +9391,15 @@ if not MYPY:
9099
9391
  ISO 3166 alpha-2 country codes. ex."US"
9100
9392
  Maximum number of source region codes allowed is 5000.
9101
9393
  """
9394
+ src_secure_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict']]]]
9395
+ """
9396
+ List of secure tag values, which should be matched at the source
9397
+ of the traffic.
9398
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
9399
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
9400
+ Maximum number of source tag values allowed is 256.
9401
+ Structure is documented below.
9402
+ """
9102
9403
  src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
9103
9404
  """
9104
9405
  Names of Network Threat Intelligence lists.
@@ -9123,13 +9424,11 @@ class FirewallPolicyWithRulesRuleMatchArgs:
9123
9424
  src_network_scope: Optional[pulumi.Input[_builtins.str]] = None,
9124
9425
  src_networks: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
9125
9426
  src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
9427
+ src_secure_tags: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]] = None,
9126
9428
  src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
9127
9429
  """
9128
9430
  :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
9129
9431
  Structure is documented below.
9130
-
9131
-
9132
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9133
9432
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] dest_address_groups: Address groups which should be matched against the traffic destination.
9134
9433
  Maximum number of destination address groups is 10.
9135
9434
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against
@@ -9157,6 +9456,12 @@ class FirewallPolicyWithRulesRuleMatchArgs:
9157
9456
  of traffic. Should be specified as 2 letter country code defined as per
9158
9457
  ISO 3166 alpha-2 country codes. ex."US"
9159
9458
  Maximum number of source region codes allowed is 5000.
9459
+ :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]] src_secure_tags: List of secure tag values, which should be matched at the source
9460
+ of the traffic.
9461
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
9462
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
9463
+ Maximum number of source tag values allowed is 256.
9464
+ Structure is documented below.
9160
9465
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] src_threat_intelligences: Names of Network Threat Intelligence lists.
9161
9466
  The IPs in these lists will be matched against traffic source.
9162
9467
  """
@@ -9185,6 +9490,8 @@ class FirewallPolicyWithRulesRuleMatchArgs:
9185
9490
  pulumi.set(__self__, "src_networks", src_networks)
9186
9491
  if src_region_codes is not None:
9187
9492
  pulumi.set(__self__, "src_region_codes", src_region_codes)
9493
+ if src_secure_tags is not None:
9494
+ pulumi.set(__self__, "src_secure_tags", src_secure_tags)
9188
9495
  if src_threat_intelligences is not None:
9189
9496
  pulumi.set(__self__, "src_threat_intelligences", src_threat_intelligences)
9190
9497
 
@@ -9194,9 +9501,6 @@ class FirewallPolicyWithRulesRuleMatchArgs:
9194
9501
  """
9195
9502
  Pairs of IP protocols and ports that the rule should match.
9196
9503
  Structure is documented below.
9197
-
9198
-
9199
- <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9200
9504
  """
9201
9505
  return pulumi.get(self, "layer4_configs")
9202
9506
 
@@ -9363,6 +9667,23 @@ class FirewallPolicyWithRulesRuleMatchArgs:
9363
9667
  def src_region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
9364
9668
  pulumi.set(self, "src_region_codes", value)
9365
9669
 
9670
+ @_builtins.property
9671
+ @pulumi.getter(name="srcSecureTags")
9672
+ def src_secure_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]:
9673
+ """
9674
+ List of secure tag values, which should be matched at the source
9675
+ of the traffic.
9676
+ For INGRESS rule, if all the <code>srcSecureTag</code> are INEFFECTIVE,
9677
+ and there is no <code>srcIpRange</code>, this rule will be ignored.
9678
+ Maximum number of source tag values allowed is 256.
9679
+ Structure is documented below.
9680
+ """
9681
+ return pulumi.get(self, "src_secure_tags")
9682
+
9683
+ @src_secure_tags.setter
9684
+ def src_secure_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs']]]]):
9685
+ pulumi.set(self, "src_secure_tags", value)
9686
+
9366
9687
  @_builtins.property
9367
9688
  @pulumi.getter(name="srcThreatIntelligences")
9368
9689
  def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -9461,6 +9782,140 @@ class FirewallPolicyWithRulesRuleMatchLayer4ConfigArgs:
9461
9782
  pulumi.set(self, "ports", value)
9462
9783
 
9463
9784
 
9785
+ if not MYPY:
9786
+ class FirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict(TypedDict):
9787
+ name: NotRequired[pulumi.Input[_builtins.str]]
9788
+ """
9789
+ Name of the secure tag, created with TagManager's TagValue API.
9790
+ @pattern tagValues/[0-9]+
9791
+ """
9792
+ state: NotRequired[pulumi.Input[_builtins.str]]
9793
+ """
9794
+ (Output)
9795
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9796
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9797
+ or its network is deleted.
9798
+
9799
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9800
+ """
9801
+ elif False:
9802
+ FirewallPolicyWithRulesRuleMatchSrcSecureTagArgsDict: TypeAlias = Mapping[str, Any]
9803
+
9804
+ @pulumi.input_type
9805
+ class FirewallPolicyWithRulesRuleMatchSrcSecureTagArgs:
9806
+ def __init__(__self__, *,
9807
+ name: Optional[pulumi.Input[_builtins.str]] = None,
9808
+ state: Optional[pulumi.Input[_builtins.str]] = None):
9809
+ """
9810
+ :param pulumi.Input[_builtins.str] name: Name of the secure tag, created with TagManager's TagValue API.
9811
+ @pattern tagValues/[0-9]+
9812
+ :param pulumi.Input[_builtins.str] state: (Output)
9813
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9814
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9815
+ or its network is deleted.
9816
+
9817
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9818
+ """
9819
+ if name is not None:
9820
+ pulumi.set(__self__, "name", name)
9821
+ if state is not None:
9822
+ pulumi.set(__self__, "state", state)
9823
+
9824
+ @_builtins.property
9825
+ @pulumi.getter
9826
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
9827
+ """
9828
+ Name of the secure tag, created with TagManager's TagValue API.
9829
+ @pattern tagValues/[0-9]+
9830
+ """
9831
+ return pulumi.get(self, "name")
9832
+
9833
+ @name.setter
9834
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
9835
+ pulumi.set(self, "name", value)
9836
+
9837
+ @_builtins.property
9838
+ @pulumi.getter
9839
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
9840
+ """
9841
+ (Output)
9842
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9843
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9844
+ or its network is deleted.
9845
+
9846
+ <a name="nested_rule_rule_match_layer4_config"></a>The `layer4_config` block supports:
9847
+ """
9848
+ return pulumi.get(self, "state")
9849
+
9850
+ @state.setter
9851
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
9852
+ pulumi.set(self, "state", value)
9853
+
9854
+
9855
+ if not MYPY:
9856
+ class FirewallPolicyWithRulesRuleTargetSecureTagArgsDict(TypedDict):
9857
+ name: NotRequired[pulumi.Input[_builtins.str]]
9858
+ """
9859
+ Name of the secure tag, created with TagManager's TagValue API.
9860
+ @pattern tagValues/[0-9]+
9861
+ """
9862
+ state: NotRequired[pulumi.Input[_builtins.str]]
9863
+ """
9864
+ (Output)
9865
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9866
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9867
+ or its network is deleted.
9868
+ """
9869
+ elif False:
9870
+ FirewallPolicyWithRulesRuleTargetSecureTagArgsDict: TypeAlias = Mapping[str, Any]
9871
+
9872
+ @pulumi.input_type
9873
+ class FirewallPolicyWithRulesRuleTargetSecureTagArgs:
9874
+ def __init__(__self__, *,
9875
+ name: Optional[pulumi.Input[_builtins.str]] = None,
9876
+ state: Optional[pulumi.Input[_builtins.str]] = None):
9877
+ """
9878
+ :param pulumi.Input[_builtins.str] name: Name of the secure tag, created with TagManager's TagValue API.
9879
+ @pattern tagValues/[0-9]+
9880
+ :param pulumi.Input[_builtins.str] state: (Output)
9881
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9882
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9883
+ or its network is deleted.
9884
+ """
9885
+ if name is not None:
9886
+ pulumi.set(__self__, "name", name)
9887
+ if state is not None:
9888
+ pulumi.set(__self__, "state", state)
9889
+
9890
+ @_builtins.property
9891
+ @pulumi.getter
9892
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
9893
+ """
9894
+ Name of the secure tag, created with TagManager's TagValue API.
9895
+ @pattern tagValues/[0-9]+
9896
+ """
9897
+ return pulumi.get(self, "name")
9898
+
9899
+ @name.setter
9900
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
9901
+ pulumi.set(self, "name", value)
9902
+
9903
+ @_builtins.property
9904
+ @pulumi.getter
9905
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
9906
+ """
9907
+ (Output)
9908
+ [Output Only] State of the secure tag, either `EFFECTIVE` or
9909
+ `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted
9910
+ or its network is deleted.
9911
+ """
9912
+ return pulumi.get(self, "state")
9913
+
9914
+ @state.setter
9915
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
9916
+ pulumi.set(self, "state", value)
9917
+
9918
+
9464
9919
  if not MYPY:
9465
9920
  class ForwardingRuleServiceDirectoryRegistrationsArgsDict(TypedDict):
9466
9921
  namespace: NotRequired[pulumi.Input[_builtins.str]]
@@ -34527,6 +34982,75 @@ class PerInstanceConfigPreservedStateInternalIpIpAddressArgs:
34527
34982
  pulumi.set(self, "address", value)
34528
34983
 
34529
34984
 
34985
+ if not MYPY:
34986
+ class PreviewFeatureRolloutOperationArgsDict(TypedDict):
34987
+ rollout_input: NotRequired[pulumi.Input['PreviewFeatureRolloutOperationRolloutInputArgsDict']]
34988
+ """
34989
+ The input for the rollout operation.
34990
+ Structure is documented below.
34991
+ """
34992
+ elif False:
34993
+ PreviewFeatureRolloutOperationArgsDict: TypeAlias = Mapping[str, Any]
34994
+
34995
+ @pulumi.input_type
34996
+ class PreviewFeatureRolloutOperationArgs:
34997
+ def __init__(__self__, *,
34998
+ rollout_input: Optional[pulumi.Input['PreviewFeatureRolloutOperationRolloutInputArgs']] = None):
34999
+ """
35000
+ :param pulumi.Input['PreviewFeatureRolloutOperationRolloutInputArgs'] rollout_input: The input for the rollout operation.
35001
+ Structure is documented below.
35002
+ """
35003
+ if rollout_input is not None:
35004
+ pulumi.set(__self__, "rollout_input", rollout_input)
35005
+
35006
+ @_builtins.property
35007
+ @pulumi.getter(name="rolloutInput")
35008
+ def rollout_input(self) -> Optional[pulumi.Input['PreviewFeatureRolloutOperationRolloutInputArgs']]:
35009
+ """
35010
+ The input for the rollout operation.
35011
+ Structure is documented below.
35012
+ """
35013
+ return pulumi.get(self, "rollout_input")
35014
+
35015
+ @rollout_input.setter
35016
+ def rollout_input(self, value: Optional[pulumi.Input['PreviewFeatureRolloutOperationRolloutInputArgs']]):
35017
+ pulumi.set(self, "rollout_input", value)
35018
+
35019
+
35020
+ if not MYPY:
35021
+ class PreviewFeatureRolloutOperationRolloutInputArgsDict(TypedDict):
35022
+ predefined_rollout_plan: pulumi.Input[_builtins.str]
35023
+ """
35024
+ Predefined rollout plans.
35025
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
35026
+ """
35027
+ elif False:
35028
+ PreviewFeatureRolloutOperationRolloutInputArgsDict: TypeAlias = Mapping[str, Any]
35029
+
35030
+ @pulumi.input_type
35031
+ class PreviewFeatureRolloutOperationRolloutInputArgs:
35032
+ def __init__(__self__, *,
35033
+ predefined_rollout_plan: pulumi.Input[_builtins.str]):
35034
+ """
35035
+ :param pulumi.Input[_builtins.str] predefined_rollout_plan: Predefined rollout plans.
35036
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
35037
+ """
35038
+ pulumi.set(__self__, "predefined_rollout_plan", predefined_rollout_plan)
35039
+
35040
+ @_builtins.property
35041
+ @pulumi.getter(name="predefinedRolloutPlan")
35042
+ def predefined_rollout_plan(self) -> pulumi.Input[_builtins.str]:
35043
+ """
35044
+ Predefined rollout plans.
35045
+ Possible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.
35046
+ """
35047
+ return pulumi.get(self, "predefined_rollout_plan")
35048
+
35049
+ @predefined_rollout_plan.setter
35050
+ def predefined_rollout_plan(self, value: pulumi.Input[_builtins.str]):
35051
+ pulumi.set(self, "predefined_rollout_plan", value)
35052
+
35053
+
34530
35054
  if not MYPY:
34531
35055
  class RegionAutoscalerAutoscalingPolicyArgsDict(TypedDict):
34532
35056
  max_replicas: pulumi.Input[_builtins.int]
@@ -37472,6 +37996,193 @@ class RegionBackendServiceFailoverPolicyArgs:
37472
37996
  pulumi.set(self, "failover_ratio", value)
37473
37997
 
37474
37998
 
37999
+ if not MYPY:
38000
+ class RegionBackendServiceHaPolicyArgsDict(TypedDict):
38001
+ fast_ip_move: NotRequired[pulumi.Input[_builtins.str]]
38002
+ """
38003
+ Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
38004
+ Supported values are:
38005
+ * `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to
38006
+ update the leader.
38007
+ * `GARP_RA`: Provides a method to very quickly define a new network endpoint as the
38008
+ leader. This method is faster than updating the leader using the
38009
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
38010
+ network endpoint that should become the new leader sends either a
38011
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
38012
+ packet (IPv6). Google Cloud immediately but temporarily associates the
38013
+ forwarding rule IP address with that VM, and both new and in-flight packets
38014
+ are quickly delivered to that VM.
38015
+ Possible values are: `DISABLED`, `GARP_RA`.
38016
+ """
38017
+ leader: NotRequired[pulumi.Input['RegionBackendServiceHaPolicyLeaderArgsDict']]
38018
+ """
38019
+ Selects one of the network endpoints attached to the backend NEGs of this service as the
38020
+ active endpoint (the leader) that receives all traffic.
38021
+ Structure is documented below.
38022
+ """
38023
+ elif False:
38024
+ RegionBackendServiceHaPolicyArgsDict: TypeAlias = Mapping[str, Any]
38025
+
38026
+ @pulumi.input_type
38027
+ class RegionBackendServiceHaPolicyArgs:
38028
+ def __init__(__self__, *,
38029
+ fast_ip_move: Optional[pulumi.Input[_builtins.str]] = None,
38030
+ leader: Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderArgs']] = None):
38031
+ """
38032
+ :param pulumi.Input[_builtins.str] fast_ip_move: Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
38033
+ Supported values are:
38034
+ * `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to
38035
+ update the leader.
38036
+ * `GARP_RA`: Provides a method to very quickly define a new network endpoint as the
38037
+ leader. This method is faster than updating the leader using the
38038
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
38039
+ network endpoint that should become the new leader sends either a
38040
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
38041
+ packet (IPv6). Google Cloud immediately but temporarily associates the
38042
+ forwarding rule IP address with that VM, and both new and in-flight packets
38043
+ are quickly delivered to that VM.
38044
+ Possible values are: `DISABLED`, `GARP_RA`.
38045
+ :param pulumi.Input['RegionBackendServiceHaPolicyLeaderArgs'] leader: Selects one of the network endpoints attached to the backend NEGs of this service as the
38046
+ active endpoint (the leader) that receives all traffic.
38047
+ Structure is documented below.
38048
+ """
38049
+ if fast_ip_move is not None:
38050
+ pulumi.set(__self__, "fast_ip_move", fast_ip_move)
38051
+ if leader is not None:
38052
+ pulumi.set(__self__, "leader", leader)
38053
+
38054
+ @_builtins.property
38055
+ @pulumi.getter(name="fastIpMove")
38056
+ def fast_ip_move(self) -> Optional[pulumi.Input[_builtins.str]]:
38057
+ """
38058
+ Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.
38059
+ Supported values are:
38060
+ * `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to
38061
+ update the leader.
38062
+ * `GARP_RA`: Provides a method to very quickly define a new network endpoint as the
38063
+ leader. This method is faster than updating the leader using the
38064
+ haPolicy.leader API. Fast IP move works as follows: The VM hosting the
38065
+ network endpoint that should become the new leader sends either a
38066
+ Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)
38067
+ packet (IPv6). Google Cloud immediately but temporarily associates the
38068
+ forwarding rule IP address with that VM, and both new and in-flight packets
38069
+ are quickly delivered to that VM.
38070
+ Possible values are: `DISABLED`, `GARP_RA`.
38071
+ """
38072
+ return pulumi.get(self, "fast_ip_move")
38073
+
38074
+ @fast_ip_move.setter
38075
+ def fast_ip_move(self, value: Optional[pulumi.Input[_builtins.str]]):
38076
+ pulumi.set(self, "fast_ip_move", value)
38077
+
38078
+ @_builtins.property
38079
+ @pulumi.getter
38080
+ def leader(self) -> Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderArgs']]:
38081
+ """
38082
+ Selects one of the network endpoints attached to the backend NEGs of this service as the
38083
+ active endpoint (the leader) that receives all traffic.
38084
+ Structure is documented below.
38085
+ """
38086
+ return pulumi.get(self, "leader")
38087
+
38088
+ @leader.setter
38089
+ def leader(self, value: Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderArgs']]):
38090
+ pulumi.set(self, "leader", value)
38091
+
38092
+
38093
+ if not MYPY:
38094
+ class RegionBackendServiceHaPolicyLeaderArgsDict(TypedDict):
38095
+ backend_group: NotRequired[pulumi.Input[_builtins.str]]
38096
+ """
38097
+ A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
38098
+ attached to.
38099
+ """
38100
+ network_endpoint: NotRequired[pulumi.Input['RegionBackendServiceHaPolicyLeaderNetworkEndpointArgsDict']]
38101
+ """
38102
+ The network endpoint within the leader.backendGroup that is designated as the leader.
38103
+ Structure is documented below.
38104
+ """
38105
+ elif False:
38106
+ RegionBackendServiceHaPolicyLeaderArgsDict: TypeAlias = Mapping[str, Any]
38107
+
38108
+ @pulumi.input_type
38109
+ class RegionBackendServiceHaPolicyLeaderArgs:
38110
+ def __init__(__self__, *,
38111
+ backend_group: Optional[pulumi.Input[_builtins.str]] = None,
38112
+ network_endpoint: Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs']] = None):
38113
+ """
38114
+ :param pulumi.Input[_builtins.str] backend_group: A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
38115
+ attached to.
38116
+ :param pulumi.Input['RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs'] network_endpoint: The network endpoint within the leader.backendGroup that is designated as the leader.
38117
+ Structure is documented below.
38118
+ """
38119
+ if backend_group is not None:
38120
+ pulumi.set(__self__, "backend_group", backend_group)
38121
+ if network_endpoint is not None:
38122
+ pulumi.set(__self__, "network_endpoint", network_endpoint)
38123
+
38124
+ @_builtins.property
38125
+ @pulumi.getter(name="backendGroup")
38126
+ def backend_group(self) -> Optional[pulumi.Input[_builtins.str]]:
38127
+ """
38128
+ A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is
38129
+ attached to.
38130
+ """
38131
+ return pulumi.get(self, "backend_group")
38132
+
38133
+ @backend_group.setter
38134
+ def backend_group(self, value: Optional[pulumi.Input[_builtins.str]]):
38135
+ pulumi.set(self, "backend_group", value)
38136
+
38137
+ @_builtins.property
38138
+ @pulumi.getter(name="networkEndpoint")
38139
+ def network_endpoint(self) -> Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs']]:
38140
+ """
38141
+ The network endpoint within the leader.backendGroup that is designated as the leader.
38142
+ Structure is documented below.
38143
+ """
38144
+ return pulumi.get(self, "network_endpoint")
38145
+
38146
+ @network_endpoint.setter
38147
+ def network_endpoint(self, value: Optional[pulumi.Input['RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs']]):
38148
+ pulumi.set(self, "network_endpoint", value)
38149
+
38150
+
38151
+ if not MYPY:
38152
+ class RegionBackendServiceHaPolicyLeaderNetworkEndpointArgsDict(TypedDict):
38153
+ instance: NotRequired[pulumi.Input[_builtins.str]]
38154
+ """
38155
+ The name of the VM instance of the leader network endpoint. The instance must
38156
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
38157
+ """
38158
+ elif False:
38159
+ RegionBackendServiceHaPolicyLeaderNetworkEndpointArgsDict: TypeAlias = Mapping[str, Any]
38160
+
38161
+ @pulumi.input_type
38162
+ class RegionBackendServiceHaPolicyLeaderNetworkEndpointArgs:
38163
+ def __init__(__self__, *,
38164
+ instance: Optional[pulumi.Input[_builtins.str]] = None):
38165
+ """
38166
+ :param pulumi.Input[_builtins.str] instance: The name of the VM instance of the leader network endpoint. The instance must
38167
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
38168
+ """
38169
+ if instance is not None:
38170
+ pulumi.set(__self__, "instance", instance)
38171
+
38172
+ @_builtins.property
38173
+ @pulumi.getter
38174
+ def instance(self) -> Optional[pulumi.Input[_builtins.str]]:
38175
+ """
38176
+ The name of the VM instance of the leader network endpoint. The instance must
38177
+ already be attached to the NEG specified in the haPolicy.leader.backendGroup.
38178
+ """
38179
+ return pulumi.get(self, "instance")
38180
+
38181
+ @instance.setter
38182
+ def instance(self, value: Optional[pulumi.Input[_builtins.str]]):
38183
+ pulumi.set(self, "instance", value)
38184
+
38185
+
37475
38186
  if not MYPY:
37476
38187
  class RegionBackendServiceIamBindingConditionArgsDict(TypedDict):
37477
38188
  expression: pulumi.Input[_builtins.str]
@@ -48809,6 +49520,164 @@ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs:
48809
49520
  pulumi.set(self, "rollout_status", value)
48810
49521
 
48811
49522
 
49523
+ if not MYPY:
49524
+ class RegionSecurityPolicyAdvancedOptionsConfigArgsDict(TypedDict):
49525
+ json_custom_config: NotRequired[pulumi.Input['RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgsDict']]
49526
+ """
49527
+ Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.
49528
+ Structure is documented below.
49529
+ """
49530
+ json_parsing: NotRequired[pulumi.Input[_builtins.str]]
49531
+ """
49532
+ JSON body parsing. Supported values include: "DISABLED", "STANDARD", "STANDARD_WITH_GRAPHQL".
49533
+ Possible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.
49534
+ """
49535
+ log_level: NotRequired[pulumi.Input[_builtins.str]]
49536
+ """
49537
+ Logging level. Supported values include: "NORMAL", "VERBOSE".
49538
+ Possible values are: `NORMAL`, `VERBOSE`.
49539
+ """
49540
+ request_body_inspection_size: NotRequired[pulumi.Input[_builtins.str]]
49541
+ """
49542
+ The maximum request size chosen by the customer with Waf enabled. Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB".
49543
+ Values are case insensitive.
49544
+ Possible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.
49545
+ """
49546
+ user_ip_request_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
49547
+ """
49548
+ An optional list of case-insensitive request header names to use for resolving the callers client IP address.
49549
+ """
49550
+ elif False:
49551
+ RegionSecurityPolicyAdvancedOptionsConfigArgsDict: TypeAlias = Mapping[str, Any]
49552
+
49553
+ @pulumi.input_type
49554
+ class RegionSecurityPolicyAdvancedOptionsConfigArgs:
49555
+ def __init__(__self__, *,
49556
+ json_custom_config: Optional[pulumi.Input['RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs']] = None,
49557
+ json_parsing: Optional[pulumi.Input[_builtins.str]] = None,
49558
+ log_level: Optional[pulumi.Input[_builtins.str]] = None,
49559
+ request_body_inspection_size: Optional[pulumi.Input[_builtins.str]] = None,
49560
+ user_ip_request_headers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
49561
+ """
49562
+ :param pulumi.Input['RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs'] json_custom_config: Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.
49563
+ Structure is documented below.
49564
+ :param pulumi.Input[_builtins.str] json_parsing: JSON body parsing. Supported values include: "DISABLED", "STANDARD", "STANDARD_WITH_GRAPHQL".
49565
+ Possible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.
49566
+ :param pulumi.Input[_builtins.str] log_level: Logging level. Supported values include: "NORMAL", "VERBOSE".
49567
+ Possible values are: `NORMAL`, `VERBOSE`.
49568
+ :param pulumi.Input[_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".
49569
+ Values are case insensitive.
49570
+ Possible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.
49571
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] user_ip_request_headers: An optional list of case-insensitive request header names to use for resolving the callers client IP address.
49572
+ """
49573
+ if json_custom_config is not None:
49574
+ pulumi.set(__self__, "json_custom_config", json_custom_config)
49575
+ if json_parsing is not None:
49576
+ pulumi.set(__self__, "json_parsing", json_parsing)
49577
+ if log_level is not None:
49578
+ pulumi.set(__self__, "log_level", log_level)
49579
+ if request_body_inspection_size is not None:
49580
+ pulumi.set(__self__, "request_body_inspection_size", request_body_inspection_size)
49581
+ if user_ip_request_headers is not None:
49582
+ pulumi.set(__self__, "user_ip_request_headers", user_ip_request_headers)
49583
+
49584
+ @_builtins.property
49585
+ @pulumi.getter(name="jsonCustomConfig")
49586
+ def json_custom_config(self) -> Optional[pulumi.Input['RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs']]:
49587
+ """
49588
+ Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.
49589
+ Structure is documented below.
49590
+ """
49591
+ return pulumi.get(self, "json_custom_config")
49592
+
49593
+ @json_custom_config.setter
49594
+ def json_custom_config(self, value: Optional[pulumi.Input['RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs']]):
49595
+ pulumi.set(self, "json_custom_config", value)
49596
+
49597
+ @_builtins.property
49598
+ @pulumi.getter(name="jsonParsing")
49599
+ def json_parsing(self) -> Optional[pulumi.Input[_builtins.str]]:
49600
+ """
49601
+ JSON body parsing. Supported values include: "DISABLED", "STANDARD", "STANDARD_WITH_GRAPHQL".
49602
+ Possible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.
49603
+ """
49604
+ return pulumi.get(self, "json_parsing")
49605
+
49606
+ @json_parsing.setter
49607
+ def json_parsing(self, value: Optional[pulumi.Input[_builtins.str]]):
49608
+ pulumi.set(self, "json_parsing", value)
49609
+
49610
+ @_builtins.property
49611
+ @pulumi.getter(name="logLevel")
49612
+ def log_level(self) -> Optional[pulumi.Input[_builtins.str]]:
49613
+ """
49614
+ Logging level. Supported values include: "NORMAL", "VERBOSE".
49615
+ Possible values are: `NORMAL`, `VERBOSE`.
49616
+ """
49617
+ return pulumi.get(self, "log_level")
49618
+
49619
+ @log_level.setter
49620
+ def log_level(self, value: Optional[pulumi.Input[_builtins.str]]):
49621
+ pulumi.set(self, "log_level", value)
49622
+
49623
+ @_builtins.property
49624
+ @pulumi.getter(name="requestBodyInspectionSize")
49625
+ def request_body_inspection_size(self) -> Optional[pulumi.Input[_builtins.str]]:
49626
+ """
49627
+ The maximum request size chosen by the customer with Waf enabled. Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB".
49628
+ Values are case insensitive.
49629
+ Possible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.
49630
+ """
49631
+ return pulumi.get(self, "request_body_inspection_size")
49632
+
49633
+ @request_body_inspection_size.setter
49634
+ def request_body_inspection_size(self, value: Optional[pulumi.Input[_builtins.str]]):
49635
+ pulumi.set(self, "request_body_inspection_size", value)
49636
+
49637
+ @_builtins.property
49638
+ @pulumi.getter(name="userIpRequestHeaders")
49639
+ def user_ip_request_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
49640
+ """
49641
+ An optional list of case-insensitive request header names to use for resolving the callers client IP address.
49642
+ """
49643
+ return pulumi.get(self, "user_ip_request_headers")
49644
+
49645
+ @user_ip_request_headers.setter
49646
+ def user_ip_request_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
49647
+ pulumi.set(self, "user_ip_request_headers", value)
49648
+
49649
+
49650
+ if not MYPY:
49651
+ class RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgsDict(TypedDict):
49652
+ content_types: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
49653
+ """
49654
+ A list of custom Content-Type header values to apply the JSON parsing.
49655
+ """
49656
+ elif False:
49657
+ RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgsDict: TypeAlias = Mapping[str, Any]
49658
+
49659
+ @pulumi.input_type
49660
+ class RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs:
49661
+ def __init__(__self__, *,
49662
+ content_types: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
49663
+ """
49664
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] content_types: A list of custom Content-Type header values to apply the JSON parsing.
49665
+ """
49666
+ pulumi.set(__self__, "content_types", content_types)
49667
+
49668
+ @_builtins.property
49669
+ @pulumi.getter(name="contentTypes")
49670
+ def content_types(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
49671
+ """
49672
+ A list of custom Content-Type header values to apply the JSON parsing.
49673
+ """
49674
+ return pulumi.get(self, "content_types")
49675
+
49676
+ @content_types.setter
49677
+ def content_types(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
49678
+ pulumi.set(self, "content_types", value)
49679
+
49680
+
48812
49681
  if not MYPY:
48813
49682
  class RegionSecurityPolicyDdosProtectionConfigArgsDict(TypedDict):
48814
49683
  ddos_protection: pulumi.Input[_builtins.str]
@@ -51153,20 +52022,30 @@ if not MYPY:
51153
52022
  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.
51154
52023
  Serverless NEG backends are not currently supported as a mirrored backend service.
51155
52024
  """
52025
+ mirror_percent: NotRequired[pulumi.Input[_builtins.float]]
52026
+ """
52027
+ The percentage of requests to be mirrored to backendService.
52028
+ The value must be between 0.0 and 100.0 inclusive.
52029
+ """
51156
52030
  elif False:
51157
52031
  RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgsDict: TypeAlias = Mapping[str, Any]
51158
52032
 
51159
52033
  @pulumi.input_type
51160
52034
  class RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs:
51161
52035
  def __init__(__self__, *,
51162
- backend_service: Optional[pulumi.Input[_builtins.str]] = None):
52036
+ backend_service: Optional[pulumi.Input[_builtins.str]] = None,
52037
+ mirror_percent: Optional[pulumi.Input[_builtins.float]] = None):
51163
52038
  """
51164
52039
  :param pulumi.Input[_builtins.str] backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
51165
52040
  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.
51166
52041
  Serverless NEG backends are not currently supported as a mirrored backend service.
52042
+ :param pulumi.Input[_builtins.float] mirror_percent: The percentage of requests to be mirrored to backendService.
52043
+ The value must be between 0.0 and 100.0 inclusive.
51167
52044
  """
51168
52045
  if backend_service is not None:
51169
52046
  pulumi.set(__self__, "backend_service", backend_service)
52047
+ if mirror_percent is not None:
52048
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
51170
52049
 
51171
52050
  @_builtins.property
51172
52051
  @pulumi.getter(name="backendService")
@@ -51182,6 +52061,19 @@ class RegionUrlMapDefaultRouteActionRequestMirrorPolicyArgs:
51182
52061
  def backend_service(self, value: Optional[pulumi.Input[_builtins.str]]):
51183
52062
  pulumi.set(self, "backend_service", value)
51184
52063
 
52064
+ @_builtins.property
52065
+ @pulumi.getter(name="mirrorPercent")
52066
+ def mirror_percent(self) -> Optional[pulumi.Input[_builtins.float]]:
52067
+ """
52068
+ The percentage of requests to be mirrored to backendService.
52069
+ The value must be between 0.0 and 100.0 inclusive.
52070
+ """
52071
+ return pulumi.get(self, "mirror_percent")
52072
+
52073
+ @mirror_percent.setter
52074
+ def mirror_percent(self, value: Optional[pulumi.Input[_builtins.float]]):
52075
+ pulumi.set(self, "mirror_percent", value)
52076
+
51185
52077
 
51186
52078
  if not MYPY:
51187
52079
  class RegionUrlMapDefaultRouteActionRetryPolicyArgsDict(TypedDict):
@@ -53030,19 +53922,29 @@ if not MYPY:
53030
53922
  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.
53031
53923
  Serverless NEG backends are not currently supported as a mirrored backend service.
53032
53924
  """
53925
+ mirror_percent: NotRequired[pulumi.Input[_builtins.float]]
53926
+ """
53927
+ The percentage of requests to be mirrored to backendService.
53928
+ The value must be between 0.0 and 100.0 inclusive.
53929
+ """
53033
53930
  elif False:
53034
53931
  RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgsDict: TypeAlias = Mapping[str, Any]
53035
53932
 
53036
53933
  @pulumi.input_type
53037
53934
  class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs:
53038
53935
  def __init__(__self__, *,
53039
- backend_service: pulumi.Input[_builtins.str]):
53936
+ backend_service: pulumi.Input[_builtins.str],
53937
+ mirror_percent: Optional[pulumi.Input[_builtins.float]] = None):
53040
53938
  """
53041
53939
  :param pulumi.Input[_builtins.str] backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
53042
53940
  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.
53043
53941
  Serverless NEG backends are not currently supported as a mirrored backend service.
53942
+ :param pulumi.Input[_builtins.float] mirror_percent: The percentage of requests to be mirrored to backendService.
53943
+ The value must be between 0.0 and 100.0 inclusive.
53044
53944
  """
53045
53945
  pulumi.set(__self__, "backend_service", backend_service)
53946
+ if mirror_percent is not None:
53947
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
53046
53948
 
53047
53949
  @_builtins.property
53048
53950
  @pulumi.getter(name="backendService")
@@ -53058,6 +53960,19 @@ class RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs:
53058
53960
  def backend_service(self, value: pulumi.Input[_builtins.str]):
53059
53961
  pulumi.set(self, "backend_service", value)
53060
53962
 
53963
+ @_builtins.property
53964
+ @pulumi.getter(name="mirrorPercent")
53965
+ def mirror_percent(self) -> Optional[pulumi.Input[_builtins.float]]:
53966
+ """
53967
+ The percentage of requests to be mirrored to backendService.
53968
+ The value must be between 0.0 and 100.0 inclusive.
53969
+ """
53970
+ return pulumi.get(self, "mirror_percent")
53971
+
53972
+ @mirror_percent.setter
53973
+ def mirror_percent(self, value: Optional[pulumi.Input[_builtins.float]]):
53974
+ pulumi.set(self, "mirror_percent", value)
53975
+
53061
53976
 
53062
53977
  if not MYPY:
53063
53978
  class RegionUrlMapPathMatcherDefaultRouteActionRetryPolicyArgsDict(TypedDict):
@@ -54725,19 +55640,29 @@ if not MYPY:
54725
55640
  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.
54726
55641
  Serverless NEG backends are not currently supported as a mirrored backend service.
54727
55642
  """
55643
+ mirror_percent: NotRequired[pulumi.Input[_builtins.float]]
55644
+ """
55645
+ The percentage of requests to be mirrored to backendService.
55646
+ The value must be between 0.0 and 100.0 inclusive.
55647
+ """
54728
55648
  elif False:
54729
55649
  RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgsDict: TypeAlias = Mapping[str, Any]
54730
55650
 
54731
55651
  @pulumi.input_type
54732
55652
  class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs:
54733
55653
  def __init__(__self__, *,
54734
- backend_service: pulumi.Input[_builtins.str]):
55654
+ backend_service: pulumi.Input[_builtins.str],
55655
+ mirror_percent: Optional[pulumi.Input[_builtins.float]] = None):
54735
55656
  """
54736
55657
  :param pulumi.Input[_builtins.str] backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
54737
55658
  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.
54738
55659
  Serverless NEG backends are not currently supported as a mirrored backend service.
55660
+ :param pulumi.Input[_builtins.float] mirror_percent: The percentage of requests to be mirrored to backendService.
55661
+ The value must be between 0.0 and 100.0 inclusive.
54739
55662
  """
54740
55663
  pulumi.set(__self__, "backend_service", backend_service)
55664
+ if mirror_percent is not None:
55665
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
54741
55666
 
54742
55667
  @_builtins.property
54743
55668
  @pulumi.getter(name="backendService")
@@ -54753,6 +55678,19 @@ class RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs:
54753
55678
  def backend_service(self, value: pulumi.Input[_builtins.str]):
54754
55679
  pulumi.set(self, "backend_service", value)
54755
55680
 
55681
+ @_builtins.property
55682
+ @pulumi.getter(name="mirrorPercent")
55683
+ def mirror_percent(self) -> Optional[pulumi.Input[_builtins.float]]:
55684
+ """
55685
+ The percentage of requests to be mirrored to backendService.
55686
+ The value must be between 0.0 and 100.0 inclusive.
55687
+ """
55688
+ return pulumi.get(self, "mirror_percent")
55689
+
55690
+ @mirror_percent.setter
55691
+ def mirror_percent(self, value: Optional[pulumi.Input[_builtins.float]]):
55692
+ pulumi.set(self, "mirror_percent", value)
55693
+
54756
55694
 
54757
55695
  if not MYPY:
54758
55696
  class RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyArgsDict(TypedDict):
@@ -57522,19 +58460,29 @@ if not MYPY:
57522
58460
  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.
57523
58461
  Serverless NEG backends are not currently supported as a mirrored backend service.
57524
58462
  """
58463
+ mirror_percent: NotRequired[pulumi.Input[_builtins.float]]
58464
+ """
58465
+ The percentage of requests to be mirrored to backendService.
58466
+ The value must be between 0.0 and 100.0 inclusive.
58467
+ """
57525
58468
  elif False:
57526
58469
  RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgsDict: TypeAlias = Mapping[str, Any]
57527
58470
 
57528
58471
  @pulumi.input_type
57529
58472
  class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs:
57530
58473
  def __init__(__self__, *,
57531
- backend_service: pulumi.Input[_builtins.str]):
58474
+ backend_service: pulumi.Input[_builtins.str],
58475
+ mirror_percent: Optional[pulumi.Input[_builtins.float]] = None):
57532
58476
  """
57533
58477
  :param pulumi.Input[_builtins.str] backend_service: The full or partial URL to the RegionBackendService resource being mirrored to.
57534
58478
  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.
57535
58479
  Serverless NEG backends are not currently supported as a mirrored backend service.
58480
+ :param pulumi.Input[_builtins.float] mirror_percent: The percentage of requests to be mirrored to backendService.
58481
+ The value must be between 0.0 and 100.0 inclusive.
57536
58482
  """
57537
58483
  pulumi.set(__self__, "backend_service", backend_service)
58484
+ if mirror_percent is not None:
58485
+ pulumi.set(__self__, "mirror_percent", mirror_percent)
57538
58486
 
57539
58487
  @_builtins.property
57540
58488
  @pulumi.getter(name="backendService")
@@ -57550,6 +58498,19 @@ class RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs:
57550
58498
  def backend_service(self, value: pulumi.Input[_builtins.str]):
57551
58499
  pulumi.set(self, "backend_service", value)
57552
58500
 
58501
+ @_builtins.property
58502
+ @pulumi.getter(name="mirrorPercent")
58503
+ def mirror_percent(self) -> Optional[pulumi.Input[_builtins.float]]:
58504
+ """
58505
+ The percentage of requests to be mirrored to backendService.
58506
+ The value must be between 0.0 and 100.0 inclusive.
58507
+ """
58508
+ return pulumi.get(self, "mirror_percent")
58509
+
58510
+ @mirror_percent.setter
58511
+ def mirror_percent(self, value: Optional[pulumi.Input[_builtins.float]]):
58512
+ pulumi.set(self, "mirror_percent", value)
58513
+
57553
58514
 
57554
58515
  if not MYPY:
57555
58516
  class RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyArgsDict(TypedDict):
@@ -62498,6 +63459,44 @@ class RouterNatSubnetworkArgs:
62498
63459
  pulumi.set(self, "secondary_ip_range_names", value)
62499
63460
 
62500
63461
 
63462
+ if not MYPY:
63463
+ class RouterParamsArgsDict(TypedDict):
63464
+ resource_manager_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
63465
+ """
63466
+ Resource manager tags to be bound to the router. Tag keys and values have the
63467
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
63468
+ and values are in the format tagValues/456.
63469
+ """
63470
+ elif False:
63471
+ RouterParamsArgsDict: TypeAlias = Mapping[str, Any]
63472
+
63473
+ @pulumi.input_type
63474
+ class RouterParamsArgs:
63475
+ def __init__(__self__, *,
63476
+ resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
63477
+ """
63478
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] resource_manager_tags: Resource manager tags to be bound to the router. Tag keys and values have the
63479
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
63480
+ and values are in the format tagValues/456.
63481
+ """
63482
+ if resource_manager_tags is not None:
63483
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
63484
+
63485
+ @_builtins.property
63486
+ @pulumi.getter(name="resourceManagerTags")
63487
+ def resource_manager_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
63488
+ """
63489
+ Resource manager tags to be bound to the router. Tag keys and values have the
63490
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
63491
+ and values are in the format tagValues/456.
63492
+ """
63493
+ return pulumi.get(self, "resource_manager_tags")
63494
+
63495
+ @resource_manager_tags.setter
63496
+ def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
63497
+ pulumi.set(self, "resource_manager_tags", value)
63498
+
63499
+
62501
63500
  if not MYPY:
62502
63501
  class RouterPeerAdvertisedIpRangeArgsDict(TypedDict):
62503
63502
  range: pulumi.Input[_builtins.str]
@@ -67194,6 +68193,53 @@ class SubnetworkLogConfigArgs:
67194
68193
  pulumi.set(self, "metadata_fields", value)
67195
68194
 
67196
68195
 
68196
+ if not MYPY:
68197
+ class SubnetworkParamsArgsDict(TypedDict):
68198
+ resource_manager_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
68199
+ """
68200
+ Resource manager tags to be bound to the subnetwork. Tag keys and values have the
68201
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
68202
+ and values are in the format tagValues/456. The field is ignored when empty.
68203
+ The field is immutable and causes resource replacement when mutated. This field is only
68204
+ set at create time and modifying this field after creation will trigger recreation.
68205
+ To apply tags to an existing resource, see the tags.TagBinding resource.
68206
+ """
68207
+ elif False:
68208
+ SubnetworkParamsArgsDict: TypeAlias = Mapping[str, Any]
68209
+
68210
+ @pulumi.input_type
68211
+ class SubnetworkParamsArgs:
68212
+ def __init__(__self__, *,
68213
+ resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
68214
+ """
68215
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] resource_manager_tags: Resource manager tags to be bound to the subnetwork. Tag keys and values have the
68216
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
68217
+ and values are in the format tagValues/456. The field is ignored when empty.
68218
+ The field is immutable and causes resource replacement when mutated. This field is only
68219
+ set at create time and modifying this field after creation will trigger recreation.
68220
+ To apply tags to an existing resource, see the tags.TagBinding resource.
68221
+ """
68222
+ if resource_manager_tags is not None:
68223
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
68224
+
68225
+ @_builtins.property
68226
+ @pulumi.getter(name="resourceManagerTags")
68227
+ def resource_manager_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
68228
+ """
68229
+ Resource manager tags to be bound to the subnetwork. Tag keys and values have the
68230
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
68231
+ and values are in the format tagValues/456. The field is ignored when empty.
68232
+ The field is immutable and causes resource replacement when mutated. This field is only
68233
+ set at create time and modifying this field after creation will trigger recreation.
68234
+ To apply tags to an existing resource, see the tags.TagBinding resource.
68235
+ """
68236
+ return pulumi.get(self, "resource_manager_tags")
68237
+
68238
+ @resource_manager_tags.setter
68239
+ def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
68240
+ pulumi.set(self, "resource_manager_tags", value)
68241
+
68242
+
67197
68243
  if not MYPY:
67198
68244
  class SubnetworkSecondaryIpRangeArgsDict(TypedDict):
67199
68245
  range_name: pulumi.Input[_builtins.str]