pulumi-gcp 7.12.0a1709102105__py3-none-any.whl → 7.12.0a1709149267__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (940) hide show
  1. pulumi_gcp/accessapproval/get_folder_service_account.py +2 -2
  2. pulumi_gcp/accessapproval/get_organization_service_account.py +2 -2
  3. pulumi_gcp/accessapproval/get_project_service_account.py +2 -2
  4. pulumi_gcp/accesscontextmanager/access_level.py +10 -8
  5. pulumi_gcp/accesscontextmanager/access_level_condition.py +2 -0
  6. pulumi_gcp/accesscontextmanager/access_levels.py +16 -16
  7. pulumi_gcp/accesscontextmanager/access_policy.py +12 -6
  8. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +10 -2
  9. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +10 -2
  10. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +10 -2
  11. pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +8 -6
  12. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +80 -0
  13. pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +2 -2
  14. pulumi_gcp/accesscontextmanager/service_perimeter.py +34 -24
  15. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +6 -4
  16. pulumi_gcp/accesscontextmanager/service_perimeters.py +14 -12
  17. pulumi_gcp/activedirectory/domain_trust.py +6 -6
  18. pulumi_gcp/activedirectory/peering.py +20 -22
  19. pulumi_gcp/alloydb/backup.py +62 -66
  20. pulumi_gcp/alloydb/cluster.py +78 -82
  21. pulumi_gcp/alloydb/instance.py +70 -74
  22. pulumi_gcp/alloydb/user.py +44 -48
  23. pulumi_gcp/apigateway/api.py +2 -4
  24. pulumi_gcp/apigateway/api_config.py +86 -14
  25. pulumi_gcp/apigateway/api_config_iam_binding.py +18 -24
  26. pulumi_gcp/apigateway/api_config_iam_member.py +18 -24
  27. pulumi_gcp/apigateway/api_config_iam_policy.py +18 -24
  28. pulumi_gcp/apigateway/api_iam_binding.py +18 -24
  29. pulumi_gcp/apigateway/api_iam_member.py +18 -24
  30. pulumi_gcp/apigateway/api_iam_policy.py +18 -24
  31. pulumi_gcp/apigateway/gateway.py +16 -22
  32. pulumi_gcp/apigateway/gateway_iam_binding.py +24 -30
  33. pulumi_gcp/apigateway/gateway_iam_member.py +24 -30
  34. pulumi_gcp/apigateway/gateway_iam_policy.py +24 -30
  35. pulumi_gcp/apigee/addons_config.py +22 -26
  36. pulumi_gcp/apigee/endpoint_attachment.py +14 -14
  37. pulumi_gcp/apigee/env_group.py +16 -14
  38. pulumi_gcp/apigee/env_group_attachment.py +0 -100
  39. pulumi_gcp/apigee/environment.py +14 -12
  40. pulumi_gcp/apigee/environment_iam_binding.py +12 -12
  41. pulumi_gcp/apigee/environment_iam_member.py +12 -12
  42. pulumi_gcp/apigee/environment_iam_policy.py +12 -12
  43. pulumi_gcp/apigee/get_environment_iam_policy.py +4 -4
  44. pulumi_gcp/apigee/instance.py +84 -76
  45. pulumi_gcp/apigee/instance_attachment.py +0 -100
  46. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +40 -40
  47. pulumi_gcp/apigee/nat_address.py +42 -36
  48. pulumi_gcp/apigee/organization.py +62 -58
  49. pulumi_gcp/apigee/sync_authorization.py +16 -12
  50. pulumi_gcp/apigee/target_server.py +34 -36
  51. pulumi_gcp/appengine/application.py +8 -2
  52. pulumi_gcp/appengine/application_url_dispatch_rules.py +12 -6
  53. pulumi_gcp/appengine/domain_mapping.py +2 -2
  54. pulumi_gcp/appengine/engine_split_traffic.py +12 -6
  55. pulumi_gcp/appengine/firewall_rule.py +6 -2
  56. pulumi_gcp/appengine/flexible_app_version.py +20 -12
  57. pulumi_gcp/appengine/service_network_settings.py +14 -8
  58. pulumi_gcp/appengine/standard_app_version.py +18 -12
  59. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +6 -6
  60. pulumi_gcp/artifactregistry/repository.py +78 -82
  61. pulumi_gcp/artifactregistry/repository_iam_binding.py +18 -18
  62. pulumi_gcp/artifactregistry/repository_iam_member.py +18 -18
  63. pulumi_gcp/artifactregistry/repository_iam_policy.py +18 -18
  64. pulumi_gcp/artifactregistry/vpcsc_config.py +2 -4
  65. pulumi_gcp/assuredworkloads/workload.py +16 -18
  66. pulumi_gcp/backupdisasterrecovery/management_server.py +20 -24
  67. pulumi_gcp/beyondcorp/app_connection.py +44 -30
  68. pulumi_gcp/beyondcorp/app_connector.py +22 -16
  69. pulumi_gcp/beyondcorp/app_gateway.py +20 -16
  70. pulumi_gcp/biglake/catalog.py +6 -2
  71. pulumi_gcp/biglake/database.py +14 -4
  72. pulumi_gcp/biglake/table.py +20 -6
  73. pulumi_gcp/bigquery/app_profile.py +8 -0
  74. pulumi_gcp/bigquery/capacity_commitment.py +4 -4
  75. pulumi_gcp/bigquery/connection.py +72 -54
  76. pulumi_gcp/bigquery/connection_iam_binding.py +18 -18
  77. pulumi_gcp/bigquery/connection_iam_member.py +18 -18
  78. pulumi_gcp/bigquery/connection_iam_policy.py +18 -18
  79. pulumi_gcp/bigquery/data_transfer_config.py +8 -12
  80. pulumi_gcp/bigquery/dataset.py +20 -14
  81. pulumi_gcp/bigquery/dataset_access.py +16 -16
  82. pulumi_gcp/bigquery/dataset_iam_binding.py +4 -4
  83. pulumi_gcp/bigquery/dataset_iam_member.py +4 -4
  84. pulumi_gcp/bigquery/dataset_iam_policy.py +4 -4
  85. pulumi_gcp/bigquery/get_connection_iam_policy.py +6 -6
  86. pulumi_gcp/bigquery/get_dataset_iam_policy.py +2 -2
  87. pulumi_gcp/bigquery/get_default_service_account.py +4 -4
  88. pulumi_gcp/bigquery/get_table_iam_policy.py +6 -6
  89. pulumi_gcp/bigquery/iam_binding.py +36 -36
  90. pulumi_gcp/bigquery/iam_member.py +36 -36
  91. pulumi_gcp/bigquery/iam_policy.py +36 -36
  92. pulumi_gcp/bigquery/job.py +326 -20
  93. pulumi_gcp/bigquery/reservation.py +14 -12
  94. pulumi_gcp/bigquery/reservation_assignment.py +2 -0
  95. pulumi_gcp/bigquery/routine.py +22 -22
  96. pulumi_gcp/bigquery/table.py +8 -8
  97. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +6 -6
  98. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +18 -18
  99. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +18 -18
  100. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +18 -18
  101. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +6 -6
  102. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +8 -8
  103. pulumi_gcp/bigqueryanalyticshub/listing.py +16 -16
  104. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +24 -24
  105. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +24 -24
  106. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +24 -24
  107. pulumi_gcp/bigquerydatapolicy/data_policy.py +4 -4
  108. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +18 -18
  109. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +18 -18
  110. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +18 -18
  111. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +6 -6
  112. pulumi_gcp/bigtable/gc_policy.py +0 -208
  113. pulumi_gcp/bigtable/get_instance_iam_policy.py +2 -2
  114. pulumi_gcp/bigtable/get_table_iam_policy.py +4 -4
  115. pulumi_gcp/bigtable/instance.py +14 -10
  116. pulumi_gcp/bigtable/instance_iam_binding.py +8 -8
  117. pulumi_gcp/bigtable/instance_iam_member.py +8 -8
  118. pulumi_gcp/bigtable/instance_iam_policy.py +8 -8
  119. pulumi_gcp/bigtable/table.py +18 -12
  120. pulumi_gcp/bigtable/table_iam_binding.py +8 -8
  121. pulumi_gcp/bigtable/table_iam_member.py +8 -8
  122. pulumi_gcp/bigtable/table_iam_policy.py +8 -8
  123. pulumi_gcp/billing/account_iam_binding.py +8 -8
  124. pulumi_gcp/billing/account_iam_member.py +8 -8
  125. pulumi_gcp/billing/account_iam_policy.py +8 -8
  126. pulumi_gcp/billing/budget.py +2 -2
  127. pulumi_gcp/billing/project_info.py +28 -0
  128. pulumi_gcp/binaryauthorization/attestor.py +74 -52
  129. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
  130. pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
  131. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
  132. pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +4 -4
  133. pulumi_gcp/binaryauthorization/policy.py +48 -32
  134. pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +38 -38
  135. pulumi_gcp/certificateauthority/authority.py +34 -42
  136. pulumi_gcp/certificateauthority/ca_pool.py +274 -6
  137. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
  138. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
  139. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
  140. pulumi_gcp/certificateauthority/certificate.py +264 -44
  141. pulumi_gcp/certificateauthority/certificate_template.py +168 -0
  142. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
  143. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
  144. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
  145. pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +2 -2
  146. pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +2 -2
  147. pulumi_gcp/certificatemanager/certificate.py +114 -84
  148. pulumi_gcp/certificatemanager/certificate_issuance_config.py +34 -32
  149. pulumi_gcp/certificatemanager/certificate_map.py +2 -0
  150. pulumi_gcp/certificatemanager/certificate_map_entry.py +12 -2
  151. pulumi_gcp/certificatemanager/dns_authorization.py +2 -0
  152. pulumi_gcp/certificatemanager/trust_config.py +8 -4
  153. pulumi_gcp/cloudasset/folder_feed.py +82 -0
  154. pulumi_gcp/cloudasset/organization_feed.py +74 -0
  155. pulumi_gcp/cloudasset/project_feed.py +70 -0
  156. pulumi_gcp/cloudbuild/bitbucket_server_config.py +98 -14
  157. pulumi_gcp/cloudbuild/get_trigger.py +2 -2
  158. pulumi_gcp/cloudbuild/trigger.py +650 -122
  159. pulumi_gcp/cloudbuild/worker_pool.py +20 -16
  160. pulumi_gcp/cloudbuildv2/connection.py +20 -18
  161. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +18 -12
  162. pulumi_gcp/cloudbuildv2/connection_iam_member.py +18 -12
  163. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +18 -12
  164. pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +6 -6
  165. pulumi_gcp/cloudbuildv2/repository.py +18 -14
  166. pulumi_gcp/clouddeploy/automation.py +16 -16
  167. pulumi_gcp/clouddeploy/custom_target_type.py +38 -32
  168. pulumi_gcp/clouddeploy/delivery_pipeline.py +40 -38
  169. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +6 -6
  170. pulumi_gcp/clouddeploy/target.py +26 -24
  171. pulumi_gcp/clouddomains/registration.py +74 -74
  172. pulumi_gcp/cloudfunctions/function.py +20 -4
  173. pulumi_gcp/cloudfunctions/function_iam_binding.py +18 -18
  174. pulumi_gcp/cloudfunctions/function_iam_member.py +18 -18
  175. pulumi_gcp/cloudfunctions/function_iam_policy.py +18 -18
  176. pulumi_gcp/cloudfunctions/get_function_iam_policy.py +6 -6
  177. pulumi_gcp/cloudfunctionsv2/function.py +776 -42
  178. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +18 -18
  179. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +18 -18
  180. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +18 -18
  181. pulumi_gcp/cloudfunctionsv2/get_function.py +4 -4
  182. pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +6 -6
  183. pulumi_gcp/cloudidentity/group.py +8 -8
  184. pulumi_gcp/cloudidentity/group_membership.py +4 -4
  185. pulumi_gcp/cloudids/endpoint.py +12 -10
  186. pulumi_gcp/cloudrun/domain_mapping.py +10 -6
  187. pulumi_gcp/cloudrun/get_service.py +4 -4
  188. pulumi_gcp/cloudrun/get_service_iam_policy.py +6 -6
  189. pulumi_gcp/cloudrun/iam_binding.py +18 -18
  190. pulumi_gcp/cloudrun/iam_member.py +18 -18
  191. pulumi_gcp/cloudrun/iam_policy.py +18 -18
  192. pulumi_gcp/cloudrun/service.py +28 -14
  193. pulumi_gcp/cloudrunv2/get_job.py +4 -4
  194. pulumi_gcp/cloudrunv2/get_job_iam_policy.py +6 -6
  195. pulumi_gcp/cloudrunv2/get_service.py +4 -4
  196. pulumi_gcp/cloudrunv2/get_service_iam_policy.py +6 -6
  197. pulumi_gcp/cloudrunv2/job.py +56 -46
  198. pulumi_gcp/cloudrunv2/job_iam_binding.py +18 -12
  199. pulumi_gcp/cloudrunv2/job_iam_member.py +18 -12
  200. pulumi_gcp/cloudrunv2/job_iam_policy.py +18 -12
  201. pulumi_gcp/cloudrunv2/service.py +94 -68
  202. pulumi_gcp/cloudrunv2/service_iam_binding.py +18 -12
  203. pulumi_gcp/cloudrunv2/service_iam_member.py +18 -12
  204. pulumi_gcp/cloudrunv2/service_iam_policy.py +18 -12
  205. pulumi_gcp/cloudscheduler/job.py +168 -26
  206. pulumi_gcp/cloudtasks/get_queue_iam_policy.py +6 -6
  207. pulumi_gcp/cloudtasks/queue.py +18 -12
  208. pulumi_gcp/cloudtasks/queue_iam_binding.py +18 -12
  209. pulumi_gcp/cloudtasks/queue_iam_member.py +18 -12
  210. pulumi_gcp/cloudtasks/queue_iam_policy.py +18 -12
  211. pulumi_gcp/composer/get_environment.py +22 -0
  212. pulumi_gcp/composer/get_image_versions.py +2 -0
  213. pulumi_gcp/compute/address.py +32 -18
  214. pulumi_gcp/compute/attached_disk.py +8 -6
  215. pulumi_gcp/compute/autoscaler.py +34 -28
  216. pulumi_gcp/compute/backend_bucket.py +42 -16
  217. pulumi_gcp/compute/backend_bucket_signed_url_key.py +16 -8
  218. pulumi_gcp/compute/backend_service.py +350 -34
  219. pulumi_gcp/compute/backend_service_signed_url_key.py +98 -0
  220. pulumi_gcp/compute/disk.py +26 -18
  221. pulumi_gcp/compute/disk_async_replication.py +4 -0
  222. pulumi_gcp/compute/disk_iam_binding.py +18 -12
  223. pulumi_gcp/compute/disk_iam_member.py +18 -12
  224. pulumi_gcp/compute/disk_iam_policy.py +18 -12
  225. pulumi_gcp/compute/disk_resource_policy_attachment.py +12 -6
  226. pulumi_gcp/compute/external_vpn_gateway.py +40 -16
  227. pulumi_gcp/compute/firewall.py +16 -12
  228. pulumi_gcp/compute/firewall_policy.py +4 -4
  229. pulumi_gcp/compute/firewall_policy_association.py +10 -8
  230. pulumi_gcp/compute/firewall_policy_rule.py +4 -2
  231. pulumi_gcp/compute/forwarding_rule.py +1840 -22
  232. pulumi_gcp/compute/get_address.py +6 -2
  233. pulumi_gcp/compute/get_addresses.py +6 -2
  234. pulumi_gcp/compute/get_backend_service.py +32 -0
  235. pulumi_gcp/compute/get_disk.py +0 -2
  236. pulumi_gcp/compute/get_disk_iam_policy.py +6 -6
  237. pulumi_gcp/compute/get_global_address.py +6 -2
  238. pulumi_gcp/compute/get_image.py +0 -2
  239. pulumi_gcp/compute/get_image_iam_policy.py +4 -4
  240. pulumi_gcp/compute/get_instance_iam_policy.py +6 -6
  241. pulumi_gcp/compute/get_instance_serial_port.py +10 -8
  242. pulumi_gcp/compute/get_instance_template.py +0 -22
  243. pulumi_gcp/compute/get_lbip_ranges.py +4 -2
  244. pulumi_gcp/compute/get_machine_types.py +100 -0
  245. pulumi_gcp/compute/get_netblock_ip_ranges.py +4 -2
  246. pulumi_gcp/compute/get_network_peering.py +16 -4
  247. pulumi_gcp/compute/get_node_types.py +4 -2
  248. pulumi_gcp/compute/get_region_disk_iam_policy.py +6 -6
  249. pulumi_gcp/compute/get_region_instance_template.py +4 -0
  250. pulumi_gcp/compute/get_regions.py +2 -0
  251. pulumi_gcp/compute/get_snapshot.py +4 -0
  252. pulumi_gcp/compute/get_snapshot_iam_policy.py +4 -4
  253. pulumi_gcp/compute/get_subnetwork_iam_policy.py +6 -6
  254. pulumi_gcp/compute/global_address.py +12 -10
  255. pulumi_gcp/compute/global_forwarding_rule.py +1574 -56
  256. pulumi_gcp/compute/global_network_endpoint.py +2 -0
  257. pulumi_gcp/compute/global_network_endpoint_group.py +8 -4
  258. pulumi_gcp/compute/ha_vpn_gateway.py +38 -10
  259. pulumi_gcp/compute/health_check.py +114 -90
  260. pulumi_gcp/compute/http_health_check.py +6 -4
  261. pulumi_gcp/compute/https_health_check.py +6 -4
  262. pulumi_gcp/compute/image.py +22 -14
  263. pulumi_gcp/compute/image_iam_binding.py +24 -24
  264. pulumi_gcp/compute/image_iam_member.py +24 -24
  265. pulumi_gcp/compute/image_iam_policy.py +24 -24
  266. pulumi_gcp/compute/instance.py +16 -14
  267. pulumi_gcp/compute/instance_from_machine_image.py +4 -4
  268. pulumi_gcp/compute/instance_from_template.py +10 -6
  269. pulumi_gcp/compute/instance_group.py +108 -6
  270. pulumi_gcp/compute/instance_group_manager.py +16 -12
  271. pulumi_gcp/compute/instance_group_membership.py +6 -4
  272. pulumi_gcp/compute/instance_group_named_port.py +22 -10
  273. pulumi_gcp/compute/instance_iam_binding.py +36 -36
  274. pulumi_gcp/compute/instance_iam_member.py +36 -36
  275. pulumi_gcp/compute/instance_iam_policy.py +36 -36
  276. pulumi_gcp/compute/instance_settings.py +4 -6
  277. pulumi_gcp/compute/instance_template.py +150 -12
  278. pulumi_gcp/compute/interconnect_attachment.py +28 -10
  279. pulumi_gcp/compute/machine_image.py +30 -24
  280. pulumi_gcp/compute/machine_image_iam_binding.py +36 -48
  281. pulumi_gcp/compute/machine_image_iam_member.py +36 -48
  282. pulumi_gcp/compute/machine_image_iam_policy.py +36 -48
  283. pulumi_gcp/compute/managed_ssl_certificate.py +212 -0
  284. pulumi_gcp/compute/manged_ssl_certificate.py +212 -0
  285. pulumi_gcp/compute/network.py +18 -14
  286. pulumi_gcp/compute/network_attachment.py +60 -52
  287. pulumi_gcp/compute/network_edge_security_service.py +4 -4
  288. pulumi_gcp/compute/network_endpoint.py +32 -22
  289. pulumi_gcp/compute/network_endpoint_group.py +20 -10
  290. pulumi_gcp/compute/network_endpoint_list.py +44 -32
  291. pulumi_gcp/compute/network_firewall_policy.py +6 -2
  292. pulumi_gcp/compute/network_firewall_policy_association.py +8 -4
  293. pulumi_gcp/compute/network_firewall_policy_rule.py +14 -10
  294. pulumi_gcp/compute/network_peering.py +16 -4
  295. pulumi_gcp/compute/network_peering_routes_config.py +38 -18
  296. pulumi_gcp/compute/node_group.py +28 -10
  297. pulumi_gcp/compute/node_template.py +12 -8
  298. pulumi_gcp/compute/organization_security_policy.py +2 -4
  299. pulumi_gcp/compute/organization_security_policy_association.py +22 -28
  300. pulumi_gcp/compute/organization_security_policy_rule.py +10 -14
  301. pulumi_gcp/compute/packet_mirroring.py +128 -0
  302. pulumi_gcp/compute/per_instance_config.py +16 -8
  303. pulumi_gcp/compute/project_metadata.py +6 -8
  304. pulumi_gcp/compute/public_advertised_prefix.py +2 -0
  305. pulumi_gcp/compute/public_delegated_prefix.py +4 -0
  306. pulumi_gcp/compute/region_autoscaler.py +14 -8
  307. pulumi_gcp/compute/region_backend_service.py +462 -2
  308. pulumi_gcp/compute/region_commitment.py +20 -16
  309. pulumi_gcp/compute/region_disk.py +20 -8
  310. pulumi_gcp/compute/region_disk_iam_binding.py +18 -12
  311. pulumi_gcp/compute/region_disk_iam_member.py +18 -12
  312. pulumi_gcp/compute/region_disk_iam_policy.py +18 -12
  313. pulumi_gcp/compute/region_disk_resource_policy_attachment.py +16 -6
  314. pulumi_gcp/compute/region_health_check.py +114 -90
  315. pulumi_gcp/compute/region_instance_group_manager.py +14 -8
  316. pulumi_gcp/compute/region_network_endpoint.py +16 -4
  317. pulumi_gcp/compute/region_network_endpoint_group.py +166 -32
  318. pulumi_gcp/compute/region_network_firewall_policy.py +6 -2
  319. pulumi_gcp/compute/region_network_firewall_policy_association.py +8 -4
  320. pulumi_gcp/compute/region_network_firewall_policy_rule.py +14 -10
  321. pulumi_gcp/compute/region_per_instance_config.py +12 -4
  322. pulumi_gcp/compute/region_security_policy.py +12 -12
  323. pulumi_gcp/compute/region_security_policy_rule.py +38 -48
  324. pulumi_gcp/compute/region_ssl_certificate.py +138 -32
  325. pulumi_gcp/compute/region_target_http_proxy.py +88 -4
  326. pulumi_gcp/compute/region_target_https_proxy.py +96 -0
  327. pulumi_gcp/compute/region_target_tcp_proxy.py +52 -0
  328. pulumi_gcp/compute/region_url_map.py +1038 -0
  329. pulumi_gcp/compute/reservation.py +10 -8
  330. pulumi_gcp/compute/resource_policy.py +60 -48
  331. pulumi_gcp/compute/route.py +206 -4
  332. pulumi_gcp/compute/router.py +18 -6
  333. pulumi_gcp/compute/router_interface.py +6 -4
  334. pulumi_gcp/compute/router_nat.py +82 -42
  335. pulumi_gcp/compute/router_peer.py +72 -42
  336. pulumi_gcp/compute/security_policy.py +120 -108
  337. pulumi_gcp/compute/security_scan_config.py +4 -6
  338. pulumi_gcp/compute/service_attachment.py +376 -0
  339. pulumi_gcp/compute/snapshot.py +8 -0
  340. pulumi_gcp/compute/snapshot_iam_binding.py +12 -6
  341. pulumi_gcp/compute/snapshot_iam_member.py +12 -6
  342. pulumi_gcp/compute/snapshot_iam_policy.py +12 -6
  343. pulumi_gcp/compute/ssl_certificate.py +118 -30
  344. pulumi_gcp/compute/ssl_policy.py +20 -12
  345. pulumi_gcp/compute/subnetwork.py +58 -30
  346. pulumi_gcp/compute/subnetwork_iam_binding.py +36 -36
  347. pulumi_gcp/compute/subnetwork_iam_member.py +36 -36
  348. pulumi_gcp/compute/subnetwork_iam_policy.py +36 -36
  349. pulumi_gcp/compute/target_grpc_proxy.py +176 -0
  350. pulumi_gcp/compute/target_http_proxy.py +166 -10
  351. pulumi_gcp/compute/target_https_proxy.py +336 -14
  352. pulumi_gcp/compute/target_instance.py +136 -16
  353. pulumi_gcp/compute/target_pool.py +40 -0
  354. pulumi_gcp/compute/target_ssl_proxy.py +54 -0
  355. pulumi_gcp/compute/target_tcp_proxy.py +44 -0
  356. pulumi_gcp/compute/url_map.py +1146 -0
  357. pulumi_gcp/compute/vpn_gateway.py +28 -24
  358. pulumi_gcp/compute/vpn_tunnel.py +40 -36
  359. pulumi_gcp/container/_inputs.py +0 -188
  360. pulumi_gcp/container/attached_cluster.py +124 -0
  361. pulumi_gcp/container/aws_cluster.py +46 -42
  362. pulumi_gcp/container/aws_node_pool.py +34 -26
  363. pulumi_gcp/container/azure_client.py +6 -4
  364. pulumi_gcp/container/azure_cluster.py +30 -26
  365. pulumi_gcp/container/azure_node_pool.py +12 -6
  366. pulumi_gcp/container/cluster.py +62 -6
  367. pulumi_gcp/container/get_attached_versions.py +2 -2
  368. pulumi_gcp/container/get_aws_versions.py +2 -2
  369. pulumi_gcp/container/get_azure_versions.py +2 -2
  370. pulumi_gcp/container/get_engine_versions.py +2 -0
  371. pulumi_gcp/container/node_pool.py +68 -2
  372. pulumi_gcp/container/outputs.py +0 -188
  373. pulumi_gcp/container/registry.py +4 -4
  374. pulumi_gcp/containeranalysis/get_note_iam_policy.py +4 -4
  375. pulumi_gcp/containeranalysis/note.py +32 -26
  376. pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
  377. pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
  378. pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
  379. pulumi_gcp/databasemigrationservice/connection_profile.py +138 -46
  380. pulumi_gcp/databasemigrationservice/private_connection.py +6 -6
  381. pulumi_gcp/datacatalog/entry.py +12 -12
  382. pulumi_gcp/datacatalog/entry_group.py +8 -8
  383. pulumi_gcp/datacatalog/entry_group_iam_binding.py +6 -6
  384. pulumi_gcp/datacatalog/entry_group_iam_member.py +6 -6
  385. pulumi_gcp/datacatalog/entry_group_iam_policy.py +6 -6
  386. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +2 -2
  387. pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +2 -2
  388. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +2 -2
  389. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +2 -2
  390. pulumi_gcp/datacatalog/policy_tag.py +14 -16
  391. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +6 -6
  392. pulumi_gcp/datacatalog/policy_tag_iam_member.py +6 -6
  393. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +6 -6
  394. pulumi_gcp/datacatalog/tag.py +22 -22
  395. pulumi_gcp/datacatalog/tag_template.py +16 -16
  396. pulumi_gcp/datacatalog/tag_template_iam_binding.py +6 -6
  397. pulumi_gcp/datacatalog/tag_template_iam_member.py +6 -6
  398. pulumi_gcp/datacatalog/tag_template_iam_policy.py +6 -6
  399. pulumi_gcp/datacatalog/taxonomy.py +6 -6
  400. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +6 -6
  401. pulumi_gcp/datacatalog/taxonomy_iam_member.py +6 -6
  402. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +6 -6
  403. pulumi_gcp/dataflow/flex_template_job.py +18 -18
  404. pulumi_gcp/dataflow/job.py +34 -26
  405. pulumi_gcp/dataflow/pipeline.py +4 -2
  406. pulumi_gcp/dataform/repository.py +28 -36
  407. pulumi_gcp/dataform/repository_release_config.py +16 -20
  408. pulumi_gcp/dataform/repository_workflow_config.py +26 -32
  409. pulumi_gcp/datafusion/get_instance_iam_policy.py +6 -6
  410. pulumi_gcp/datafusion/instance.py +60 -40
  411. pulumi_gcp/dataloss/prevention_deidentify_template.py +206 -10
  412. pulumi_gcp/dataloss/prevention_inspect_template.py +270 -42
  413. pulumi_gcp/dataloss/prevention_job_trigger.py +368 -192
  414. pulumi_gcp/dataloss/prevention_stored_info_type.py +24 -20
  415. pulumi_gcp/dataplex/asset.py +16 -10
  416. pulumi_gcp/dataplex/asset_iam_binding.py +30 -30
  417. pulumi_gcp/dataplex/asset_iam_member.py +30 -30
  418. pulumi_gcp/dataplex/asset_iam_policy.py +30 -30
  419. pulumi_gcp/dataplex/datascan.py +90 -92
  420. pulumi_gcp/dataplex/datascan_iam_binding.py +18 -18
  421. pulumi_gcp/dataplex/datascan_iam_member.py +18 -18
  422. pulumi_gcp/dataplex/datascan_iam_policy.py +18 -18
  423. pulumi_gcp/dataplex/get_asset_iam_policy.py +10 -10
  424. pulumi_gcp/dataplex/get_datascan_iam_policy.py +6 -6
  425. pulumi_gcp/dataplex/get_lake_iam_policy.py +6 -6
  426. pulumi_gcp/dataplex/get_task_iam_policy.py +8 -8
  427. pulumi_gcp/dataplex/get_zone_iam_policy.py +8 -8
  428. pulumi_gcp/dataplex/lake.py +8 -6
  429. pulumi_gcp/dataplex/lake_iam_binding.py +18 -18
  430. pulumi_gcp/dataplex/lake_iam_member.py +18 -18
  431. pulumi_gcp/dataplex/lake_iam_policy.py +18 -18
  432. pulumi_gcp/dataplex/task.py +300 -0
  433. pulumi_gcp/dataplex/task_iam_binding.py +24 -24
  434. pulumi_gcp/dataplex/task_iam_member.py +24 -24
  435. pulumi_gcp/dataplex/task_iam_policy.py +24 -24
  436. pulumi_gcp/dataplex/zone.py +4 -0
  437. pulumi_gcp/dataplex/zone_iam_binding.py +24 -24
  438. pulumi_gcp/dataplex/zone_iam_member.py +24 -24
  439. pulumi_gcp/dataplex/zone_iam_policy.py +24 -24
  440. pulumi_gcp/dataproc/autoscaling_policy.py +2 -0
  441. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +18 -18
  442. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +18 -18
  443. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +18 -18
  444. pulumi_gcp/dataproc/cluster.py +18 -10
  445. pulumi_gcp/dataproc/cluster_iam_binding.py +8 -8
  446. pulumi_gcp/dataproc/cluster_iam_member.py +8 -8
  447. pulumi_gcp/dataproc/cluster_iam_policy.py +8 -8
  448. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +6 -6
  449. pulumi_gcp/dataproc/get_cluster_iam_policy.py +2 -2
  450. pulumi_gcp/dataproc/get_job_iam_policy.py +2 -2
  451. pulumi_gcp/dataproc/get_metastore_service.py +4 -4
  452. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +6 -6
  453. pulumi_gcp/dataproc/job.py +6 -2
  454. pulumi_gcp/dataproc/job_iam_binding.py +8 -8
  455. pulumi_gcp/dataproc/job_iam_member.py +8 -8
  456. pulumi_gcp/dataproc/job_iam_policy.py +8 -8
  457. pulumi_gcp/dataproc/metastore_federation.py +16 -24
  458. pulumi_gcp/dataproc/metastore_service.py +64 -56
  459. pulumi_gcp/dataproc/metastore_service_iam_binding.py +18 -18
  460. pulumi_gcp/dataproc/metastore_service_iam_member.py +18 -18
  461. pulumi_gcp/dataproc/metastore_service_iam_policy.py +18 -18
  462. pulumi_gcp/dataproc/workflow_template.py +58 -56
  463. pulumi_gcp/datastore/data_store_index.py +4 -4
  464. pulumi_gcp/datastream/connection_profile.py +52 -36
  465. pulumi_gcp/datastream/private_connection.py +4 -4
  466. pulumi_gcp/datastream/stream.py +52 -30
  467. pulumi_gcp/deploymentmanager/deployment.py +6 -2
  468. pulumi_gcp/diagflow/agent.py +20 -20
  469. pulumi_gcp/diagflow/cx_agent.py +4 -2
  470. pulumi_gcp/diagflow/cx_entity_type.py +2 -2
  471. pulumi_gcp/diagflow/cx_environment.py +2 -2
  472. pulumi_gcp/diagflow/cx_flow.py +6 -4
  473. pulumi_gcp/diagflow/cx_intent.py +2 -2
  474. pulumi_gcp/diagflow/cx_page.py +6 -6
  475. pulumi_gcp/diagflow/cx_security_settings.py +6 -4
  476. pulumi_gcp/diagflow/cx_test_case.py +6 -6
  477. pulumi_gcp/diagflow/cx_version.py +2 -2
  478. pulumi_gcp/diagflow/cx_webhook.py +2 -2
  479. pulumi_gcp/diagflow/entity_type.py +6 -8
  480. pulumi_gcp/diagflow/fulfillment.py +6 -8
  481. pulumi_gcp/diagflow/intent.py +32 -30
  482. pulumi_gcp/discoveryengine/chat_engine.py +4 -4
  483. pulumi_gcp/discoveryengine/data_store.py +8 -8
  484. pulumi_gcp/discoveryengine/search_engine.py +8 -8
  485. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
  486. pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
  487. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
  488. pulumi_gcp/dns/get_keys.py +2 -0
  489. pulumi_gcp/dns/get_managed_zone_iam_policy.py +4 -4
  490. pulumi_gcp/dns/managed_zone.py +82 -38
  491. pulumi_gcp/dns/policy.py +14 -4
  492. pulumi_gcp/dns/record_set.py +76 -44
  493. pulumi_gcp/dns/response_policy.py +16 -4
  494. pulumi_gcp/dns/response_policy_rule.py +12 -4
  495. pulumi_gcp/edgecontainer/cluster.py +54 -48
  496. pulumi_gcp/edgecontainer/node_pool.py +34 -16
  497. pulumi_gcp/edgecontainer/vpn_connection.py +12 -8
  498. pulumi_gcp/edgenetwork/network.py +2 -2
  499. pulumi_gcp/edgenetwork/subnet.py +8 -8
  500. pulumi_gcp/endpoints/get_service_iam_policy.py +2 -2
  501. pulumi_gcp/endpoints/service.py +12 -12
  502. pulumi_gcp/endpoints/service_iam_binding.py +6 -6
  503. pulumi_gcp/endpoints/service_iam_member.py +6 -6
  504. pulumi_gcp/endpoints/service_iam_policy.py +6 -6
  505. pulumi_gcp/essentialcontacts/document_ai_processor.py +2 -2
  506. pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py +8 -8
  507. pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +18 -18
  508. pulumi_gcp/eventarc/channel.py +10 -10
  509. pulumi_gcp/eventarc/google_channel_config.py +8 -8
  510. pulumi_gcp/eventarc/trigger.py +6 -2
  511. pulumi_gcp/filestore/backup.py +4 -0
  512. pulumi_gcp/filestore/instance.py +44 -30
  513. pulumi_gcp/filestore/snapshot.py +8 -0
  514. pulumi_gcp/firebase/_inputs.py +0 -6
  515. pulumi_gcp/firebase/android_app.py +8 -12
  516. pulumi_gcp/firebase/app_check_debug_token.py +38 -0
  517. pulumi_gcp/firebase/app_check_service_config.py +6 -12
  518. pulumi_gcp/firebase/apple_app.py +8 -12
  519. pulumi_gcp/firebase/database_instance.py +26 -36
  520. pulumi_gcp/firebase/extensions_instance.py +8 -10
  521. pulumi_gcp/firebase/hosting_channel.py +14 -22
  522. pulumi_gcp/firebase/hosting_custom_domain.py +40 -54
  523. pulumi_gcp/firebase/hosting_release.py +48 -66
  524. pulumi_gcp/firebase/hosting_site.py +6 -12
  525. pulumi_gcp/firebase/hosting_version.py +66 -86
  526. pulumi_gcp/firebase/outputs.py +0 -6
  527. pulumi_gcp/firebase/project.py +10 -10
  528. pulumi_gcp/firebase/storage_bucket.py +10 -12
  529. pulumi_gcp/firebase/web_app.py +46 -40
  530. pulumi_gcp/firebaserules/release.py +20 -24
  531. pulumi_gcp/firebaserules/ruleset.py +10 -10
  532. pulumi_gcp/firestore/backup_schedule.py +4 -0
  533. pulumi_gcp/firestore/database.py +40 -32
  534. pulumi_gcp/firestore/document.py +132 -0
  535. pulumi_gcp/firestore/field.py +126 -0
  536. pulumi_gcp/firestore/index.py +94 -10
  537. pulumi_gcp/folder/access_approval_settings.py +26 -18
  538. pulumi_gcp/folder/get_iam_policy.py +2 -2
  539. pulumi_gcp/folder/iam_audit_config.py +42 -42
  540. pulumi_gcp/folder/iam_member.py +42 -42
  541. pulumi_gcp/folder/iam_policy.py +42 -42
  542. pulumi_gcp/folder/organization_policy.py +22 -22
  543. pulumi_gcp/gkebackup/backup_plan.py +28 -4
  544. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +18 -12
  545. pulumi_gcp/gkebackup/backup_plan_iam_member.py +18 -12
  546. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +18 -12
  547. pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +6 -6
  548. pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +6 -6
  549. pulumi_gcp/gkebackup/restore_plan.py +48 -12
  550. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +48 -12
  551. pulumi_gcp/gkebackup/restore_plan_iam_member.py +48 -12
  552. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +48 -12
  553. pulumi_gcp/gkehub/feature.py +200 -38
  554. pulumi_gcp/gkehub/feature_iam_binding.py +18 -12
  555. pulumi_gcp/gkehub/feature_iam_member.py +18 -12
  556. pulumi_gcp/gkehub/feature_iam_policy.py +18 -12
  557. pulumi_gcp/gkehub/feature_membership.py +54 -22
  558. pulumi_gcp/gkehub/fleet.py +4 -4
  559. pulumi_gcp/gkehub/get_feature_iam_policy.py +6 -6
  560. pulumi_gcp/gkehub/get_membership_iam_policy.py +6 -6
  561. pulumi_gcp/gkehub/get_scope_iam_policy.py +4 -4
  562. pulumi_gcp/gkehub/membership.py +24 -18
  563. pulumi_gcp/gkehub/membership_binding.py +64 -0
  564. pulumi_gcp/gkehub/membership_iam_binding.py +18 -18
  565. pulumi_gcp/gkehub/membership_iam_member.py +18 -18
  566. pulumi_gcp/gkehub/membership_iam_policy.py +18 -18
  567. pulumi_gcp/gkehub/membership_rbac_role_binding.py +60 -0
  568. pulumi_gcp/gkehub/namespace.py +44 -0
  569. pulumi_gcp/gkehub/scope.py +6 -6
  570. pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
  571. pulumi_gcp/gkehub/scope_iam_member.py +12 -12
  572. pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
  573. pulumi_gcp/gkehub/scope_rbac_role_binding.py +36 -0
  574. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +126 -122
  575. pulumi_gcp/gkeonprem/bare_metal_cluster.py +242 -236
  576. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +8 -0
  577. pulumi_gcp/gkeonprem/v_mware_cluster.py +242 -236
  578. pulumi_gcp/gkeonprem/v_mware_node_pool.py +4 -180
  579. pulumi_gcp/healthcare/consent_store.py +32 -10
  580. pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
  581. pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
  582. pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
  583. pulumi_gcp/healthcare/dataset.py +2 -0
  584. pulumi_gcp/healthcare/dataset_iam_binding.py +8 -8
  585. pulumi_gcp/healthcare/dataset_iam_member.py +8 -8
  586. pulumi_gcp/healthcare/dataset_iam_policy.py +8 -8
  587. pulumi_gcp/healthcare/dicom_store.py +30 -26
  588. pulumi_gcp/healthcare/dicom_store_iam_binding.py +14 -14
  589. pulumi_gcp/healthcare/dicom_store_iam_member.py +14 -14
  590. pulumi_gcp/healthcare/dicom_store_iam_policy.py +14 -14
  591. pulumi_gcp/healthcare/fhir_store.py +44 -24
  592. pulumi_gcp/healthcare/fhir_store_iam_binding.py +14 -14
  593. pulumi_gcp/healthcare/fhir_store_iam_member.py +14 -14
  594. pulumi_gcp/healthcare/fhir_store_iam_policy.py +14 -14
  595. pulumi_gcp/healthcare/get_consent_store_iam_policy.py +4 -4
  596. pulumi_gcp/healthcare/get_dataset_iam_policy.py +2 -2
  597. pulumi_gcp/healthcare/get_dicom_store_iam_policy.py +2 -2
  598. pulumi_gcp/healthcare/get_fhir_store_iam_policy.py +2 -2
  599. pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py +2 -2
  600. pulumi_gcp/healthcare/hl7_store.py +30 -20
  601. pulumi_gcp/healthcare/hl7_store_iam_binding.py +14 -14
  602. pulumi_gcp/healthcare/hl7_store_iam_member.py +14 -14
  603. pulumi_gcp/healthcare/hl7_store_iam_policy.py +14 -14
  604. pulumi_gcp/iam/_inputs.py +0 -18
  605. pulumi_gcp/iam/access_boundary_policy.py +100 -0
  606. pulumi_gcp/iam/deny_policy.py +92 -0
  607. pulumi_gcp/iam/outputs.py +0 -18
  608. pulumi_gcp/iam/workforce_pool.py +20 -20
  609. pulumi_gcp/iam/workforce_pool_provider.py +0 -21
  610. pulumi_gcp/iam/workload_identity_pool.py +6 -6
  611. pulumi_gcp/iam/workload_identity_pool_provider.py +8 -46
  612. pulumi_gcp/iap/app_engine_service_iam_binding.py +56 -56
  613. pulumi_gcp/iap/app_engine_service_iam_member.py +56 -56
  614. pulumi_gcp/iap/app_engine_service_iam_policy.py +56 -56
  615. pulumi_gcp/iap/app_engine_version_iam_binding.py +68 -68
  616. pulumi_gcp/iap/app_engine_version_iam_member.py +68 -68
  617. pulumi_gcp/iap/app_engine_version_iam_policy.py +68 -68
  618. pulumi_gcp/iap/brand.py +12 -6
  619. pulumi_gcp/iap/client.py +14 -8
  620. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +6 -6
  621. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +8 -8
  622. pulumi_gcp/iap/get_client.py +2 -2
  623. pulumi_gcp/iap/get_tunnel_iam_policy.py +2 -2
  624. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +6 -6
  625. pulumi_gcp/iap/get_web_backend_service_iam_policy.py +4 -4
  626. pulumi_gcp/iap/get_web_iam_policy.py +2 -2
  627. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +6 -6
  628. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +4 -4
  629. pulumi_gcp/iap/get_web_type_compute_iam_policy.py +2 -2
  630. pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
  631. pulumi_gcp/iap/tunnel_iam_member.py +12 -12
  632. pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
  633. pulumi_gcp/iap/tunnel_instance_iam_binding.py +36 -36
  634. pulumi_gcp/iap/tunnel_instance_iam_member.py +36 -36
  635. pulumi_gcp/iap/tunnel_instance_iam_policy.py +36 -36
  636. pulumi_gcp/iap/web_backend_service_iam_binding.py +24 -24
  637. pulumi_gcp/iap/web_backend_service_iam_member.py +24 -24
  638. pulumi_gcp/iap/web_backend_service_iam_policy.py +24 -24
  639. pulumi_gcp/iap/web_iam_binding.py +12 -12
  640. pulumi_gcp/iap/web_iam_member.py +12 -12
  641. pulumi_gcp/iap/web_iam_policy.py +12 -12
  642. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +36 -36
  643. pulumi_gcp/iap/web_region_backend_service_iam_member.py +36 -36
  644. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +36 -36
  645. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +24 -24
  646. pulumi_gcp/iap/web_type_app_enging_iam_member.py +24 -24
  647. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +24 -24
  648. pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
  649. pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
  650. pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
  651. pulumi_gcp/identityplatform/config.py +12 -8
  652. pulumi_gcp/identityplatform/default_supported_idp_config.py +8 -8
  653. pulumi_gcp/identityplatform/inbound_saml_config.py +8 -4
  654. pulumi_gcp/identityplatform/oauth_idp_config.py +10 -8
  655. pulumi_gcp/identityplatform/tenant.py +4 -4
  656. pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py +2 -2
  657. pulumi_gcp/identityplatform/tenant_inbound_saml_config.py +8 -4
  658. pulumi_gcp/identityplatform/tenant_oauth_idp_config.py +4 -2
  659. pulumi_gcp/integrationconnectors/connection.py +16 -14
  660. pulumi_gcp/integrationconnectors/endpoint_attachment.py +8 -6
  661. pulumi_gcp/kms/crypto_key.py +16 -4
  662. pulumi_gcp/kms/crypto_key_iam_binding.py +32 -26
  663. pulumi_gcp/kms/crypto_key_iam_member.py +32 -26
  664. pulumi_gcp/kms/crypto_key_iam_policy.py +32 -26
  665. pulumi_gcp/kms/crypto_key_version.py +8 -2
  666. pulumi_gcp/kms/get_crypto_key_iam_policy.py +2 -2
  667. pulumi_gcp/kms/get_kms_crypto_key_version.py +2 -2
  668. pulumi_gcp/kms/get_kms_key_ring.py +4 -4
  669. pulumi_gcp/kms/key_ring.py +6 -2
  670. pulumi_gcp/kms/key_ring_iam_binding.py +52 -44
  671. pulumi_gcp/kms/key_ring_iam_member.py +52 -44
  672. pulumi_gcp/kms/key_ring_iam_policy.py +52 -44
  673. pulumi_gcp/kms/secret_ciphertext.py +20 -12
  674. pulumi_gcp/logging/billing_account_exclusion.py +2 -0
  675. pulumi_gcp/logging/billing_account_sink.py +8 -2
  676. pulumi_gcp/logging/folder_exclusion.py +2 -0
  677. pulumi_gcp/logging/folder_settings.py +12 -14
  678. pulumi_gcp/logging/folder_sink.py +8 -2
  679. pulumi_gcp/logging/linked_dataset.py +22 -24
  680. pulumi_gcp/logging/log_view.py +8 -6
  681. pulumi_gcp/logging/metric.py +78 -68
  682. pulumi_gcp/logging/organization_exclusion.py +6 -4
  683. pulumi_gcp/logging/organization_settings.py +10 -12
  684. pulumi_gcp/logging/organization_sink.py +8 -2
  685. pulumi_gcp/logging/project_bucket_config.py +178 -0
  686. pulumi_gcp/logging/project_exclusion.py +2 -0
  687. pulumi_gcp/looker/instance.py +76 -70
  688. pulumi_gcp/memcache/instance.py +10 -6
  689. pulumi_gcp/migrationcenter/group.py +6 -6
  690. pulumi_gcp/ml/engine_model.py +8 -4
  691. pulumi_gcp/monitoring/alert_policy.py +58 -58
  692. pulumi_gcp/monitoring/custom_service.py +2 -2
  693. pulumi_gcp/monitoring/dashboard.py +0 -4
  694. pulumi_gcp/monitoring/generic_service.py +18 -18
  695. pulumi_gcp/monitoring/get_app_engine_service.py +10 -2
  696. pulumi_gcp/monitoring/get_cluster_istio_service.py +10 -8
  697. pulumi_gcp/monitoring/get_istio_canonical_service.py +6 -4
  698. pulumi_gcp/monitoring/get_mesh_istio_service.py +6 -4
  699. pulumi_gcp/monitoring/get_notification_channel.py +2 -2
  700. pulumi_gcp/monitoring/metric_descriptor.py +34 -34
  701. pulumi_gcp/monitoring/monitored_project.py +14 -4
  702. pulumi_gcp/monitoring/notification_channel.py +8 -8
  703. pulumi_gcp/monitoring/slo.py +238 -4
  704. pulumi_gcp/monitoring/uptime_check_config.py +106 -102
  705. pulumi_gcp/netapp/active_directory.py +4 -2
  706. pulumi_gcp/netapp/backup_policy.py +12 -10
  707. pulumi_gcp/netapp/backup_vault.py +4 -2
  708. pulumi_gcp/netapp/kmsconfig.py +14 -6
  709. pulumi_gcp/netapp/storage_pool.py +12 -8
  710. pulumi_gcp/netapp/volume.py +12 -8
  711. pulumi_gcp/netapp/volume_snapshot.py +16 -12
  712. pulumi_gcp/networkconnectivity/hub.py +6 -4
  713. pulumi_gcp/networkconnectivity/policy_based_route.py +18 -6
  714. pulumi_gcp/networkconnectivity/service_connection_policy.py +12 -4
  715. pulumi_gcp/networkconnectivity/spoke.py +28 -8
  716. pulumi_gcp/networkmanagement/connectivity_test.py +36 -22
  717. pulumi_gcp/networksecurity/address_group.py +32 -26
  718. pulumi_gcp/networksecurity/authorization_policy.py +8 -8
  719. pulumi_gcp/networksecurity/client_tls_policy.py +8 -8
  720. pulumi_gcp/networksecurity/firewall_endpoint.py +4 -4
  721. pulumi_gcp/networksecurity/gateway_security_policy.py +38 -54
  722. pulumi_gcp/networksecurity/gateway_security_policy_rule.py +20 -12
  723. pulumi_gcp/networksecurity/security_profile.py +8 -8
  724. pulumi_gcp/networksecurity/security_profile_group.py +10 -10
  725. pulumi_gcp/networksecurity/server_tls_policy.py +30 -28
  726. pulumi_gcp/networksecurity/tls_inspection_policy.py +28 -44
  727. pulumi_gcp/networksecurity/url_list.py +6 -2
  728. pulumi_gcp/networkservices/edge_cache_keyset.py +4 -0
  729. pulumi_gcp/networkservices/edge_cache_origin.py +12 -4
  730. pulumi_gcp/networkservices/edge_cache_service.py +270 -16
  731. pulumi_gcp/networkservices/endpoint_policy.py +8 -8
  732. pulumi_gcp/networkservices/gateway.py +96 -60
  733. pulumi_gcp/networkservices/grpc_route.py +12 -12
  734. pulumi_gcp/networkservices/http_route.py +26 -26
  735. pulumi_gcp/networkservices/mesh.py +8 -8
  736. pulumi_gcp/networkservices/service_binding.py +16 -20
  737. pulumi_gcp/networkservices/tcp_route.py +298 -0
  738. pulumi_gcp/networkservices/tls_route.py +214 -0
  739. pulumi_gcp/notebooks/environment.py +6 -4
  740. pulumi_gcp/notebooks/get_instance_iam_policy.py +6 -6
  741. pulumi_gcp/notebooks/get_runtime_iam_policy.py +6 -6
  742. pulumi_gcp/notebooks/instance.py +38 -28
  743. pulumi_gcp/notebooks/instance_iam_binding.py +18 -18
  744. pulumi_gcp/notebooks/instance_iam_member.py +18 -18
  745. pulumi_gcp/notebooks/instance_iam_policy.py +18 -18
  746. pulumi_gcp/notebooks/runtime.py +74 -64
  747. pulumi_gcp/notebooks/runtime_iam_binding.py +18 -18
  748. pulumi_gcp/notebooks/runtime_iam_member.py +18 -18
  749. pulumi_gcp/notebooks/runtime_iam_policy.py +18 -18
  750. pulumi_gcp/organizations/access_approval_settings.py +34 -26
  751. pulumi_gcp/organizations/get_billing_account.py +6 -2
  752. pulumi_gcp/organizations/get_folders.py +2 -2
  753. pulumi_gcp/organizations/get_iam_policy.py +0 -62
  754. pulumi_gcp/organizations/iam_audit_config.py +8 -8
  755. pulumi_gcp/organizations/iam_binding.py +4 -4
  756. pulumi_gcp/organizations/iam_custom_role.py +8 -8
  757. pulumi_gcp/organizations/iam_member.py +42 -42
  758. pulumi_gcp/organizations/iam_policy.py +42 -42
  759. pulumi_gcp/organizations/policy.py +26 -26
  760. pulumi_gcp/organizations/project.py +16 -4
  761. pulumi_gcp/orgpolicy/custom_constraint.py +14 -8
  762. pulumi_gcp/orgpolicy/policy.py +46 -22
  763. pulumi_gcp/osconfig/guest_policies.py +16 -22
  764. pulumi_gcp/osconfig/os_policy_assignment.py +42 -40
  765. pulumi_gcp/osconfig/patch_deployment.py +122 -120
  766. pulumi_gcp/oslogin/ssh_public_key.py +4 -2
  767. pulumi_gcp/projects/access_approval_settings.py +24 -22
  768. pulumi_gcp/projects/api_key.py +50 -10
  769. pulumi_gcp/projects/default_service_accounts.py +10 -10
  770. pulumi_gcp/projects/iam_audit_config.py +46 -46
  771. pulumi_gcp/projects/iam_binding.py +46 -46
  772. pulumi_gcp/projects/iam_custom_role.py +6 -6
  773. pulumi_gcp/projects/iam_member.py +46 -46
  774. pulumi_gcp/projects/iam_policy.py +46 -46
  775. pulumi_gcp/projects/organization_policy.py +26 -26
  776. pulumi_gcp/projects/service.py +4 -4
  777. pulumi_gcp/projects/service_identity.py +6 -8
  778. pulumi_gcp/projects/usage_export_bucket.py +16 -4
  779. pulumi_gcp/pubsub/get_schema_iam_policy.py +4 -4
  780. pulumi_gcp/pubsub/get_subscription_iam_policy.py +2 -2
  781. pulumi_gcp/pubsub/get_topic_iam_policy.py +4 -4
  782. pulumi_gcp/pubsub/lite_reservation.py +2 -0
  783. pulumi_gcp/pubsub/lite_subscription.py +10 -6
  784. pulumi_gcp/pubsub/lite_topic.py +10 -6
  785. pulumi_gcp/pubsub/schema.py +22 -18
  786. pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
  787. pulumi_gcp/pubsub/schema_iam_member.py +12 -12
  788. pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
  789. pulumi_gcp/pubsub/subscription.py +204 -96
  790. pulumi_gcp/pubsub/subscription_iam_binding.py +8 -8
  791. pulumi_gcp/pubsub/subscription_iam_member.py +8 -8
  792. pulumi_gcp/pubsub/subscription_iam_policy.py +8 -8
  793. pulumi_gcp/pubsub/topic.py +46 -24
  794. pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
  795. pulumi_gcp/pubsub/topic_iam_member.py +12 -12
  796. pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
  797. pulumi_gcp/recaptcha/enterprise_key.py +54 -54
  798. pulumi_gcp/redis/cluster.py +32 -24
  799. pulumi_gcp/redis/instance.py +132 -14
  800. pulumi_gcp/resourcemanager/lien.py +12 -8
  801. pulumi_gcp/runtimeconfig/config.py +6 -2
  802. pulumi_gcp/runtimeconfig/get_variable.py +4 -4
  803. pulumi_gcp/runtimeconfig/variable.py +20 -8
  804. pulumi_gcp/secretmanager/get_secret_iam_policy.py +4 -4
  805. pulumi_gcp/secretmanager/secret.py +16 -18
  806. pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
  807. pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
  808. pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
  809. pulumi_gcp/secretmanager/secret_version.py +4 -4
  810. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +6 -6
  811. pulumi_gcp/securesourcemanager/instance.py +144 -14
  812. pulumi_gcp/securitycenter/get_source_iam_policy.py +2 -2
  813. pulumi_gcp/securitycenter/instance_iam_binding.py +60 -40
  814. pulumi_gcp/securitycenter/instance_iam_member.py +60 -40
  815. pulumi_gcp/securitycenter/instance_iam_policy.py +60 -40
  816. pulumi_gcp/securitycenter/mute_config.py +6 -6
  817. pulumi_gcp/securitycenter/notification_config.py +4 -4
  818. pulumi_gcp/securitycenter/organization_custom_module.py +40 -40
  819. pulumi_gcp/securitycenter/project_custom_module.py +36 -36
  820. pulumi_gcp/securitycenter/source.py +6 -6
  821. pulumi_gcp/securitycenter/source_iam_binding.py +6 -6
  822. pulumi_gcp/securitycenter/source_iam_member.py +6 -6
  823. pulumi_gcp/securitycenter/source_iam_policy.py +6 -6
  824. pulumi_gcp/securityposture/posture.py +46 -46
  825. pulumi_gcp/serviceaccount/account.py +2 -2
  826. pulumi_gcp/serviceaccount/get_account.py +34 -0
  827. pulumi_gcp/serviceaccount/get_account_access_token.py +8 -10
  828. pulumi_gcp/serviceaccount/get_account_key.py +4 -4
  829. pulumi_gcp/serviceaccount/get_iam_policy.py +2 -2
  830. pulumi_gcp/serviceaccount/key.py +46 -2
  831. pulumi_gcp/servicedirectory/endpoint.py +28 -40
  832. pulumi_gcp/servicedirectory/namespace.py +2 -4
  833. pulumi_gcp/servicedirectory/namespace_iam_binding.py +14 -12
  834. pulumi_gcp/servicedirectory/namespace_iam_member.py +14 -12
  835. pulumi_gcp/servicedirectory/namespace_iam_policy.py +14 -12
  836. pulumi_gcp/servicedirectory/service.py +10 -14
  837. pulumi_gcp/servicedirectory/service_iam_binding.py +14 -12
  838. pulumi_gcp/servicedirectory/service_iam_member.py +14 -12
  839. pulumi_gcp/servicedirectory/service_iam_policy.py +14 -12
  840. pulumi_gcp/servicenetworking/connection.py +8 -6
  841. pulumi_gcp/servicenetworking/peered_dns_domain.py +6 -4
  842. pulumi_gcp/serviceusage/consumer_quota_override.py +126 -0
  843. pulumi_gcp/sourcerepo/get_repository_iam_policy.py +4 -4
  844. pulumi_gcp/sourcerepo/repository.py +20 -16
  845. pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
  846. pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
  847. pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
  848. pulumi_gcp/spanner/database.py +2 -0
  849. pulumi_gcp/spanner/database_iam_binding.py +12 -12
  850. pulumi_gcp/spanner/database_iam_member.py +12 -12
  851. pulumi_gcp/spanner/database_iam_policy.py +12 -12
  852. pulumi_gcp/spanner/get_database_iam_policy.py +6 -6
  853. pulumi_gcp/spanner/get_instance_iam_policy.py +4 -4
  854. pulumi_gcp/spanner/instance.py +16 -16
  855. pulumi_gcp/spanner/instance_iam_binding.py +8 -8
  856. pulumi_gcp/spanner/instance_iam_member.py +8 -8
  857. pulumi_gcp/spanner/instance_iam_policy.py +8 -8
  858. pulumi_gcp/sql/database.py +14 -4
  859. pulumi_gcp/sql/database_instance.py +76 -26
  860. pulumi_gcp/sql/get_backup_run.py +2 -2
  861. pulumi_gcp/sql/get_ca_certs.py +32 -0
  862. pulumi_gcp/sql/get_database.py +2 -2
  863. pulumi_gcp/sql/get_databases.py +2 -2
  864. pulumi_gcp/sql/source_representation_instance.py +20 -16
  865. pulumi_gcp/sql/ssl_cert.py +6 -4
  866. pulumi_gcp/sql/user.py +154 -0
  867. pulumi_gcp/storage/bucket.py +44 -38
  868. pulumi_gcp/storage/bucket_access_control.py +8 -4
  869. pulumi_gcp/storage/bucket_acl.py +6 -2
  870. pulumi_gcp/storage/bucket_iam_binding.py +12 -12
  871. pulumi_gcp/storage/bucket_iam_member.py +12 -12
  872. pulumi_gcp/storage/bucket_iam_policy.py +12 -12
  873. pulumi_gcp/storage/bucket_object.py +14 -12
  874. pulumi_gcp/storage/default_object_access_control.py +8 -4
  875. pulumi_gcp/storage/default_object_acl.py +6 -2
  876. pulumi_gcp/storage/get_bucket_iam_policy.py +2 -2
  877. pulumi_gcp/storage/get_bucket_object.py +4 -4
  878. pulumi_gcp/storage/get_object_signed_url.py +6 -4
  879. pulumi_gcp/storage/get_project_service_account.py +6 -6
  880. pulumi_gcp/storage/hmac_key.py +2 -2
  881. pulumi_gcp/storage/insights_report_config.py +14 -14
  882. pulumi_gcp/storage/notification.py +20 -18
  883. pulumi_gcp/storage/object_access_control.py +10 -4
  884. pulumi_gcp/storage/object_acl.py +8 -2
  885. pulumi_gcp/storage/transfer_agent_pool.py +6 -6
  886. pulumi_gcp/storage/transfer_job.py +30 -38
  887. pulumi_gcp/tags/get_tag_key_iam_policy.py +2 -2
  888. pulumi_gcp/tags/get_tag_value_iam_policy.py +2 -2
  889. pulumi_gcp/tags/location_tag_binding.py +44 -32
  890. pulumi_gcp/tags/tag_binding.py +16 -10
  891. pulumi_gcp/tags/tag_key.py +4 -4
  892. pulumi_gcp/tags/tag_key_iam_binding.py +6 -6
  893. pulumi_gcp/tags/tag_key_iam_member.py +6 -6
  894. pulumi_gcp/tags/tag_key_iam_policy.py +6 -6
  895. pulumi_gcp/tags/tag_value.py +8 -8
  896. pulumi_gcp/tags/tag_value_iam_binding.py +6 -6
  897. pulumi_gcp/tags/tag_value_iam_member.py +6 -6
  898. pulumi_gcp/tags/tag_value_iam_policy.py +6 -6
  899. pulumi_gcp/tpu/get_tensorflow_versions.py +2 -0
  900. pulumi_gcp/tpu/get_v2_accelerator_types.py +10 -8
  901. pulumi_gcp/tpu/get_v2_runtime_versions.py +2 -0
  902. pulumi_gcp/tpu/node.py +12 -6
  903. pulumi_gcp/tpu/v2_vm.py +134 -2
  904. pulumi_gcp/vertex/ai_dataset.py +6 -6
  905. pulumi_gcp/vertex/ai_endpoint.py +28 -26
  906. pulumi_gcp/vertex/ai_feature_group.py +8 -6
  907. pulumi_gcp/vertex/ai_feature_group_feature.py +12 -8
  908. pulumi_gcp/vertex/ai_feature_online_store.py +26 -24
  909. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +36 -28
  910. pulumi_gcp/vertex/ai_feature_store.py +30 -26
  911. pulumi_gcp/vertex/ai_feature_store_entity_type.py +12 -8
  912. pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py +18 -12
  913. pulumi_gcp/vertex/ai_index.py +8 -0
  914. pulumi_gcp/vertex/ai_index_endpoint.py +36 -36
  915. pulumi_gcp/vertex/ai_metadata_store.py +2 -0
  916. pulumi_gcp/vertex/ai_tensorboard.py +12 -14
  917. pulumi_gcp/vmwareengine/cluster.py +12 -0
  918. pulumi_gcp/vmwareengine/external_access_rule.py +16 -0
  919. pulumi_gcp/vmwareengine/external_address.py +10 -4
  920. pulumi_gcp/vmwareengine/get_network.py +4 -4
  921. pulumi_gcp/vmwareengine/get_network_policy.py +4 -4
  922. pulumi_gcp/vmwareengine/get_private_cloud.py +4 -4
  923. pulumi_gcp/vmwareengine/network.py +56 -4
  924. pulumi_gcp/vmwareengine/network_peering.py +12 -2
  925. pulumi_gcp/vmwareengine/network_policy.py +8 -0
  926. pulumi_gcp/vmwareengine/private_cloud.py +8 -0
  927. pulumi_gcp/vmwareengine/subnet.py +6 -0
  928. pulumi_gcp/vpcaccess/connector.py +16 -6
  929. pulumi_gcp/vpcaccess/get_connector.py +2 -0
  930. pulumi_gcp/workbench/get_instance_iam_policy.py +6 -6
  931. pulumi_gcp/workbench/instance.py +42 -26
  932. pulumi_gcp/workflows/workflow.py +98 -0
  933. pulumi_gcp/workstations/workstation.py +26 -30
  934. pulumi_gcp/workstations/workstation_cluster.py +48 -48
  935. pulumi_gcp/workstations/workstation_config.py +182 -194
  936. {pulumi_gcp-7.12.0a1709102105.dist-info → pulumi_gcp-7.12.0a1709149267.dist-info}/METADATA +1 -1
  937. pulumi_gcp-7.12.0a1709149267.dist-info/RECORD +1489 -0
  938. pulumi_gcp-7.12.0a1709102105.dist-info/RECORD +0 -1489
  939. {pulumi_gcp-7.12.0a1709102105.dist-info → pulumi_gcp-7.12.0a1709149267.dist-info}/WHEEL +0 -0
  940. {pulumi_gcp-7.12.0a1709102105.dist-info → pulumi_gcp-7.12.0a1709149267.dist-info}/top_level.txt +0 -0
@@ -544,6 +544,579 @@ class URLMap(pulumi.CustomResource):
544
544
  * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/urlMaps)
545
545
 
546
546
  ## Example Usage
547
+ ### Url Map Bucket And Service
548
+
549
+ ```python
550
+ import pulumi
551
+ import pulumi_gcp as gcp
552
+
553
+ default = gcp.compute.HttpHealthCheck("default",
554
+ name="health-check",
555
+ request_path="/",
556
+ check_interval_sec=1,
557
+ timeout_sec=1)
558
+ login = gcp.compute.BackendService("login",
559
+ name="login",
560
+ port_name="http",
561
+ protocol="HTTP",
562
+ timeout_sec=10,
563
+ health_checks=default.id)
564
+ static_bucket = gcp.storage.Bucket("static",
565
+ name="static-asset-bucket",
566
+ location="US")
567
+ static = gcp.compute.BackendBucket("static",
568
+ name="static-asset-backend-bucket",
569
+ bucket_name=static_bucket.name,
570
+ enable_cdn=True)
571
+ urlmap = gcp.compute.URLMap("urlmap",
572
+ name="urlmap",
573
+ description="a description",
574
+ default_service=static.id,
575
+ host_rules=[
576
+ gcp.compute.URLMapHostRuleArgs(
577
+ hosts=["mysite.com"],
578
+ path_matcher="mysite",
579
+ ),
580
+ gcp.compute.URLMapHostRuleArgs(
581
+ hosts=["myothersite.com"],
582
+ path_matcher="otherpaths",
583
+ ),
584
+ ],
585
+ path_matchers=[
586
+ gcp.compute.URLMapPathMatcherArgs(
587
+ name="mysite",
588
+ default_service=static.id,
589
+ path_rules=[
590
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
591
+ paths=["/home"],
592
+ service=static.id,
593
+ ),
594
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
595
+ paths=["/login"],
596
+ service=login.id,
597
+ ),
598
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
599
+ paths=["/static"],
600
+ service=static.id,
601
+ ),
602
+ ],
603
+ ),
604
+ gcp.compute.URLMapPathMatcherArgs(
605
+ name="otherpaths",
606
+ default_service=static.id,
607
+ ),
608
+ ],
609
+ tests=[gcp.compute.URLMapTestArgs(
610
+ service=static.id,
611
+ host="example.com",
612
+ path="/home",
613
+ )])
614
+ ```
615
+ ### Url Map Traffic Director Route
616
+
617
+ ```python
618
+ import pulumi
619
+ import pulumi_gcp as gcp
620
+
621
+ default = gcp.compute.HealthCheck("default",
622
+ name="health-check",
623
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
624
+ port=80,
625
+ ))
626
+ home = gcp.compute.BackendService("home",
627
+ name="home",
628
+ port_name="http",
629
+ protocol="HTTP",
630
+ timeout_sec=10,
631
+ health_checks=default.id,
632
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
633
+ urlmap = gcp.compute.URLMap("urlmap",
634
+ name="urlmap",
635
+ description="a description",
636
+ default_service=home.id,
637
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
638
+ hosts=["mysite.com"],
639
+ path_matcher="allpaths",
640
+ )],
641
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
642
+ name="allpaths",
643
+ default_service=home.id,
644
+ route_rules=[gcp.compute.URLMapPathMatcherRouteRuleArgs(
645
+ priority=1,
646
+ header_action=gcp.compute.URLMapPathMatcherRouteRuleHeaderActionArgs(
647
+ request_headers_to_removes=["RemoveMe2"],
648
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs(
649
+ header_name="AddSomethingElse",
650
+ header_value="MyOtherValue",
651
+ replace=True,
652
+ )],
653
+ response_headers_to_removes=["RemoveMe3"],
654
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs(
655
+ header_name="AddMe",
656
+ header_value="MyValue",
657
+ replace=False,
658
+ )],
659
+ ),
660
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
661
+ full_path_match="a full path",
662
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
663
+ header_name="someheader",
664
+ exact_match="match this exactly",
665
+ invert_match=True,
666
+ )],
667
+ ignore_case=True,
668
+ metadata_filters=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs(
669
+ filter_match_criteria="MATCH_ANY",
670
+ filter_labels=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs(
671
+ name="PLANET",
672
+ value="MARS",
673
+ )],
674
+ )],
675
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
676
+ name="a query parameter",
677
+ present_match=True,
678
+ )],
679
+ )],
680
+ url_redirect=gcp.compute.URLMapPathMatcherRouteRuleUrlRedirectArgs(
681
+ host_redirect="A host",
682
+ https_redirect=False,
683
+ path_redirect="some/path",
684
+ redirect_response_code="TEMPORARY_REDIRECT",
685
+ strip_query=True,
686
+ ),
687
+ )],
688
+ )],
689
+ tests=[gcp.compute.URLMapTestArgs(
690
+ service=home.id,
691
+ host="hi.com",
692
+ path="/home",
693
+ )])
694
+ ```
695
+ ### Url Map Traffic Director Route Partial
696
+
697
+ ```python
698
+ import pulumi
699
+ import pulumi_gcp as gcp
700
+
701
+ default = gcp.compute.HealthCheck("default",
702
+ name="health-check",
703
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
704
+ port=80,
705
+ ))
706
+ home = gcp.compute.BackendService("home",
707
+ name="home",
708
+ port_name="http",
709
+ protocol="HTTP",
710
+ timeout_sec=10,
711
+ health_checks=default.id,
712
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
713
+ urlmap = gcp.compute.URLMap("urlmap",
714
+ name="urlmap",
715
+ description="a description",
716
+ default_service=home.id,
717
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
718
+ hosts=["mysite.com"],
719
+ path_matcher="allpaths",
720
+ )],
721
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
722
+ name="allpaths",
723
+ default_service=home.id,
724
+ route_rules=[gcp.compute.URLMapPathMatcherRouteRuleArgs(
725
+ priority=1,
726
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
727
+ prefix_match="/someprefix",
728
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
729
+ header_name="someheader",
730
+ exact_match="match this exactly",
731
+ invert_match=True,
732
+ )],
733
+ )],
734
+ url_redirect=gcp.compute.URLMapPathMatcherRouteRuleUrlRedirectArgs(
735
+ path_redirect="some/path",
736
+ redirect_response_code="TEMPORARY_REDIRECT",
737
+ ),
738
+ )],
739
+ )],
740
+ tests=[gcp.compute.URLMapTestArgs(
741
+ service=home.id,
742
+ host="hi.com",
743
+ path="/home",
744
+ )])
745
+ ```
746
+ ### Url Map Traffic Director Path
747
+
748
+ ```python
749
+ import pulumi
750
+ import pulumi_gcp as gcp
751
+
752
+ default = gcp.compute.HealthCheck("default",
753
+ name="health-check",
754
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
755
+ port=80,
756
+ ))
757
+ home = gcp.compute.BackendService("home",
758
+ name="home",
759
+ port_name="http",
760
+ protocol="HTTP",
761
+ timeout_sec=10,
762
+ health_checks=default.id,
763
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
764
+ urlmap = gcp.compute.URLMap("urlmap",
765
+ name="urlmap",
766
+ description="a description",
767
+ default_service=home.id,
768
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
769
+ hosts=["mysite.com"],
770
+ path_matcher="allpaths",
771
+ )],
772
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
773
+ name="allpaths",
774
+ default_service=home.id,
775
+ path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(
776
+ paths=["/home"],
777
+ route_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionArgs(
778
+ cors_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionCorsPolicyArgs(
779
+ allow_credentials=True,
780
+ allow_headers=["Allowed content"],
781
+ allow_methods=["GET"],
782
+ allow_origin_regexes=["abc.*"],
783
+ allow_origins=["Allowed origin"],
784
+ expose_headers=["Exposed header"],
785
+ max_age=30,
786
+ disabled=False,
787
+ ),
788
+ fault_injection_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs(
789
+ abort=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs(
790
+ http_status=234,
791
+ percentage=5.6,
792
+ ),
793
+ delay=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs(
794
+ fixed_delay=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs(
795
+ seconds="0",
796
+ nanos=50000,
797
+ ),
798
+ percentage=7.8,
799
+ ),
800
+ ),
801
+ request_mirror_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs(
802
+ backend_service=home.id,
803
+ ),
804
+ retry_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionRetryPolicyArgs(
805
+ num_retries=4,
806
+ per_try_timeout=gcp.compute.URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(
807
+ seconds="30",
808
+ ),
809
+ retry_conditions=[
810
+ "5xx",
811
+ "deadline-exceeded",
812
+ ],
813
+ ),
814
+ timeout=gcp.compute.URLMapPathMatcherPathRuleRouteActionTimeoutArgs(
815
+ seconds="20",
816
+ nanos=750000000,
817
+ ),
818
+ url_rewrite=gcp.compute.URLMapPathMatcherPathRuleRouteActionUrlRewriteArgs(
819
+ host_rewrite="dev.example.com",
820
+ path_prefix_rewrite="/v1/api/",
821
+ ),
822
+ weighted_backend_services=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(
823
+ backend_service=home.id,
824
+ weight=400,
825
+ header_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(
826
+ request_headers_to_removes=["RemoveMe"],
827
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(
828
+ header_name="AddMe",
829
+ header_value="MyValue",
830
+ replace=True,
831
+ )],
832
+ response_headers_to_removes=["RemoveMe"],
833
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(
834
+ header_name="AddMe",
835
+ header_value="MyValue",
836
+ replace=False,
837
+ )],
838
+ ),
839
+ )],
840
+ ),
841
+ )],
842
+ )],
843
+ tests=[gcp.compute.URLMapTestArgs(
844
+ service=home.id,
845
+ host="hi.com",
846
+ path="/home",
847
+ )])
848
+ ```
849
+ ### Url Map Traffic Director Path Partial
850
+
851
+ ```python
852
+ import pulumi
853
+ import pulumi_gcp as gcp
854
+
855
+ default = gcp.compute.HealthCheck("default",
856
+ name="health-check",
857
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
858
+ port=80,
859
+ ))
860
+ home = gcp.compute.BackendService("home",
861
+ name="home",
862
+ port_name="http",
863
+ protocol="HTTP",
864
+ timeout_sec=10,
865
+ health_checks=default.id,
866
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
867
+ urlmap = gcp.compute.URLMap("urlmap",
868
+ name="urlmap",
869
+ description="a description",
870
+ default_service=home.id,
871
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
872
+ hosts=["mysite.com"],
873
+ path_matcher="allpaths",
874
+ )],
875
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
876
+ name="allpaths",
877
+ default_service=home.id,
878
+ path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(
879
+ paths=["/home"],
880
+ route_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionArgs(
881
+ cors_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionCorsPolicyArgs(
882
+ allow_credentials=True,
883
+ allow_headers=["Allowed content"],
884
+ allow_methods=["GET"],
885
+ allow_origin_regexes=["abc.*"],
886
+ allow_origins=["Allowed origin"],
887
+ expose_headers=["Exposed header"],
888
+ max_age=30,
889
+ disabled=False,
890
+ ),
891
+ weighted_backend_services=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(
892
+ backend_service=home.id,
893
+ weight=400,
894
+ header_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(
895
+ request_headers_to_removes=["RemoveMe"],
896
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(
897
+ header_name="AddMe",
898
+ header_value="MyValue",
899
+ replace=True,
900
+ )],
901
+ response_headers_to_removes=["RemoveMe"],
902
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(
903
+ header_name="AddMe",
904
+ header_value="MyValue",
905
+ replace=False,
906
+ )],
907
+ ),
908
+ )],
909
+ ),
910
+ )],
911
+ )],
912
+ tests=[gcp.compute.URLMapTestArgs(
913
+ service=home.id,
914
+ host="hi.com",
915
+ path="/home",
916
+ )])
917
+ ```
918
+ ### Url Map Header Based Routing
919
+
920
+ ```python
921
+ import pulumi
922
+ import pulumi_gcp as gcp
923
+
924
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
925
+ name="health-check",
926
+ request_path="/",
927
+ check_interval_sec=1,
928
+ timeout_sec=1)
929
+ default = gcp.compute.BackendService("default",
930
+ name="default",
931
+ port_name="http",
932
+ protocol="HTTP",
933
+ timeout_sec=10,
934
+ health_checks=default_http_health_check.id)
935
+ service_a = gcp.compute.BackendService("service-a",
936
+ name="service-a",
937
+ port_name="http",
938
+ protocol="HTTP",
939
+ timeout_sec=10,
940
+ health_checks=default_http_health_check.id)
941
+ service_b = gcp.compute.BackendService("service-b",
942
+ name="service-b",
943
+ port_name="http",
944
+ protocol="HTTP",
945
+ timeout_sec=10,
946
+ health_checks=default_http_health_check.id)
947
+ urlmap = gcp.compute.URLMap("urlmap",
948
+ name="urlmap",
949
+ description="header-based routing example",
950
+ default_service=default.id,
951
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
952
+ hosts=["*"],
953
+ path_matcher="allpaths",
954
+ )],
955
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
956
+ name="allpaths",
957
+ default_service=default.id,
958
+ route_rules=[
959
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
960
+ priority=1,
961
+ service=service_a.id,
962
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
963
+ prefix_match="/",
964
+ ignore_case=True,
965
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
966
+ header_name="abtest",
967
+ exact_match="a",
968
+ )],
969
+ )],
970
+ ),
971
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
972
+ priority=2,
973
+ service=service_b.id,
974
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
975
+ ignore_case=True,
976
+ prefix_match="/",
977
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
978
+ header_name="abtest",
979
+ exact_match="b",
980
+ )],
981
+ )],
982
+ ),
983
+ ],
984
+ )])
985
+ ```
986
+ ### Url Map Parameter Based Routing
987
+
988
+ ```python
989
+ import pulumi
990
+ import pulumi_gcp as gcp
991
+
992
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
993
+ name="health-check",
994
+ request_path="/",
995
+ check_interval_sec=1,
996
+ timeout_sec=1)
997
+ default = gcp.compute.BackendService("default",
998
+ name="default",
999
+ port_name="http",
1000
+ protocol="HTTP",
1001
+ timeout_sec=10,
1002
+ health_checks=default_http_health_check.id)
1003
+ service_a = gcp.compute.BackendService("service-a",
1004
+ name="service-a",
1005
+ port_name="http",
1006
+ protocol="HTTP",
1007
+ timeout_sec=10,
1008
+ health_checks=default_http_health_check.id)
1009
+ service_b = gcp.compute.BackendService("service-b",
1010
+ name="service-b",
1011
+ port_name="http",
1012
+ protocol="HTTP",
1013
+ timeout_sec=10,
1014
+ health_checks=default_http_health_check.id)
1015
+ urlmap = gcp.compute.URLMap("urlmap",
1016
+ name="urlmap",
1017
+ description="parameter-based routing example",
1018
+ default_service=default.id,
1019
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1020
+ hosts=["*"],
1021
+ path_matcher="allpaths",
1022
+ )],
1023
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1024
+ name="allpaths",
1025
+ default_service=default.id,
1026
+ route_rules=[
1027
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1028
+ priority=1,
1029
+ service=service_a.id,
1030
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1031
+ prefix_match="/",
1032
+ ignore_case=True,
1033
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
1034
+ name="abtest",
1035
+ exact_match="a",
1036
+ )],
1037
+ )],
1038
+ ),
1039
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1040
+ priority=2,
1041
+ service=service_b.id,
1042
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1043
+ ignore_case=True,
1044
+ prefix_match="/",
1045
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
1046
+ name="abtest",
1047
+ exact_match="b",
1048
+ )],
1049
+ )],
1050
+ ),
1051
+ ],
1052
+ )])
1053
+ ```
1054
+ ### Url Map Path Template Match
1055
+
1056
+ ```python
1057
+ import pulumi
1058
+ import pulumi_gcp as gcp
1059
+
1060
+ default = gcp.compute.HttpHealthCheck("default",
1061
+ name="health-check",
1062
+ request_path="/",
1063
+ check_interval_sec=1,
1064
+ timeout_sec=1)
1065
+ cart_backend = gcp.compute.BackendService("cart-backend",
1066
+ name="cart-service",
1067
+ port_name="http",
1068
+ protocol="HTTP",
1069
+ timeout_sec=10,
1070
+ load_balancing_scheme="EXTERNAL_MANAGED",
1071
+ health_checks=default.id)
1072
+ user_backend = gcp.compute.BackendService("user-backend",
1073
+ name="user-service",
1074
+ port_name="http",
1075
+ protocol="HTTP",
1076
+ timeout_sec=10,
1077
+ load_balancing_scheme="EXTERNAL_MANAGED",
1078
+ health_checks=default.id)
1079
+ static_bucket = gcp.storage.Bucket("static",
1080
+ name="static-asset-bucket",
1081
+ location="US")
1082
+ static = gcp.compute.BackendBucket("static",
1083
+ name="static-asset-backend-bucket",
1084
+ bucket_name=static_bucket.name,
1085
+ enable_cdn=True)
1086
+ urlmap = gcp.compute.URLMap("urlmap",
1087
+ name="urlmap",
1088
+ description="a description",
1089
+ default_service=static.id,
1090
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1091
+ hosts=["mysite.com"],
1092
+ path_matcher="mysite",
1093
+ )],
1094
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1095
+ name="mysite",
1096
+ default_service=static.id,
1097
+ route_rules=[
1098
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1099
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1100
+ path_template_match="/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}",
1101
+ )],
1102
+ service=cart_backend.id,
1103
+ priority=1,
1104
+ route_action=gcp.compute.URLMapPathMatcherRouteRuleRouteActionArgs(
1105
+ url_rewrite=gcp.compute.URLMapPathMatcherRouteRuleRouteActionUrlRewriteArgs(
1106
+ path_template_rewrite="/{username}-{cartid}/",
1107
+ ),
1108
+ ),
1109
+ ),
1110
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1111
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1112
+ path_template_match="/xyzwebservices/v2/xyz/users/*/accountinfo/*",
1113
+ )],
1114
+ service=user_backend.id,
1115
+ priority=2,
1116
+ ),
1117
+ ],
1118
+ )])
1119
+ ```
547
1120
 
548
1121
  ## Import
549
1122
 
@@ -623,6 +1196,579 @@ class URLMap(pulumi.CustomResource):
623
1196
  * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/urlMaps)
624
1197
 
625
1198
  ## Example Usage
1199
+ ### Url Map Bucket And Service
1200
+
1201
+ ```python
1202
+ import pulumi
1203
+ import pulumi_gcp as gcp
1204
+
1205
+ default = gcp.compute.HttpHealthCheck("default",
1206
+ name="health-check",
1207
+ request_path="/",
1208
+ check_interval_sec=1,
1209
+ timeout_sec=1)
1210
+ login = gcp.compute.BackendService("login",
1211
+ name="login",
1212
+ port_name="http",
1213
+ protocol="HTTP",
1214
+ timeout_sec=10,
1215
+ health_checks=default.id)
1216
+ static_bucket = gcp.storage.Bucket("static",
1217
+ name="static-asset-bucket",
1218
+ location="US")
1219
+ static = gcp.compute.BackendBucket("static",
1220
+ name="static-asset-backend-bucket",
1221
+ bucket_name=static_bucket.name,
1222
+ enable_cdn=True)
1223
+ urlmap = gcp.compute.URLMap("urlmap",
1224
+ name="urlmap",
1225
+ description="a description",
1226
+ default_service=static.id,
1227
+ host_rules=[
1228
+ gcp.compute.URLMapHostRuleArgs(
1229
+ hosts=["mysite.com"],
1230
+ path_matcher="mysite",
1231
+ ),
1232
+ gcp.compute.URLMapHostRuleArgs(
1233
+ hosts=["myothersite.com"],
1234
+ path_matcher="otherpaths",
1235
+ ),
1236
+ ],
1237
+ path_matchers=[
1238
+ gcp.compute.URLMapPathMatcherArgs(
1239
+ name="mysite",
1240
+ default_service=static.id,
1241
+ path_rules=[
1242
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
1243
+ paths=["/home"],
1244
+ service=static.id,
1245
+ ),
1246
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
1247
+ paths=["/login"],
1248
+ service=login.id,
1249
+ ),
1250
+ gcp.compute.URLMapPathMatcherPathRuleArgs(
1251
+ paths=["/static"],
1252
+ service=static.id,
1253
+ ),
1254
+ ],
1255
+ ),
1256
+ gcp.compute.URLMapPathMatcherArgs(
1257
+ name="otherpaths",
1258
+ default_service=static.id,
1259
+ ),
1260
+ ],
1261
+ tests=[gcp.compute.URLMapTestArgs(
1262
+ service=static.id,
1263
+ host="example.com",
1264
+ path="/home",
1265
+ )])
1266
+ ```
1267
+ ### Url Map Traffic Director Route
1268
+
1269
+ ```python
1270
+ import pulumi
1271
+ import pulumi_gcp as gcp
1272
+
1273
+ default = gcp.compute.HealthCheck("default",
1274
+ name="health-check",
1275
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
1276
+ port=80,
1277
+ ))
1278
+ home = gcp.compute.BackendService("home",
1279
+ name="home",
1280
+ port_name="http",
1281
+ protocol="HTTP",
1282
+ timeout_sec=10,
1283
+ health_checks=default.id,
1284
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
1285
+ urlmap = gcp.compute.URLMap("urlmap",
1286
+ name="urlmap",
1287
+ description="a description",
1288
+ default_service=home.id,
1289
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1290
+ hosts=["mysite.com"],
1291
+ path_matcher="allpaths",
1292
+ )],
1293
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1294
+ name="allpaths",
1295
+ default_service=home.id,
1296
+ route_rules=[gcp.compute.URLMapPathMatcherRouteRuleArgs(
1297
+ priority=1,
1298
+ header_action=gcp.compute.URLMapPathMatcherRouteRuleHeaderActionArgs(
1299
+ request_headers_to_removes=["RemoveMe2"],
1300
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAddArgs(
1301
+ header_name="AddSomethingElse",
1302
+ header_value="MyOtherValue",
1303
+ replace=True,
1304
+ )],
1305
+ response_headers_to_removes=["RemoveMe3"],
1306
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAddArgs(
1307
+ header_name="AddMe",
1308
+ header_value="MyValue",
1309
+ replace=False,
1310
+ )],
1311
+ ),
1312
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1313
+ full_path_match="a full path",
1314
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
1315
+ header_name="someheader",
1316
+ exact_match="match this exactly",
1317
+ invert_match=True,
1318
+ )],
1319
+ ignore_case=True,
1320
+ metadata_filters=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleMetadataFilterArgs(
1321
+ filter_match_criteria="MATCH_ANY",
1322
+ filter_labels=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabelArgs(
1323
+ name="PLANET",
1324
+ value="MARS",
1325
+ )],
1326
+ )],
1327
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
1328
+ name="a query parameter",
1329
+ present_match=True,
1330
+ )],
1331
+ )],
1332
+ url_redirect=gcp.compute.URLMapPathMatcherRouteRuleUrlRedirectArgs(
1333
+ host_redirect="A host",
1334
+ https_redirect=False,
1335
+ path_redirect="some/path",
1336
+ redirect_response_code="TEMPORARY_REDIRECT",
1337
+ strip_query=True,
1338
+ ),
1339
+ )],
1340
+ )],
1341
+ tests=[gcp.compute.URLMapTestArgs(
1342
+ service=home.id,
1343
+ host="hi.com",
1344
+ path="/home",
1345
+ )])
1346
+ ```
1347
+ ### Url Map Traffic Director Route Partial
1348
+
1349
+ ```python
1350
+ import pulumi
1351
+ import pulumi_gcp as gcp
1352
+
1353
+ default = gcp.compute.HealthCheck("default",
1354
+ name="health-check",
1355
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
1356
+ port=80,
1357
+ ))
1358
+ home = gcp.compute.BackendService("home",
1359
+ name="home",
1360
+ port_name="http",
1361
+ protocol="HTTP",
1362
+ timeout_sec=10,
1363
+ health_checks=default.id,
1364
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
1365
+ urlmap = gcp.compute.URLMap("urlmap",
1366
+ name="urlmap",
1367
+ description="a description",
1368
+ default_service=home.id,
1369
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1370
+ hosts=["mysite.com"],
1371
+ path_matcher="allpaths",
1372
+ )],
1373
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1374
+ name="allpaths",
1375
+ default_service=home.id,
1376
+ route_rules=[gcp.compute.URLMapPathMatcherRouteRuleArgs(
1377
+ priority=1,
1378
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1379
+ prefix_match="/someprefix",
1380
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
1381
+ header_name="someheader",
1382
+ exact_match="match this exactly",
1383
+ invert_match=True,
1384
+ )],
1385
+ )],
1386
+ url_redirect=gcp.compute.URLMapPathMatcherRouteRuleUrlRedirectArgs(
1387
+ path_redirect="some/path",
1388
+ redirect_response_code="TEMPORARY_REDIRECT",
1389
+ ),
1390
+ )],
1391
+ )],
1392
+ tests=[gcp.compute.URLMapTestArgs(
1393
+ service=home.id,
1394
+ host="hi.com",
1395
+ path="/home",
1396
+ )])
1397
+ ```
1398
+ ### Url Map Traffic Director Path
1399
+
1400
+ ```python
1401
+ import pulumi
1402
+ import pulumi_gcp as gcp
1403
+
1404
+ default = gcp.compute.HealthCheck("default",
1405
+ name="health-check",
1406
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
1407
+ port=80,
1408
+ ))
1409
+ home = gcp.compute.BackendService("home",
1410
+ name="home",
1411
+ port_name="http",
1412
+ protocol="HTTP",
1413
+ timeout_sec=10,
1414
+ health_checks=default.id,
1415
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
1416
+ urlmap = gcp.compute.URLMap("urlmap",
1417
+ name="urlmap",
1418
+ description="a description",
1419
+ default_service=home.id,
1420
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1421
+ hosts=["mysite.com"],
1422
+ path_matcher="allpaths",
1423
+ )],
1424
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1425
+ name="allpaths",
1426
+ default_service=home.id,
1427
+ path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(
1428
+ paths=["/home"],
1429
+ route_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionArgs(
1430
+ cors_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionCorsPolicyArgs(
1431
+ allow_credentials=True,
1432
+ allow_headers=["Allowed content"],
1433
+ allow_methods=["GET"],
1434
+ allow_origin_regexes=["abc.*"],
1435
+ allow_origins=["Allowed origin"],
1436
+ expose_headers=["Exposed header"],
1437
+ max_age=30,
1438
+ disabled=False,
1439
+ ),
1440
+ fault_injection_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs(
1441
+ abort=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbortArgs(
1442
+ http_status=234,
1443
+ percentage=5.6,
1444
+ ),
1445
+ delay=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgs(
1446
+ fixed_delay=gcp.compute.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs(
1447
+ seconds="0",
1448
+ nanos=50000,
1449
+ ),
1450
+ percentage=7.8,
1451
+ ),
1452
+ ),
1453
+ request_mirror_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs(
1454
+ backend_service=home.id,
1455
+ ),
1456
+ retry_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionRetryPolicyArgs(
1457
+ num_retries=4,
1458
+ per_try_timeout=gcp.compute.URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeoutArgs(
1459
+ seconds="30",
1460
+ ),
1461
+ retry_conditions=[
1462
+ "5xx",
1463
+ "deadline-exceeded",
1464
+ ],
1465
+ ),
1466
+ timeout=gcp.compute.URLMapPathMatcherPathRuleRouteActionTimeoutArgs(
1467
+ seconds="20",
1468
+ nanos=750000000,
1469
+ ),
1470
+ url_rewrite=gcp.compute.URLMapPathMatcherPathRuleRouteActionUrlRewriteArgs(
1471
+ host_rewrite="dev.example.com",
1472
+ path_prefix_rewrite="/v1/api/",
1473
+ ),
1474
+ weighted_backend_services=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(
1475
+ backend_service=home.id,
1476
+ weight=400,
1477
+ header_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(
1478
+ request_headers_to_removes=["RemoveMe"],
1479
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(
1480
+ header_name="AddMe",
1481
+ header_value="MyValue",
1482
+ replace=True,
1483
+ )],
1484
+ response_headers_to_removes=["RemoveMe"],
1485
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(
1486
+ header_name="AddMe",
1487
+ header_value="MyValue",
1488
+ replace=False,
1489
+ )],
1490
+ ),
1491
+ )],
1492
+ ),
1493
+ )],
1494
+ )],
1495
+ tests=[gcp.compute.URLMapTestArgs(
1496
+ service=home.id,
1497
+ host="hi.com",
1498
+ path="/home",
1499
+ )])
1500
+ ```
1501
+ ### Url Map Traffic Director Path Partial
1502
+
1503
+ ```python
1504
+ import pulumi
1505
+ import pulumi_gcp as gcp
1506
+
1507
+ default = gcp.compute.HealthCheck("default",
1508
+ name="health-check",
1509
+ http_health_check=gcp.compute.HealthCheckHttpHealthCheckArgs(
1510
+ port=80,
1511
+ ))
1512
+ home = gcp.compute.BackendService("home",
1513
+ name="home",
1514
+ port_name="http",
1515
+ protocol="HTTP",
1516
+ timeout_sec=10,
1517
+ health_checks=default.id,
1518
+ load_balancing_scheme="INTERNAL_SELF_MANAGED")
1519
+ urlmap = gcp.compute.URLMap("urlmap",
1520
+ name="urlmap",
1521
+ description="a description",
1522
+ default_service=home.id,
1523
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1524
+ hosts=["mysite.com"],
1525
+ path_matcher="allpaths",
1526
+ )],
1527
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1528
+ name="allpaths",
1529
+ default_service=home.id,
1530
+ path_rules=[gcp.compute.URLMapPathMatcherPathRuleArgs(
1531
+ paths=["/home"],
1532
+ route_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionArgs(
1533
+ cors_policy=gcp.compute.URLMapPathMatcherPathRuleRouteActionCorsPolicyArgs(
1534
+ allow_credentials=True,
1535
+ allow_headers=["Allowed content"],
1536
+ allow_methods=["GET"],
1537
+ allow_origin_regexes=["abc.*"],
1538
+ allow_origins=["Allowed origin"],
1539
+ expose_headers=["Exposed header"],
1540
+ max_age=30,
1541
+ disabled=False,
1542
+ ),
1543
+ weighted_backend_services=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceArgs(
1544
+ backend_service=home.id,
1545
+ weight=400,
1546
+ header_action=gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionArgs(
1547
+ request_headers_to_removes=["RemoveMe"],
1548
+ request_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs(
1549
+ header_name="AddMe",
1550
+ header_value="MyValue",
1551
+ replace=True,
1552
+ )],
1553
+ response_headers_to_removes=["RemoveMe"],
1554
+ response_headers_to_adds=[gcp.compute.URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs(
1555
+ header_name="AddMe",
1556
+ header_value="MyValue",
1557
+ replace=False,
1558
+ )],
1559
+ ),
1560
+ )],
1561
+ ),
1562
+ )],
1563
+ )],
1564
+ tests=[gcp.compute.URLMapTestArgs(
1565
+ service=home.id,
1566
+ host="hi.com",
1567
+ path="/home",
1568
+ )])
1569
+ ```
1570
+ ### Url Map Header Based Routing
1571
+
1572
+ ```python
1573
+ import pulumi
1574
+ import pulumi_gcp as gcp
1575
+
1576
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
1577
+ name="health-check",
1578
+ request_path="/",
1579
+ check_interval_sec=1,
1580
+ timeout_sec=1)
1581
+ default = gcp.compute.BackendService("default",
1582
+ name="default",
1583
+ port_name="http",
1584
+ protocol="HTTP",
1585
+ timeout_sec=10,
1586
+ health_checks=default_http_health_check.id)
1587
+ service_a = gcp.compute.BackendService("service-a",
1588
+ name="service-a",
1589
+ port_name="http",
1590
+ protocol="HTTP",
1591
+ timeout_sec=10,
1592
+ health_checks=default_http_health_check.id)
1593
+ service_b = gcp.compute.BackendService("service-b",
1594
+ name="service-b",
1595
+ port_name="http",
1596
+ protocol="HTTP",
1597
+ timeout_sec=10,
1598
+ health_checks=default_http_health_check.id)
1599
+ urlmap = gcp.compute.URLMap("urlmap",
1600
+ name="urlmap",
1601
+ description="header-based routing example",
1602
+ default_service=default.id,
1603
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1604
+ hosts=["*"],
1605
+ path_matcher="allpaths",
1606
+ )],
1607
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1608
+ name="allpaths",
1609
+ default_service=default.id,
1610
+ route_rules=[
1611
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1612
+ priority=1,
1613
+ service=service_a.id,
1614
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1615
+ prefix_match="/",
1616
+ ignore_case=True,
1617
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
1618
+ header_name="abtest",
1619
+ exact_match="a",
1620
+ )],
1621
+ )],
1622
+ ),
1623
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1624
+ priority=2,
1625
+ service=service_b.id,
1626
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1627
+ ignore_case=True,
1628
+ prefix_match="/",
1629
+ header_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleHeaderMatchArgs(
1630
+ header_name="abtest",
1631
+ exact_match="b",
1632
+ )],
1633
+ )],
1634
+ ),
1635
+ ],
1636
+ )])
1637
+ ```
1638
+ ### Url Map Parameter Based Routing
1639
+
1640
+ ```python
1641
+ import pulumi
1642
+ import pulumi_gcp as gcp
1643
+
1644
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
1645
+ name="health-check",
1646
+ request_path="/",
1647
+ check_interval_sec=1,
1648
+ timeout_sec=1)
1649
+ default = gcp.compute.BackendService("default",
1650
+ name="default",
1651
+ port_name="http",
1652
+ protocol="HTTP",
1653
+ timeout_sec=10,
1654
+ health_checks=default_http_health_check.id)
1655
+ service_a = gcp.compute.BackendService("service-a",
1656
+ name="service-a",
1657
+ port_name="http",
1658
+ protocol="HTTP",
1659
+ timeout_sec=10,
1660
+ health_checks=default_http_health_check.id)
1661
+ service_b = gcp.compute.BackendService("service-b",
1662
+ name="service-b",
1663
+ port_name="http",
1664
+ protocol="HTTP",
1665
+ timeout_sec=10,
1666
+ health_checks=default_http_health_check.id)
1667
+ urlmap = gcp.compute.URLMap("urlmap",
1668
+ name="urlmap",
1669
+ description="parameter-based routing example",
1670
+ default_service=default.id,
1671
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1672
+ hosts=["*"],
1673
+ path_matcher="allpaths",
1674
+ )],
1675
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1676
+ name="allpaths",
1677
+ default_service=default.id,
1678
+ route_rules=[
1679
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1680
+ priority=1,
1681
+ service=service_a.id,
1682
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1683
+ prefix_match="/",
1684
+ ignore_case=True,
1685
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
1686
+ name="abtest",
1687
+ exact_match="a",
1688
+ )],
1689
+ )],
1690
+ ),
1691
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1692
+ priority=2,
1693
+ service=service_b.id,
1694
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1695
+ ignore_case=True,
1696
+ prefix_match="/",
1697
+ query_parameter_matches=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatchArgs(
1698
+ name="abtest",
1699
+ exact_match="b",
1700
+ )],
1701
+ )],
1702
+ ),
1703
+ ],
1704
+ )])
1705
+ ```
1706
+ ### Url Map Path Template Match
1707
+
1708
+ ```python
1709
+ import pulumi
1710
+ import pulumi_gcp as gcp
1711
+
1712
+ default = gcp.compute.HttpHealthCheck("default",
1713
+ name="health-check",
1714
+ request_path="/",
1715
+ check_interval_sec=1,
1716
+ timeout_sec=1)
1717
+ cart_backend = gcp.compute.BackendService("cart-backend",
1718
+ name="cart-service",
1719
+ port_name="http",
1720
+ protocol="HTTP",
1721
+ timeout_sec=10,
1722
+ load_balancing_scheme="EXTERNAL_MANAGED",
1723
+ health_checks=default.id)
1724
+ user_backend = gcp.compute.BackendService("user-backend",
1725
+ name="user-service",
1726
+ port_name="http",
1727
+ protocol="HTTP",
1728
+ timeout_sec=10,
1729
+ load_balancing_scheme="EXTERNAL_MANAGED",
1730
+ health_checks=default.id)
1731
+ static_bucket = gcp.storage.Bucket("static",
1732
+ name="static-asset-bucket",
1733
+ location="US")
1734
+ static = gcp.compute.BackendBucket("static",
1735
+ name="static-asset-backend-bucket",
1736
+ bucket_name=static_bucket.name,
1737
+ enable_cdn=True)
1738
+ urlmap = gcp.compute.URLMap("urlmap",
1739
+ name="urlmap",
1740
+ description="a description",
1741
+ default_service=static.id,
1742
+ host_rules=[gcp.compute.URLMapHostRuleArgs(
1743
+ hosts=["mysite.com"],
1744
+ path_matcher="mysite",
1745
+ )],
1746
+ path_matchers=[gcp.compute.URLMapPathMatcherArgs(
1747
+ name="mysite",
1748
+ default_service=static.id,
1749
+ route_rules=[
1750
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1751
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1752
+ path_template_match="/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}",
1753
+ )],
1754
+ service=cart_backend.id,
1755
+ priority=1,
1756
+ route_action=gcp.compute.URLMapPathMatcherRouteRuleRouteActionArgs(
1757
+ url_rewrite=gcp.compute.URLMapPathMatcherRouteRuleRouteActionUrlRewriteArgs(
1758
+ path_template_rewrite="/{username}-{cartid}/",
1759
+ ),
1760
+ ),
1761
+ ),
1762
+ gcp.compute.URLMapPathMatcherRouteRuleArgs(
1763
+ match_rules=[gcp.compute.URLMapPathMatcherRouteRuleMatchRuleArgs(
1764
+ path_template_match="/xyzwebservices/v2/xyz/users/*/accountinfo/*",
1765
+ )],
1766
+ service=user_backend.id,
1767
+ priority=2,
1768
+ ),
1769
+ ],
1770
+ )])
1771
+ ```
626
1772
 
627
1773
  ## Import
628
1774