pulumi-gcp 7.24.0a1716510380__py3-none-any.whl → 7.25.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 (467) hide show
  1. pulumi_gcp/__init__.py +104 -0
  2. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +12 -12
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +12 -12
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +12 -12
  5. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -64
  6. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -70
  7. pulumi_gcp/alloydb/backup.py +50 -42
  8. pulumi_gcp/alloydb/cluster.py +56 -48
  9. pulumi_gcp/alloydb/instance.py +50 -42
  10. pulumi_gcp/alloydb/user.py +32 -24
  11. pulumi_gcp/apigateway/api_config.py +0 -114
  12. pulumi_gcp/apigateway/api_config_iam_binding.py +8 -8
  13. pulumi_gcp/apigateway/api_config_iam_member.py +8 -8
  14. pulumi_gcp/apigateway/api_config_iam_policy.py +8 -8
  15. pulumi_gcp/apigateway/api_iam_binding.py +8 -8
  16. pulumi_gcp/apigateway/api_iam_member.py +8 -8
  17. pulumi_gcp/apigateway/api_iam_policy.py +8 -8
  18. pulumi_gcp/apigateway/gateway.py +0 -44
  19. pulumi_gcp/apigateway/gateway_iam_binding.py +8 -8
  20. pulumi_gcp/apigateway/gateway_iam_member.py +8 -8
  21. pulumi_gcp/apigateway/gateway_iam_policy.py +8 -8
  22. pulumi_gcp/apigee/addons_config.py +14 -4
  23. pulumi_gcp/apigee/endpoint_attachment.py +4 -2
  24. pulumi_gcp/apigee/env_group.py +4 -2
  25. pulumi_gcp/apigee/environment.py +4 -2
  26. pulumi_gcp/apigee/environment_iam_binding.py +12 -12
  27. pulumi_gcp/apigee/environment_iam_member.py +12 -12
  28. pulumi_gcp/apigee/environment_iam_policy.py +12 -12
  29. pulumi_gcp/apigee/instance.py +22 -8
  30. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +26 -10
  31. pulumi_gcp/apigee/nat_address.py +10 -2
  32. pulumi_gcp/apigee/organization.py +18 -6
  33. pulumi_gcp/apigee/sync_authorization.py +8 -4
  34. pulumi_gcp/apigee/target_server.py +26 -10
  35. pulumi_gcp/appengine/_inputs.py +18 -0
  36. pulumi_gcp/appengine/domain_mapping.py +1 -1
  37. pulumi_gcp/appengine/outputs.py +16 -0
  38. pulumi_gcp/apphub/service.py +40 -20
  39. pulumi_gcp/apphub/service_project_attachment.py +16 -8
  40. pulumi_gcp/apphub/workload.py +0 -418
  41. pulumi_gcp/applicationintegration/auth_config.py +4 -2
  42. pulumi_gcp/artifactregistry/repository.py +14 -12
  43. pulumi_gcp/artifactregistry/repository_iam_binding.py +12 -12
  44. pulumi_gcp/artifactregistry/repository_iam_member.py +12 -12
  45. pulumi_gcp/artifactregistry/repository_iam_policy.py +12 -12
  46. pulumi_gcp/backupdisasterrecovery/management_server.py +4 -2
  47. pulumi_gcp/bigquery/_inputs.py +286 -2
  48. pulumi_gcp/bigquery/connection.py +126 -0
  49. pulumi_gcp/bigquery/connection_iam_binding.py +12 -12
  50. pulumi_gcp/bigquery/connection_iam_member.py +12 -12
  51. pulumi_gcp/bigquery/connection_iam_policy.py +12 -12
  52. pulumi_gcp/bigquery/data_transfer_config.py +8 -4
  53. pulumi_gcp/bigquery/dataset_iam_binding.py +12 -12
  54. pulumi_gcp/bigquery/dataset_iam_member.py +12 -12
  55. pulumi_gcp/bigquery/dataset_iam_policy.py +12 -12
  56. pulumi_gcp/bigquery/iam_binding.py +12 -12
  57. pulumi_gcp/bigquery/iam_member.py +12 -12
  58. pulumi_gcp/bigquery/iam_policy.py +12 -12
  59. pulumi_gcp/bigquery/job.py +22 -16
  60. pulumi_gcp/bigquery/outputs.py +289 -2
  61. pulumi_gcp/bigquery/routine.py +2 -2
  62. pulumi_gcp/bigquery/table.py +77 -35
  63. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +12 -12
  64. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +12 -12
  65. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +12 -12
  66. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +12 -12
  67. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +12 -12
  68. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +12 -12
  69. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +12 -12
  70. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +12 -12
  71. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +12 -12
  72. pulumi_gcp/bigtable/instance_iam_binding.py +12 -12
  73. pulumi_gcp/bigtable/instance_iam_member.py +12 -12
  74. pulumi_gcp/bigtable/instance_iam_policy.py +12 -12
  75. pulumi_gcp/bigtable/table_iam_binding.py +12 -12
  76. pulumi_gcp/bigtable/table_iam_member.py +12 -12
  77. pulumi_gcp/bigtable/table_iam_policy.py +12 -12
  78. pulumi_gcp/billing/account_iam_binding.py +12 -12
  79. pulumi_gcp/billing/account_iam_member.py +12 -12
  80. pulumi_gcp/billing/account_iam_policy.py +12 -12
  81. pulumi_gcp/billing/project_info.py +4 -4
  82. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +12 -12
  83. pulumi_gcp/binaryauthorization/attestor_iam_member.py +12 -12
  84. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +12 -12
  85. pulumi_gcp/certificateauthority/authority.py +10 -2
  86. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +12 -12
  87. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +12 -12
  88. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +12 -12
  89. pulumi_gcp/certificateauthority/certificate.py +8 -4
  90. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +12 -12
  91. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +12 -12
  92. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +12 -12
  93. pulumi_gcp/certificatemanager/certificate.py +84 -80
  94. pulumi_gcp/certificatemanager/certificate_issuance_config.py +32 -30
  95. pulumi_gcp/cloudasset/__init__.py +1 -0
  96. pulumi_gcp/cloudasset/get_search_all_resources.py +197 -0
  97. pulumi_gcp/cloudasset/outputs.py +184 -0
  98. pulumi_gcp/cloudbuild/bitbucket_server_config.py +12 -6
  99. pulumi_gcp/cloudbuild/trigger.py +22 -14
  100. pulumi_gcp/cloudbuild/worker_pool.py +12 -6
  101. pulumi_gcp/cloudbuildv2/connection.py +10 -2
  102. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +12 -12
  103. pulumi_gcp/cloudbuildv2/connection_iam_member.py +12 -12
  104. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +12 -12
  105. pulumi_gcp/cloudbuildv2/repository.py +10 -2
  106. pulumi_gcp/cloudfunctions/function_iam_binding.py +12 -12
  107. pulumi_gcp/cloudfunctions/function_iam_member.py +12 -12
  108. pulumi_gcp/cloudfunctions/function_iam_policy.py +12 -12
  109. pulumi_gcp/cloudfunctionsv2/function.py +110 -66
  110. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +12 -12
  111. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +12 -12
  112. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +12 -12
  113. pulumi_gcp/cloudids/endpoint.py +4 -2
  114. pulumi_gcp/cloudrun/_inputs.py +80 -4
  115. pulumi_gcp/cloudrun/iam_binding.py +12 -12
  116. pulumi_gcp/cloudrun/iam_member.py +12 -12
  117. pulumi_gcp/cloudrun/iam_policy.py +12 -12
  118. pulumi_gcp/cloudrun/outputs.py +137 -4
  119. pulumi_gcp/cloudrunv2/job.py +32 -20
  120. pulumi_gcp/cloudrunv2/job_iam_binding.py +12 -12
  121. pulumi_gcp/cloudrunv2/job_iam_member.py +12 -12
  122. pulumi_gcp/cloudrunv2/job_iam_policy.py +12 -12
  123. pulumi_gcp/cloudrunv2/service.py +28 -20
  124. pulumi_gcp/cloudrunv2/service_iam_binding.py +12 -12
  125. pulumi_gcp/cloudrunv2/service_iam_member.py +12 -12
  126. pulumi_gcp/cloudrunv2/service_iam_policy.py +12 -12
  127. pulumi_gcp/cloudtasks/queue_iam_binding.py +12 -12
  128. pulumi_gcp/cloudtasks/queue_iam_member.py +12 -12
  129. pulumi_gcp/cloudtasks/queue_iam_policy.py +12 -12
  130. pulumi_gcp/composer/user_workloads_secret.py +4 -4
  131. pulumi_gcp/compute/__init__.py +2 -0
  132. pulumi_gcp/compute/_inputs.py +805 -182
  133. pulumi_gcp/compute/disk_iam_binding.py +12 -12
  134. pulumi_gcp/compute/disk_iam_member.py +12 -12
  135. pulumi_gcp/compute/disk_iam_policy.py +12 -12
  136. pulumi_gcp/compute/forwarding_rule.py +231 -823
  137. pulumi_gcp/compute/get_network_endpoint_group.py +2 -2
  138. pulumi_gcp/compute/get_region_network_endpoint_group.py +2 -2
  139. pulumi_gcp/compute/get_router_nat.py +11 -1
  140. pulumi_gcp/compute/get_snapshot.py +2 -0
  141. pulumi_gcp/compute/get_subnetworks.py +157 -0
  142. pulumi_gcp/compute/global_forwarding_rule.py +0 -766
  143. pulumi_gcp/compute/image_iam_binding.py +12 -12
  144. pulumi_gcp/compute/image_iam_member.py +12 -12
  145. pulumi_gcp/compute/image_iam_policy.py +12 -12
  146. pulumi_gcp/compute/instance_group.py +0 -100
  147. pulumi_gcp/compute/instance_group_membership.py +2 -2
  148. pulumi_gcp/compute/instance_iam_binding.py +12 -12
  149. pulumi_gcp/compute/instance_iam_member.py +12 -12
  150. pulumi_gcp/compute/instance_iam_policy.py +12 -12
  151. pulumi_gcp/compute/interconnect.py +1683 -0
  152. pulumi_gcp/compute/interconnect_attachment.py +82 -0
  153. pulumi_gcp/compute/machine_image_iam_binding.py +8 -8
  154. pulumi_gcp/compute/machine_image_iam_member.py +8 -8
  155. pulumi_gcp/compute/machine_image_iam_policy.py +8 -8
  156. pulumi_gcp/compute/network_endpoint.py +2 -2
  157. pulumi_gcp/compute/network_endpoint_list.py +2 -2
  158. pulumi_gcp/compute/outputs.py +1022 -161
  159. pulumi_gcp/compute/packet_mirroring.py +4 -2
  160. pulumi_gcp/compute/region_disk_iam_binding.py +12 -12
  161. pulumi_gcp/compute/region_disk_iam_member.py +12 -12
  162. pulumi_gcp/compute/region_disk_iam_policy.py +12 -12
  163. pulumi_gcp/compute/region_security_policy_rule.py +4 -2
  164. pulumi_gcp/compute/region_ssl_certificate.py +0 -188
  165. pulumi_gcp/compute/region_ssl_policy.py +39 -40
  166. pulumi_gcp/compute/route.py +10 -2
  167. pulumi_gcp/compute/router_nat.py +68 -0
  168. pulumi_gcp/compute/security_policy_rule.py +55 -1
  169. pulumi_gcp/compute/snapshot_iam_binding.py +12 -12
  170. pulumi_gcp/compute/snapshot_iam_member.py +12 -12
  171. pulumi_gcp/compute/snapshot_iam_policy.py +12 -12
  172. pulumi_gcp/compute/ssl_certificate.py +0 -166
  173. pulumi_gcp/compute/subnetwork_iam_binding.py +12 -12
  174. pulumi_gcp/compute/subnetwork_iam_member.py +12 -12
  175. pulumi_gcp/compute/subnetwork_iam_policy.py +12 -12
  176. pulumi_gcp/compute/target_instance.py +8 -6
  177. pulumi_gcp/compute/target_pool.py +21 -21
  178. pulumi_gcp/compute/vpn_gateway.py +12 -2
  179. pulumi_gcp/compute/vpn_tunnel.py +26 -16
  180. pulumi_gcp/container/_inputs.py +562 -2
  181. pulumi_gcp/container/outputs.py +1110 -55
  182. pulumi_gcp/containeranalysis/note_iam_binding.py +12 -12
  183. pulumi_gcp/containeranalysis/note_iam_member.py +12 -12
  184. pulumi_gcp/containeranalysis/note_iam_policy.py +12 -12
  185. pulumi_gcp/databasemigrationservice/connection_profile.py +38 -22
  186. pulumi_gcp/datacatalog/entry_group_iam_binding.py +12 -12
  187. pulumi_gcp/datacatalog/entry_group_iam_member.py +12 -12
  188. pulumi_gcp/datacatalog/entry_group_iam_policy.py +12 -12
  189. pulumi_gcp/datacatalog/policy_tag.py +4 -2
  190. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +12 -12
  191. pulumi_gcp/datacatalog/policy_tag_iam_member.py +12 -12
  192. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +12 -12
  193. pulumi_gcp/datacatalog/tag_template_iam_binding.py +12 -12
  194. pulumi_gcp/datacatalog/tag_template_iam_member.py +12 -12
  195. pulumi_gcp/datacatalog/tag_template_iam_policy.py +12 -12
  196. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +12 -12
  197. pulumi_gcp/datacatalog/taxonomy_iam_member.py +12 -12
  198. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +12 -12
  199. pulumi_gcp/datafusion/instance.py +14 -12
  200. pulumi_gcp/dataloss/_inputs.py +420 -13
  201. pulumi_gcp/dataloss/outputs.py +439 -13
  202. pulumi_gcp/dataplex/__init__.py +10 -0
  203. pulumi_gcp/dataplex/_inputs.py +160 -0
  204. pulumi_gcp/dataplex/aspect_type.py +1077 -0
  205. pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
  206. pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
  207. pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
  208. pulumi_gcp/dataplex/asset.py +4 -2
  209. pulumi_gcp/dataplex/asset_iam_binding.py +12 -12
  210. pulumi_gcp/dataplex/asset_iam_member.py +12 -12
  211. pulumi_gcp/dataplex/asset_iam_policy.py +12 -12
  212. pulumi_gcp/dataplex/datascan.py +16 -14
  213. pulumi_gcp/dataplex/datascan_iam_binding.py +12 -12
  214. pulumi_gcp/dataplex/datascan_iam_member.py +12 -12
  215. pulumi_gcp/dataplex/datascan_iam_policy.py +12 -12
  216. pulumi_gcp/dataplex/entry_group.py +722 -0
  217. pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
  218. pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
  219. pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
  220. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
  221. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
  222. pulumi_gcp/dataplex/lake_iam_binding.py +12 -12
  223. pulumi_gcp/dataplex/lake_iam_member.py +12 -12
  224. pulumi_gcp/dataplex/lake_iam_policy.py +12 -12
  225. pulumi_gcp/dataplex/outputs.py +112 -0
  226. pulumi_gcp/dataplex/task.py +16 -16
  227. pulumi_gcp/dataplex/task_iam_binding.py +12 -12
  228. pulumi_gcp/dataplex/task_iam_member.py +12 -12
  229. pulumi_gcp/dataplex/task_iam_policy.py +12 -12
  230. pulumi_gcp/dataplex/zone_iam_binding.py +12 -12
  231. pulumi_gcp/dataplex/zone_iam_member.py +12 -12
  232. pulumi_gcp/dataplex/zone_iam_policy.py +12 -12
  233. pulumi_gcp/dataproc/_inputs.py +70 -0
  234. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +12 -12
  235. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +12 -12
  236. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +12 -12
  237. pulumi_gcp/dataproc/cluster_iam_binding.py +12 -12
  238. pulumi_gcp/dataproc/cluster_iam_member.py +12 -12
  239. pulumi_gcp/dataproc/cluster_iam_policy.py +12 -12
  240. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +26 -2
  241. pulumi_gcp/dataproc/job_iam_binding.py +12 -12
  242. pulumi_gcp/dataproc/job_iam_member.py +12 -12
  243. pulumi_gcp/dataproc/job_iam_policy.py +12 -12
  244. pulumi_gcp/dataproc/metastore_federation.py +4 -0
  245. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +208 -0
  246. pulumi_gcp/dataproc/metastore_federation_iam_member.py +208 -0
  247. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +208 -0
  248. pulumi_gcp/dataproc/metastore_service_iam_binding.py +12 -12
  249. pulumi_gcp/dataproc/metastore_service_iam_member.py +12 -12
  250. pulumi_gcp/dataproc/metastore_service_iam_policy.py +12 -12
  251. pulumi_gcp/dataproc/outputs.py +62 -0
  252. pulumi_gcp/datastore/data_store_index.py +4 -2
  253. pulumi_gcp/datastream/_inputs.py +1789 -820
  254. pulumi_gcp/datastream/connection_profile.py +210 -3
  255. pulumi_gcp/datastream/outputs.py +864 -5
  256. pulumi_gcp/datastream/private_connection.py +47 -0
  257. pulumi_gcp/datastream/stream.py +231 -4
  258. pulumi_gcp/diagflow/cx_test_case.py +4 -4
  259. pulumi_gcp/diagflow/entity_type.py +4 -2
  260. pulumi_gcp/diagflow/fulfillment.py +4 -2
  261. pulumi_gcp/diagflow/intent.py +8 -4
  262. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +12 -12
  263. pulumi_gcp/dns/dns_managed_zone_iam_member.py +12 -12
  264. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +12 -12
  265. pulumi_gcp/dns/get_managed_zone.py +3 -3
  266. pulumi_gcp/dns/managed_zone.py +7 -7
  267. pulumi_gcp/dns/outputs.py +2 -2
  268. pulumi_gcp/edgecontainer/node_pool.py +4 -2
  269. pulumi_gcp/edgecontainer/vpn_connection.py +4 -2
  270. pulumi_gcp/endpoints/service_iam_binding.py +12 -12
  271. pulumi_gcp/endpoints/service_iam_member.py +12 -12
  272. pulumi_gcp/endpoints/service_iam_policy.py +12 -12
  273. pulumi_gcp/eventarc/channel.py +4 -2
  274. pulumi_gcp/eventarc/google_channel_config.py +4 -2
  275. pulumi_gcp/firebase/app_check_app_attest_config.py +16 -8
  276. pulumi_gcp/firebase/app_check_debug_token.py +8 -4
  277. pulumi_gcp/firebase/app_check_device_check_config.py +8 -4
  278. pulumi_gcp/firebase/app_check_play_integrity_config.py +16 -8
  279. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +8 -4
  280. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +8 -4
  281. pulumi_gcp/firebase/app_check_service_config.py +12 -6
  282. pulumi_gcp/firebase/database_instance.py +4 -2
  283. pulumi_gcp/firebaserules/release.py +0 -98
  284. pulumi_gcp/firestore/database.py +24 -20
  285. pulumi_gcp/firestore/document.py +24 -12
  286. pulumi_gcp/firestore/field.py +4 -4
  287. pulumi_gcp/folder/access_approval_settings.py +4 -2
  288. pulumi_gcp/folder/iam_audit_config.py +23 -23
  289. pulumi_gcp/folder/iam_member.py +16 -16
  290. pulumi_gcp/folder/iam_policy.py +16 -16
  291. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +12 -12
  292. pulumi_gcp/gkebackup/backup_plan_iam_member.py +12 -12
  293. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +12 -12
  294. pulumi_gcp/gkehub/feature_iam_binding.py +12 -12
  295. pulumi_gcp/gkehub/feature_iam_member.py +12 -12
  296. pulumi_gcp/gkehub/feature_iam_policy.py +12 -12
  297. pulumi_gcp/gkehub/membership_binding.py +20 -10
  298. pulumi_gcp/gkehub/membership_iam_binding.py +12 -12
  299. pulumi_gcp/gkehub/membership_iam_member.py +12 -12
  300. pulumi_gcp/gkehub/membership_iam_policy.py +12 -12
  301. pulumi_gcp/gkehub/membership_rbac_role_binding.py +12 -8
  302. pulumi_gcp/gkehub/namespace.py +8 -6
  303. pulumi_gcp/gkehub/scope_iam_binding.py +12 -12
  304. pulumi_gcp/gkehub/scope_iam_member.py +12 -12
  305. pulumi_gcp/gkehub/scope_iam_policy.py +12 -12
  306. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -6
  307. pulumi_gcp/healthcare/consent_store_iam_binding.py +12 -12
  308. pulumi_gcp/healthcare/consent_store_iam_member.py +12 -12
  309. pulumi_gcp/healthcare/consent_store_iam_policy.py +12 -12
  310. pulumi_gcp/healthcare/dataset_iam_binding.py +12 -12
  311. pulumi_gcp/healthcare/dataset_iam_member.py +12 -12
  312. pulumi_gcp/healthcare/dataset_iam_policy.py +12 -12
  313. pulumi_gcp/healthcare/dicom_store_iam_binding.py +12 -12
  314. pulumi_gcp/healthcare/dicom_store_iam_member.py +12 -12
  315. pulumi_gcp/healthcare/dicom_store_iam_policy.py +12 -12
  316. pulumi_gcp/healthcare/fhir_store_iam_binding.py +12 -12
  317. pulumi_gcp/healthcare/fhir_store_iam_member.py +12 -12
  318. pulumi_gcp/healthcare/fhir_store_iam_policy.py +12 -12
  319. pulumi_gcp/healthcare/hl7_store_iam_binding.py +12 -12
  320. pulumi_gcp/healthcare/hl7_store_iam_member.py +12 -12
  321. pulumi_gcp/healthcare/hl7_store_iam_policy.py +12 -12
  322. pulumi_gcp/iap/app_engine_service_iam_binding.py +12 -12
  323. pulumi_gcp/iap/app_engine_service_iam_member.py +12 -12
  324. pulumi_gcp/iap/app_engine_service_iam_policy.py +12 -12
  325. pulumi_gcp/iap/app_engine_version_iam_binding.py +12 -12
  326. pulumi_gcp/iap/app_engine_version_iam_member.py +12 -12
  327. pulumi_gcp/iap/app_engine_version_iam_policy.py +12 -12
  328. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  329. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +12 -12
  330. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +12 -12
  331. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +12 -12
  332. pulumi_gcp/iap/tunnel_iam_binding.py +12 -12
  333. pulumi_gcp/iap/tunnel_iam_member.py +12 -12
  334. pulumi_gcp/iap/tunnel_iam_policy.py +12 -12
  335. pulumi_gcp/iap/tunnel_instance_iam_binding.py +12 -12
  336. pulumi_gcp/iap/tunnel_instance_iam_member.py +12 -12
  337. pulumi_gcp/iap/tunnel_instance_iam_policy.py +12 -12
  338. pulumi_gcp/iap/web_backend_service_iam_binding.py +12 -12
  339. pulumi_gcp/iap/web_backend_service_iam_member.py +12 -12
  340. pulumi_gcp/iap/web_backend_service_iam_policy.py +12 -12
  341. pulumi_gcp/iap/web_iam_binding.py +12 -12
  342. pulumi_gcp/iap/web_iam_member.py +12 -12
  343. pulumi_gcp/iap/web_iam_policy.py +12 -12
  344. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +12 -12
  345. pulumi_gcp/iap/web_region_backend_service_iam_member.py +12 -12
  346. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +12 -12
  347. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +12 -12
  348. pulumi_gcp/iap/web_type_app_enging_iam_member.py +12 -12
  349. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +12 -12
  350. pulumi_gcp/iap/web_type_compute_iam_binding.py +12 -12
  351. pulumi_gcp/iap/web_type_compute_iam_member.py +12 -12
  352. pulumi_gcp/iap/web_type_compute_iam_policy.py +12 -12
  353. pulumi_gcp/integrationconnectors/connection.py +4 -2
  354. pulumi_gcp/integrationconnectors/managed_zone.py +26 -14
  355. pulumi_gcp/kms/__init__.py +2 -0
  356. pulumi_gcp/kms/autokey_config.py +366 -0
  357. pulumi_gcp/kms/key_handle.py +548 -0
  358. pulumi_gcp/kms/key_ring_iam_binding.py +12 -12
  359. pulumi_gcp/kms/key_ring_iam_member.py +12 -12
  360. pulumi_gcp/kms/key_ring_iam_policy.py +12 -12
  361. pulumi_gcp/logging/folder_settings.py +12 -10
  362. pulumi_gcp/logging/linked_dataset.py +4 -2
  363. pulumi_gcp/logging/organization_settings.py +12 -10
  364. pulumi_gcp/logging/project_bucket_config.py +4 -2
  365. pulumi_gcp/looker/instance.py +12 -10
  366. pulumi_gcp/netapp/storage_pool.py +7 -7
  367. pulumi_gcp/netapp/volume.py +4 -4
  368. pulumi_gcp/netapp/volume_replication.py +4 -2
  369. pulumi_gcp/netapp/volume_snapshot.py +4 -2
  370. pulumi_gcp/networkconnectivity/internal_range.py +14 -12
  371. pulumi_gcp/networksecurity/gateway_security_policy.py +20 -8
  372. pulumi_gcp/networksecurity/tls_inspection_policy.py +437 -5
  373. pulumi_gcp/networkservices/__init__.py +2 -0
  374. pulumi_gcp/networkservices/_inputs.py +454 -0
  375. pulumi_gcp/networkservices/gateway.py +12 -6
  376. pulumi_gcp/networkservices/lb_route_extension.py +663 -0
  377. pulumi_gcp/networkservices/lb_traffic_extension.py +669 -0
  378. pulumi_gcp/networkservices/outputs.py +478 -0
  379. pulumi_gcp/notebooks/instance_iam_binding.py +12 -12
  380. pulumi_gcp/notebooks/instance_iam_member.py +12 -12
  381. pulumi_gcp/notebooks/instance_iam_policy.py +12 -12
  382. pulumi_gcp/notebooks/runtime_iam_binding.py +12 -12
  383. pulumi_gcp/notebooks/runtime_iam_member.py +12 -12
  384. pulumi_gcp/notebooks/runtime_iam_policy.py +12 -12
  385. pulumi_gcp/organizations/access_approval_settings.py +4 -2
  386. pulumi_gcp/organizations/iam_member.py +16 -16
  387. pulumi_gcp/organizations/iam_policy.py +16 -16
  388. pulumi_gcp/orgpolicy/policy.py +2 -2
  389. pulumi_gcp/parallelstore/instance.py +20 -18
  390. pulumi_gcp/projects/access_approval_settings.py +4 -2
  391. pulumi_gcp/projects/iam_audit_config.py +23 -23
  392. pulumi_gcp/projects/iam_binding.py +23 -23
  393. pulumi_gcp/projects/iam_member.py +23 -23
  394. pulumi_gcp/projects/iam_policy.py +16 -16
  395. pulumi_gcp/projects/service.py +2 -43
  396. pulumi_gcp/pubsub/_inputs.py +16 -0
  397. pulumi_gcp/pubsub/outputs.py +25 -0
  398. pulumi_gcp/pubsub/schema.py +4 -2
  399. pulumi_gcp/pubsub/schema_iam_binding.py +12 -12
  400. pulumi_gcp/pubsub/schema_iam_member.py +12 -12
  401. pulumi_gcp/pubsub/schema_iam_policy.py +12 -12
  402. pulumi_gcp/pubsub/subscription.py +102 -66
  403. pulumi_gcp/pubsub/subscription_iam_binding.py +12 -12
  404. pulumi_gcp/pubsub/subscription_iam_member.py +12 -12
  405. pulumi_gcp/pubsub/subscription_iam_policy.py +12 -12
  406. pulumi_gcp/pubsub/topic.py +4 -2
  407. pulumi_gcp/pubsub/topic_iam_binding.py +12 -12
  408. pulumi_gcp/pubsub/topic_iam_member.py +12 -12
  409. pulumi_gcp/pubsub/topic_iam_policy.py +12 -12
  410. pulumi_gcp/pulumi-plugin.json +1 -1
  411. pulumi_gcp/redis/cluster.py +30 -28
  412. pulumi_gcp/redis/instance.py +4 -2
  413. pulumi_gcp/secretmanager/secret.py +4 -2
  414. pulumi_gcp/secretmanager/secret_iam_binding.py +12 -12
  415. pulumi_gcp/secretmanager/secret_iam_member.py +12 -12
  416. pulumi_gcp/secretmanager/secret_iam_policy.py +12 -12
  417. pulumi_gcp/securesourcemanager/instance.py +20 -8
  418. pulumi_gcp/securitycenter/instance_iam_binding.py +14 -12
  419. pulumi_gcp/securitycenter/instance_iam_member.py +14 -12
  420. pulumi_gcp/securitycenter/instance_iam_policy.py +14 -12
  421. pulumi_gcp/serviceaccount/key.py +2 -2
  422. pulumi_gcp/servicedirectory/namespace_iam_binding.py +8 -8
  423. pulumi_gcp/servicedirectory/namespace_iam_member.py +8 -8
  424. pulumi_gcp/servicedirectory/namespace_iam_policy.py +8 -8
  425. pulumi_gcp/servicedirectory/service_iam_binding.py +8 -8
  426. pulumi_gcp/servicedirectory/service_iam_member.py +8 -8
  427. pulumi_gcp/servicedirectory/service_iam_policy.py +8 -8
  428. pulumi_gcp/sourcerepo/repository_iam_binding.py +12 -12
  429. pulumi_gcp/sourcerepo/repository_iam_member.py +12 -12
  430. pulumi_gcp/sourcerepo/repository_iam_policy.py +12 -12
  431. pulumi_gcp/spanner/database_iam_binding.py +12 -12
  432. pulumi_gcp/spanner/database_iam_member.py +12 -12
  433. pulumi_gcp/spanner/database_iam_policy.py +12 -12
  434. pulumi_gcp/spanner/instance_iam_binding.py +12 -12
  435. pulumi_gcp/spanner/instance_iam_member.py +12 -12
  436. pulumi_gcp/spanner/instance_iam_policy.py +12 -12
  437. pulumi_gcp/sql/database_instance.py +4 -2
  438. pulumi_gcp/sql/user.py +4 -4
  439. pulumi_gcp/storage/_inputs.py +12 -10
  440. pulumi_gcp/storage/bucket.py +44 -0
  441. pulumi_gcp/storage/bucket_iam_binding.py +12 -12
  442. pulumi_gcp/storage/bucket_iam_member.py +12 -12
  443. pulumi_gcp/storage/bucket_iam_policy.py +12 -12
  444. pulumi_gcp/storage/get_project_service_account.py +4 -2
  445. pulumi_gcp/storage/insights_report_config.py +12 -10
  446. pulumi_gcp/storage/notification.py +18 -16
  447. pulumi_gcp/storage/outputs.py +12 -10
  448. pulumi_gcp/storage/transfer_agent_pool.py +4 -2
  449. pulumi_gcp/storage/transfer_job.py +14 -4
  450. pulumi_gcp/tags/tag_key_iam_binding.py +12 -12
  451. pulumi_gcp/tags/tag_key_iam_member.py +12 -12
  452. pulumi_gcp/tags/tag_key_iam_policy.py +12 -12
  453. pulumi_gcp/tags/tag_value_iam_binding.py +12 -12
  454. pulumi_gcp/tags/tag_value_iam_member.py +12 -12
  455. pulumi_gcp/tags/tag_value_iam_policy.py +12 -12
  456. pulumi_gcp/tpu/_inputs.py +2 -2
  457. pulumi_gcp/tpu/outputs.py +2 -2
  458. pulumi_gcp/tpu/v2_vm.py +10 -6
  459. pulumi_gcp/vertex/ai_endpoint.py +24 -22
  460. pulumi_gcp/vertex/ai_index_endpoint.py +20 -18
  461. pulumi_gcp/vertex/ai_tensorboard.py +14 -12
  462. pulumi_gcp/vmwareengine/external_address.py +4 -2
  463. pulumi_gcp/vmwareengine/network.py +8 -4
  464. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/METADATA +1 -1
  465. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/RECORD +467 -450
  466. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/WHEEL +0 -0
  467. {pulumi_gcp-7.24.0a1716510380.dist-info → pulumi_gcp-7.25.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,548 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['KeyHandleArgs', 'KeyHandle']
13
+
14
+ @pulumi.input_type
15
+ class KeyHandleArgs:
16
+ def __init__(__self__, *,
17
+ location: pulumi.Input[str],
18
+ resource_type_selector: pulumi.Input[str],
19
+ name: Optional[pulumi.Input[str]] = None,
20
+ project: Optional[pulumi.Input[str]] = None):
21
+ """
22
+ The set of arguments for constructing a KeyHandle resource.
23
+ :param pulumi.Input[str] location: The location for the KeyHandle.
24
+ A full list of valid locations can be found by running `gcloud kms locations list`.
25
+
26
+
27
+ - - -
28
+ :param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
29
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
30
+ :param pulumi.Input[str] name: The resource name for the KeyHandle.
31
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
32
+ If it is not provided, the provider project is used.
33
+ """
34
+ pulumi.set(__self__, "location", location)
35
+ pulumi.set(__self__, "resource_type_selector", resource_type_selector)
36
+ if name is not None:
37
+ pulumi.set(__self__, "name", name)
38
+ if project is not None:
39
+ pulumi.set(__self__, "project", project)
40
+
41
+ @property
42
+ @pulumi.getter
43
+ def location(self) -> pulumi.Input[str]:
44
+ """
45
+ The location for the KeyHandle.
46
+ A full list of valid locations can be found by running `gcloud kms locations list`.
47
+
48
+
49
+ - - -
50
+ """
51
+ return pulumi.get(self, "location")
52
+
53
+ @location.setter
54
+ def location(self, value: pulumi.Input[str]):
55
+ pulumi.set(self, "location", value)
56
+
57
+ @property
58
+ @pulumi.getter(name="resourceTypeSelector")
59
+ def resource_type_selector(self) -> pulumi.Input[str]:
60
+ """
61
+ Selector of the resource type where we want to protect resources.
62
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
63
+ """
64
+ return pulumi.get(self, "resource_type_selector")
65
+
66
+ @resource_type_selector.setter
67
+ def resource_type_selector(self, value: pulumi.Input[str]):
68
+ pulumi.set(self, "resource_type_selector", value)
69
+
70
+ @property
71
+ @pulumi.getter
72
+ def name(self) -> Optional[pulumi.Input[str]]:
73
+ """
74
+ The resource name for the KeyHandle.
75
+ """
76
+ return pulumi.get(self, "name")
77
+
78
+ @name.setter
79
+ def name(self, value: Optional[pulumi.Input[str]]):
80
+ pulumi.set(self, "name", value)
81
+
82
+ @property
83
+ @pulumi.getter
84
+ def project(self) -> Optional[pulumi.Input[str]]:
85
+ """
86
+ The ID of the project in which the resource belongs.
87
+ If it is not provided, the provider project is used.
88
+ """
89
+ return pulumi.get(self, "project")
90
+
91
+ @project.setter
92
+ def project(self, value: Optional[pulumi.Input[str]]):
93
+ pulumi.set(self, "project", value)
94
+
95
+
96
+ @pulumi.input_type
97
+ class _KeyHandleState:
98
+ def __init__(__self__, *,
99
+ kms_key: Optional[pulumi.Input[str]] = None,
100
+ location: Optional[pulumi.Input[str]] = None,
101
+ name: Optional[pulumi.Input[str]] = None,
102
+ project: Optional[pulumi.Input[str]] = None,
103
+ resource_type_selector: Optional[pulumi.Input[str]] = None):
104
+ """
105
+ Input properties used for looking up and filtering KeyHandle resources.
106
+ :param pulumi.Input[str] kms_key: A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
107
+ product/project/location, for example
108
+ `projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
109
+ :param pulumi.Input[str] location: The location for the KeyHandle.
110
+ A full list of valid locations can be found by running `gcloud kms locations list`.
111
+
112
+
113
+ - - -
114
+ :param pulumi.Input[str] name: The resource name for the KeyHandle.
115
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
116
+ If it is not provided, the provider project is used.
117
+ :param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
118
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
119
+ """
120
+ if kms_key is not None:
121
+ pulumi.set(__self__, "kms_key", kms_key)
122
+ if location is not None:
123
+ pulumi.set(__self__, "location", location)
124
+ if name is not None:
125
+ pulumi.set(__self__, "name", name)
126
+ if project is not None:
127
+ pulumi.set(__self__, "project", project)
128
+ if resource_type_selector is not None:
129
+ pulumi.set(__self__, "resource_type_selector", resource_type_selector)
130
+
131
+ @property
132
+ @pulumi.getter(name="kmsKey")
133
+ def kms_key(self) -> Optional[pulumi.Input[str]]:
134
+ """
135
+ A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
136
+ product/project/location, for example
137
+ `projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
138
+ """
139
+ return pulumi.get(self, "kms_key")
140
+
141
+ @kms_key.setter
142
+ def kms_key(self, value: Optional[pulumi.Input[str]]):
143
+ pulumi.set(self, "kms_key", value)
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def location(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ The location for the KeyHandle.
150
+ A full list of valid locations can be found by running `gcloud kms locations list`.
151
+
152
+
153
+ - - -
154
+ """
155
+ return pulumi.get(self, "location")
156
+
157
+ @location.setter
158
+ def location(self, value: Optional[pulumi.Input[str]]):
159
+ pulumi.set(self, "location", value)
160
+
161
+ @property
162
+ @pulumi.getter
163
+ def name(self) -> Optional[pulumi.Input[str]]:
164
+ """
165
+ The resource name for the KeyHandle.
166
+ """
167
+ return pulumi.get(self, "name")
168
+
169
+ @name.setter
170
+ def name(self, value: Optional[pulumi.Input[str]]):
171
+ pulumi.set(self, "name", value)
172
+
173
+ @property
174
+ @pulumi.getter
175
+ def project(self) -> Optional[pulumi.Input[str]]:
176
+ """
177
+ The ID of the project in which the resource belongs.
178
+ If it is not provided, the provider project is used.
179
+ """
180
+ return pulumi.get(self, "project")
181
+
182
+ @project.setter
183
+ def project(self, value: Optional[pulumi.Input[str]]):
184
+ pulumi.set(self, "project", value)
185
+
186
+ @property
187
+ @pulumi.getter(name="resourceTypeSelector")
188
+ def resource_type_selector(self) -> Optional[pulumi.Input[str]]:
189
+ """
190
+ Selector of the resource type where we want to protect resources.
191
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
192
+ """
193
+ return pulumi.get(self, "resource_type_selector")
194
+
195
+ @resource_type_selector.setter
196
+ def resource_type_selector(self, value: Optional[pulumi.Input[str]]):
197
+ pulumi.set(self, "resource_type_selector", value)
198
+
199
+
200
+ class KeyHandle(pulumi.CustomResource):
201
+ @overload
202
+ def __init__(__self__,
203
+ resource_name: str,
204
+ opts: Optional[pulumi.ResourceOptions] = None,
205
+ location: Optional[pulumi.Input[str]] = None,
206
+ name: Optional[pulumi.Input[str]] = None,
207
+ project: Optional[pulumi.Input[str]] = None,
208
+ resource_type_selector: Optional[pulumi.Input[str]] = None,
209
+ __props__=None):
210
+ """
211
+ ## Example Usage
212
+
213
+ ### Kms Key Handle Basic
214
+
215
+ ```python
216
+ import pulumi
217
+ import pulumi_gcp as gcp
218
+ import pulumi_time as time
219
+
220
+ # Create Folder in GCP Organization
221
+ autokms_folder = gcp.organizations.Folder("autokms_folder",
222
+ display_name="folder-example",
223
+ parent="organizations/123456789")
224
+ # Create the key project
225
+ key_project = gcp.organizations.Project("key_project",
226
+ project_id="key-proj",
227
+ name="key-proj",
228
+ folder_id=autokms_folder.folder_id,
229
+ billing_account="000000-0000000-0000000-000000",
230
+ opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
231
+ # Create the resource project
232
+ resource_project = gcp.organizations.Project("resource_project",
233
+ project_id="resources",
234
+ name="resources",
235
+ folder_id=autokms_folder.folder_id,
236
+ billing_account="000000-0000000-0000000-000000",
237
+ opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
238
+ # Enable the Cloud KMS API
239
+ kms_api_service = gcp.projects.Service("kms_api_service",
240
+ service="cloudkms.googleapis.com",
241
+ project=key_project.project_id,
242
+ disable_on_destroy=False,
243
+ disable_dependent_services=True,
244
+ opts=pulumi.ResourceOptions(depends_on=[key_project]))
245
+ # Wait delay after enabling APIs
246
+ wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
247
+ opts=pulumi.ResourceOptions(depends_on=[kms_api_service]))
248
+ #Create KMS Service Agent
249
+ kms_service_agent = gcp.projects.ServiceIdentity("kms_service_agent",
250
+ service="cloudkms.googleapis.com",
251
+ project=key_project.number,
252
+ opts=pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
253
+ # Wait delay after creating service agent.
254
+ wait_service_agent = time.index.Sleep("wait_service_agent", create_duration=10s,
255
+ opts=pulumi.ResourceOptions(depends_on=[kms_service_agent]))
256
+ #Grant the KMS Service Agent the Cloud KMS Admin role
257
+ autokey_project_admin = gcp.projects.IAMMember("autokey_project_admin",
258
+ project=key_project.project_id,
259
+ role="roles/cloudkms.admin",
260
+ member=key_project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-cloudkms.iam.gserviceaccount.com"),
261
+ opts=pulumi.ResourceOptions(depends_on=[wait_service_agent]))
262
+ # Wait delay after granting IAM permissions
263
+ wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
264
+ opts=pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
265
+ autokey_config = gcp.kms.AutokeyConfig("autokey_config",
266
+ folder=autokms_folder.folder_id,
267
+ key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
268
+ opts=pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
269
+ # Wait delay for autokey config to take effect
270
+ wait_autokey_config = time.index.Sleep("wait_autokey_config", create_duration=10s,
271
+ opts=pulumi.ResourceOptions(depends_on=[autokey_config]))
272
+ example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
273
+ project=resource_project.project_id,
274
+ name="example-key-handle",
275
+ location="global",
276
+ resource_type_selector="storage.googleapis.com/Bucket",
277
+ opts=pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
278
+ ```
279
+
280
+ ## Import
281
+
282
+ KeyHandle can be imported using any of these accepted formats:
283
+
284
+ * `projects/{{project}}/locations/{{location}}/keyHandles/{{name}}`
285
+
286
+ * `{{project}}/{{location}}/{{name}}`
287
+
288
+ * `{{location}}/{{name}}`
289
+
290
+ When using the `pulumi import` command, KeyHandle can be imported using one of the formats above. For example:
291
+
292
+ ```sh
293
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default projects/{{project}}/locations/{{location}}/keyHandles/{{name}}
294
+ ```
295
+
296
+ ```sh
297
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default {{project}}/{{location}}/{{name}}
298
+ ```
299
+
300
+ ```sh
301
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default {{location}}/{{name}}
302
+ ```
303
+
304
+ :param str resource_name: The name of the resource.
305
+ :param pulumi.ResourceOptions opts: Options for the resource.
306
+ :param pulumi.Input[str] location: The location for the KeyHandle.
307
+ A full list of valid locations can be found by running `gcloud kms locations list`.
308
+
309
+
310
+ - - -
311
+ :param pulumi.Input[str] name: The resource name for the KeyHandle.
312
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
313
+ If it is not provided, the provider project is used.
314
+ :param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
315
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
316
+ """
317
+ ...
318
+ @overload
319
+ def __init__(__self__,
320
+ resource_name: str,
321
+ args: KeyHandleArgs,
322
+ opts: Optional[pulumi.ResourceOptions] = None):
323
+ """
324
+ ## Example Usage
325
+
326
+ ### Kms Key Handle Basic
327
+
328
+ ```python
329
+ import pulumi
330
+ import pulumi_gcp as gcp
331
+ import pulumi_time as time
332
+
333
+ # Create Folder in GCP Organization
334
+ autokms_folder = gcp.organizations.Folder("autokms_folder",
335
+ display_name="folder-example",
336
+ parent="organizations/123456789")
337
+ # Create the key project
338
+ key_project = gcp.organizations.Project("key_project",
339
+ project_id="key-proj",
340
+ name="key-proj",
341
+ folder_id=autokms_folder.folder_id,
342
+ billing_account="000000-0000000-0000000-000000",
343
+ opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
344
+ # Create the resource project
345
+ resource_project = gcp.organizations.Project("resource_project",
346
+ project_id="resources",
347
+ name="resources",
348
+ folder_id=autokms_folder.folder_id,
349
+ billing_account="000000-0000000-0000000-000000",
350
+ opts=pulumi.ResourceOptions(depends_on=[autokms_folder]))
351
+ # Enable the Cloud KMS API
352
+ kms_api_service = gcp.projects.Service("kms_api_service",
353
+ service="cloudkms.googleapis.com",
354
+ project=key_project.project_id,
355
+ disable_on_destroy=False,
356
+ disable_dependent_services=True,
357
+ opts=pulumi.ResourceOptions(depends_on=[key_project]))
358
+ # Wait delay after enabling APIs
359
+ wait_enable_service_api = time.index.Sleep("wait_enable_service_api", create_duration=30s,
360
+ opts=pulumi.ResourceOptions(depends_on=[kms_api_service]))
361
+ #Create KMS Service Agent
362
+ kms_service_agent = gcp.projects.ServiceIdentity("kms_service_agent",
363
+ service="cloudkms.googleapis.com",
364
+ project=key_project.number,
365
+ opts=pulumi.ResourceOptions(depends_on=[wait_enable_service_api]))
366
+ # Wait delay after creating service agent.
367
+ wait_service_agent = time.index.Sleep("wait_service_agent", create_duration=10s,
368
+ opts=pulumi.ResourceOptions(depends_on=[kms_service_agent]))
369
+ #Grant the KMS Service Agent the Cloud KMS Admin role
370
+ autokey_project_admin = gcp.projects.IAMMember("autokey_project_admin",
371
+ project=key_project.project_id,
372
+ role="roles/cloudkms.admin",
373
+ member=key_project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-cloudkms.iam.gserviceaccount.com"),
374
+ opts=pulumi.ResourceOptions(depends_on=[wait_service_agent]))
375
+ # Wait delay after granting IAM permissions
376
+ wait_srv_acc_permissions = time.index.Sleep("wait_srv_acc_permissions", create_duration=10s,
377
+ opts=pulumi.ResourceOptions(depends_on=[autokey_project_admin]))
378
+ autokey_config = gcp.kms.AutokeyConfig("autokey_config",
379
+ folder=autokms_folder.folder_id,
380
+ key_project=key_project.project_id.apply(lambda project_id: f"projects/{project_id}"),
381
+ opts=pulumi.ResourceOptions(depends_on=[wait_srv_acc_permissions]))
382
+ # Wait delay for autokey config to take effect
383
+ wait_autokey_config = time.index.Sleep("wait_autokey_config", create_duration=10s,
384
+ opts=pulumi.ResourceOptions(depends_on=[autokey_config]))
385
+ example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
386
+ project=resource_project.project_id,
387
+ name="example-key-handle",
388
+ location="global",
389
+ resource_type_selector="storage.googleapis.com/Bucket",
390
+ opts=pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
391
+ ```
392
+
393
+ ## Import
394
+
395
+ KeyHandle can be imported using any of these accepted formats:
396
+
397
+ * `projects/{{project}}/locations/{{location}}/keyHandles/{{name}}`
398
+
399
+ * `{{project}}/{{location}}/{{name}}`
400
+
401
+ * `{{location}}/{{name}}`
402
+
403
+ When using the `pulumi import` command, KeyHandle can be imported using one of the formats above. For example:
404
+
405
+ ```sh
406
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default projects/{{project}}/locations/{{location}}/keyHandles/{{name}}
407
+ ```
408
+
409
+ ```sh
410
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default {{project}}/{{location}}/{{name}}
411
+ ```
412
+
413
+ ```sh
414
+ $ pulumi import gcp:kms/keyHandle:KeyHandle default {{location}}/{{name}}
415
+ ```
416
+
417
+ :param str resource_name: The name of the resource.
418
+ :param KeyHandleArgs args: The arguments to use to populate this resource's properties.
419
+ :param pulumi.ResourceOptions opts: Options for the resource.
420
+ """
421
+ ...
422
+ def __init__(__self__, resource_name: str, *args, **kwargs):
423
+ resource_args, opts = _utilities.get_resource_args_opts(KeyHandleArgs, pulumi.ResourceOptions, *args, **kwargs)
424
+ if resource_args is not None:
425
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
426
+ else:
427
+ __self__._internal_init(resource_name, *args, **kwargs)
428
+
429
+ def _internal_init(__self__,
430
+ resource_name: str,
431
+ opts: Optional[pulumi.ResourceOptions] = None,
432
+ location: Optional[pulumi.Input[str]] = None,
433
+ name: Optional[pulumi.Input[str]] = None,
434
+ project: Optional[pulumi.Input[str]] = None,
435
+ resource_type_selector: Optional[pulumi.Input[str]] = None,
436
+ __props__=None):
437
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
438
+ if not isinstance(opts, pulumi.ResourceOptions):
439
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
440
+ if opts.id is None:
441
+ if __props__ is not None:
442
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
443
+ __props__ = KeyHandleArgs.__new__(KeyHandleArgs)
444
+
445
+ if location is None and not opts.urn:
446
+ raise TypeError("Missing required property 'location'")
447
+ __props__.__dict__["location"] = location
448
+ __props__.__dict__["name"] = name
449
+ __props__.__dict__["project"] = project
450
+ if resource_type_selector is None and not opts.urn:
451
+ raise TypeError("Missing required property 'resource_type_selector'")
452
+ __props__.__dict__["resource_type_selector"] = resource_type_selector
453
+ __props__.__dict__["kms_key"] = None
454
+ super(KeyHandle, __self__).__init__(
455
+ 'gcp:kms/keyHandle:KeyHandle',
456
+ resource_name,
457
+ __props__,
458
+ opts)
459
+
460
+ @staticmethod
461
+ def get(resource_name: str,
462
+ id: pulumi.Input[str],
463
+ opts: Optional[pulumi.ResourceOptions] = None,
464
+ kms_key: Optional[pulumi.Input[str]] = None,
465
+ location: Optional[pulumi.Input[str]] = None,
466
+ name: Optional[pulumi.Input[str]] = None,
467
+ project: Optional[pulumi.Input[str]] = None,
468
+ resource_type_selector: Optional[pulumi.Input[str]] = None) -> 'KeyHandle':
469
+ """
470
+ Get an existing KeyHandle resource's state with the given name, id, and optional extra
471
+ properties used to qualify the lookup.
472
+
473
+ :param str resource_name: The unique name of the resulting resource.
474
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
475
+ :param pulumi.ResourceOptions opts: Options for the resource.
476
+ :param pulumi.Input[str] kms_key: A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
477
+ product/project/location, for example
478
+ `projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
479
+ :param pulumi.Input[str] location: The location for the KeyHandle.
480
+ A full list of valid locations can be found by running `gcloud kms locations list`.
481
+
482
+
483
+ - - -
484
+ :param pulumi.Input[str] name: The resource name for the KeyHandle.
485
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
486
+ If it is not provided, the provider project is used.
487
+ :param pulumi.Input[str] resource_type_selector: Selector of the resource type where we want to protect resources.
488
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
489
+ """
490
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
491
+
492
+ __props__ = _KeyHandleState.__new__(_KeyHandleState)
493
+
494
+ __props__.__dict__["kms_key"] = kms_key
495
+ __props__.__dict__["location"] = location
496
+ __props__.__dict__["name"] = name
497
+ __props__.__dict__["project"] = project
498
+ __props__.__dict__["resource_type_selector"] = resource_type_selector
499
+ return KeyHandle(resource_name, opts=opts, __props__=__props__)
500
+
501
+ @property
502
+ @pulumi.getter(name="kmsKey")
503
+ def kms_key(self) -> pulumi.Output[str]:
504
+ """
505
+ A reference to a Cloud KMS CryptoKey that can be used for CMEK in the requested
506
+ product/project/location, for example
507
+ `projects/1/locations/us-east1/keyRings/foo/cryptoKeys/bar-ffffff`
508
+ """
509
+ return pulumi.get(self, "kms_key")
510
+
511
+ @property
512
+ @pulumi.getter
513
+ def location(self) -> pulumi.Output[str]:
514
+ """
515
+ The location for the KeyHandle.
516
+ A full list of valid locations can be found by running `gcloud kms locations list`.
517
+
518
+
519
+ - - -
520
+ """
521
+ return pulumi.get(self, "location")
522
+
523
+ @property
524
+ @pulumi.getter
525
+ def name(self) -> pulumi.Output[str]:
526
+ """
527
+ The resource name for the KeyHandle.
528
+ """
529
+ return pulumi.get(self, "name")
530
+
531
+ @property
532
+ @pulumi.getter
533
+ def project(self) -> pulumi.Output[str]:
534
+ """
535
+ The ID of the project in which the resource belongs.
536
+ If it is not provided, the provider project is used.
537
+ """
538
+ return pulumi.get(self, "project")
539
+
540
+ @property
541
+ @pulumi.getter(name="resourceTypeSelector")
542
+ def resource_type_selector(self) -> pulumi.Output[str]:
543
+ """
544
+ Selector of the resource type where we want to protect resources.
545
+ For example, `storage.googleapis.com/Bucket OR compute.googleapis.com/*`
546
+ """
547
+ return pulumi.get(self, "resource_type_selector")
548
+
@@ -243,7 +243,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
243
243
 
244
244
  > **Note:** `kms.KeyRingIAMBinding` resources **can be** used in conjunction with `kms.KeyRingIAMMember` resources **only if** they do not grant privilege to the same role.
245
245
 
246
- ## google\\_kms\\_key\\_ring\\_iam\\_policy
246
+ ## kms.KeyRingIAMPolicy
247
247
 
248
248
  ```python
249
249
  import pulumi
@@ -284,7 +284,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
284
284
  policy_data=admin.policy_data)
285
285
  ```
286
286
 
287
- ## google\\_kms\\_key\\_ring\\_iam\\_binding
287
+ ## kms.KeyRingIAMBinding
288
288
 
289
289
  ```python
290
290
  import pulumi
@@ -313,7 +313,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
313
313
  ))
314
314
  ```
315
315
 
316
- ## google\\_kms\\_key\\_ring\\_iam\\_member
316
+ ## kms.KeyRingIAMMember
317
317
 
318
318
  ```python
319
319
  import pulumi
@@ -342,7 +342,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
342
342
  ))
343
343
  ```
344
344
 
345
- ## google\\_kms\\_key\\_ring\\_iam\\_policy
345
+ ## kms.KeyRingIAMPolicy
346
346
 
347
347
  ```python
348
348
  import pulumi
@@ -383,7 +383,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
383
383
  policy_data=admin.policy_data)
384
384
  ```
385
385
 
386
- ## google\\_kms\\_key\\_ring\\_iam\\_binding
386
+ ## kms.KeyRingIAMBinding
387
387
 
388
388
  ```python
389
389
  import pulumi
@@ -412,7 +412,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
412
412
  ))
413
413
  ```
414
414
 
415
- ## google\\_kms\\_key\\_ring\\_iam\\_member
415
+ ## kms.KeyRingIAMMember
416
416
 
417
417
  ```python
418
418
  import pulumi
@@ -504,7 +504,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
504
504
 
505
505
  > **Note:** `kms.KeyRingIAMBinding` resources **can be** used in conjunction with `kms.KeyRingIAMMember` resources **only if** they do not grant privilege to the same role.
506
506
 
507
- ## google\\_kms\\_key\\_ring\\_iam\\_policy
507
+ ## kms.KeyRingIAMPolicy
508
508
 
509
509
  ```python
510
510
  import pulumi
@@ -545,7 +545,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
545
545
  policy_data=admin.policy_data)
546
546
  ```
547
547
 
548
- ## google\\_kms\\_key\\_ring\\_iam\\_binding
548
+ ## kms.KeyRingIAMBinding
549
549
 
550
550
  ```python
551
551
  import pulumi
@@ -574,7 +574,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
574
574
  ))
575
575
  ```
576
576
 
577
- ## google\\_kms\\_key\\_ring\\_iam\\_member
577
+ ## kms.KeyRingIAMMember
578
578
 
579
579
  ```python
580
580
  import pulumi
@@ -603,7 +603,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
603
603
  ))
604
604
  ```
605
605
 
606
- ## google\\_kms\\_key\\_ring\\_iam\\_policy
606
+ ## kms.KeyRingIAMPolicy
607
607
 
608
608
  ```python
609
609
  import pulumi
@@ -644,7 +644,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
644
644
  policy_data=admin.policy_data)
645
645
  ```
646
646
 
647
- ## google\\_kms\\_key\\_ring\\_iam\\_binding
647
+ ## kms.KeyRingIAMBinding
648
648
 
649
649
  ```python
650
650
  import pulumi
@@ -673,7 +673,7 @@ class KeyRingIAMBinding(pulumi.CustomResource):
673
673
  ))
674
674
  ```
675
675
 
676
- ## google\\_kms\\_key\\_ring\\_iam\\_member
676
+ ## kms.KeyRingIAMMember
677
677
 
678
678
  ```python
679
679
  import pulumi