pulumi-gcp 7.7.0a1706207981__py3-none-any.whl → 7.8.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (686) hide show
  1. pulumi_gcp/__init__.py +73 -0
  2. pulumi_gcp/_utilities.py +6 -2
  3. pulumi_gcp/accesscontextmanager/access_level.py +2 -18
  4. pulumi_gcp/accesscontextmanager/access_levels.py +2 -18
  5. pulumi_gcp/accesscontextmanager/access_policy.py +2 -18
  6. pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +2 -18
  7. pulumi_gcp/accesscontextmanager/egress_policy.py +2 -18
  8. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +2 -18
  9. pulumi_gcp/accesscontextmanager/ingress_policy.py +2 -18
  10. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -18
  11. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +2 -18
  12. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +2 -18
  13. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +2 -18
  14. pulumi_gcp/accesscontextmanager/service_perimeters.py +2 -18
  15. pulumi_gcp/activedirectory/domain.py +2 -18
  16. pulumi_gcp/activedirectory/domain_trust.py +2 -18
  17. pulumi_gcp/alloydb/backup.py +2 -18
  18. pulumi_gcp/alloydb/cluster.py +26 -18
  19. pulumi_gcp/alloydb/instance.py +3 -19
  20. pulumi_gcp/alloydb/outputs.py +16 -0
  21. pulumi_gcp/alloydb/user.py +2 -18
  22. pulumi_gcp/apigateway/api.py +2 -18
  23. pulumi_gcp/apigateway/api_config.py +2 -18
  24. pulumi_gcp/apigateway/gateway.py +23 -53
  25. pulumi_gcp/apigee/addons_config.py +2 -18
  26. pulumi_gcp/apigee/endpoint_attachment.py +2 -18
  27. pulumi_gcp/apigee/env_group.py +2 -18
  28. pulumi_gcp/apigee/env_group_attachment.py +2 -18
  29. pulumi_gcp/apigee/env_keystore.py +2 -18
  30. pulumi_gcp/apigee/env_references.py +2 -18
  31. pulumi_gcp/apigee/environment.py +2 -18
  32. pulumi_gcp/apigee/flowhook.py +2 -18
  33. pulumi_gcp/apigee/instance.py +2 -18
  34. pulumi_gcp/apigee/instance_attachment.py +2 -18
  35. pulumi_gcp/apigee/keystores_aliases_key_cert_file.py +2 -18
  36. pulumi_gcp/apigee/keystores_aliases_pkcs12.py +2 -18
  37. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +2 -18
  38. pulumi_gcp/apigee/nat_address.py +2 -18
  39. pulumi_gcp/apigee/organization.py +2 -18
  40. pulumi_gcp/apigee/sharedflow.py +2 -18
  41. pulumi_gcp/apigee/sharedflow_deployment.py +2 -18
  42. pulumi_gcp/apigee/sync_authorization.py +2 -18
  43. pulumi_gcp/apigee/target_server.py +2 -18
  44. pulumi_gcp/appengine/application.py +2 -18
  45. pulumi_gcp/appengine/application_url_dispatch_rules.py +2 -18
  46. pulumi_gcp/appengine/domain_mapping.py +2 -18
  47. pulumi_gcp/appengine/engine_split_traffic.py +2 -18
  48. pulumi_gcp/appengine/firewall_rule.py +2 -18
  49. pulumi_gcp/appengine/flexible_app_version.py +2 -18
  50. pulumi_gcp/appengine/service_network_settings.py +2 -18
  51. pulumi_gcp/appengine/standard_app_version.py +2 -18
  52. pulumi_gcp/artifactregistry/_inputs.py +60 -0
  53. pulumi_gcp/artifactregistry/outputs.py +264 -0
  54. pulumi_gcp/artifactregistry/repository.py +77 -74
  55. pulumi_gcp/artifactregistry/vpcsc_config.py +2 -18
  56. pulumi_gcp/assuredworkloads/_inputs.py +34 -0
  57. pulumi_gcp/assuredworkloads/outputs.py +34 -0
  58. pulumi_gcp/assuredworkloads/workload.py +2 -18
  59. pulumi_gcp/backupdisasterrecovery/management_server.py +2 -18
  60. pulumi_gcp/backupdisasterrecovery/outputs.py +20 -0
  61. pulumi_gcp/beyondcorp/app_connection.py +2 -18
  62. pulumi_gcp/beyondcorp/app_connector.py +2 -18
  63. pulumi_gcp/beyondcorp/app_gateway.py +2 -18
  64. pulumi_gcp/beyondcorp/outputs.py +54 -0
  65. pulumi_gcp/biglake/catalog.py +2 -18
  66. pulumi_gcp/biglake/database.py +2 -18
  67. pulumi_gcp/biglake/table.py +2 -18
  68. pulumi_gcp/bigquery/_inputs.py +18 -0
  69. pulumi_gcp/bigquery/app_profile.py +2 -18
  70. pulumi_gcp/bigquery/bi_reservation.py +2 -18
  71. pulumi_gcp/bigquery/capacity_commitment.py +2 -18
  72. pulumi_gcp/bigquery/connection.py +2 -18
  73. pulumi_gcp/bigquery/data_transfer_config.py +2 -18
  74. pulumi_gcp/bigquery/dataset.py +9 -18
  75. pulumi_gcp/bigquery/dataset_iam_binding.py +4 -12
  76. pulumi_gcp/bigquery/dataset_iam_member.py +4 -12
  77. pulumi_gcp/bigquery/dataset_iam_policy.py +4 -12
  78. pulumi_gcp/bigquery/job.py +2 -18
  79. pulumi_gcp/bigquery/outputs.py +172 -0
  80. pulumi_gcp/bigquery/reservation.py +2 -18
  81. pulumi_gcp/bigquery/reservation_assignment.py +2 -18
  82. pulumi_gcp/bigquery/routine.py +2 -18
  83. pulumi_gcp/bigquery/table.py +2 -18
  84. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +2 -18
  85. pulumi_gcp/bigqueryanalyticshub/listing.py +2 -18
  86. pulumi_gcp/bigquerydatapolicy/data_policy.py +2 -18
  87. pulumi_gcp/bigtable/_inputs.py +4 -0
  88. pulumi_gcp/bigtable/instance.py +2 -18
  89. pulumi_gcp/bigtable/instance_iam_binding.py +4 -12
  90. pulumi_gcp/bigtable/instance_iam_member.py +4 -12
  91. pulumi_gcp/bigtable/instance_iam_policy.py +4 -12
  92. pulumi_gcp/bigtable/outputs.py +4 -0
  93. pulumi_gcp/bigtable/table.py +2 -18
  94. pulumi_gcp/bigtable/table_iam_binding.py +4 -12
  95. pulumi_gcp/bigtable/table_iam_member.py +4 -12
  96. pulumi_gcp/bigtable/table_iam_policy.py +4 -12
  97. pulumi_gcp/billing/account_iam_binding.py +4 -12
  98. pulumi_gcp/billing/account_iam_member.py +4 -12
  99. pulumi_gcp/billing/account_iam_policy.py +4 -12
  100. pulumi_gcp/billing/budget.py +2 -18
  101. pulumi_gcp/billing/project_info.py +2 -18
  102. pulumi_gcp/billing/sub_account.py +2 -18
  103. pulumi_gcp/binaryauthorization/attestor.py +2 -18
  104. pulumi_gcp/binaryauthorization/policy.py +2 -18
  105. pulumi_gcp/blockchainnodeengine/__init__.py +10 -0
  106. pulumi_gcp/blockchainnodeengine/_inputs.py +388 -0
  107. pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +791 -0
  108. pulumi_gcp/blockchainnodeengine/outputs.py +441 -0
  109. pulumi_gcp/certificateauthority/authority.py +2 -18
  110. pulumi_gcp/certificateauthority/ca_pool.py +2 -18
  111. pulumi_gcp/certificateauthority/certificate.py +2 -18
  112. pulumi_gcp/certificateauthority/certificate_template.py +2 -18
  113. pulumi_gcp/certificateauthority/outputs.py +378 -0
  114. pulumi_gcp/certificatemanager/certificate.py +2 -18
  115. pulumi_gcp/certificatemanager/certificate_issuance_config.py +2 -18
  116. pulumi_gcp/certificatemanager/certificate_map.py +2 -18
  117. pulumi_gcp/certificatemanager/certificate_map_entry.py +2 -18
  118. pulumi_gcp/certificatemanager/dns_authorization.py +2 -18
  119. pulumi_gcp/certificatemanager/outputs.py +32 -0
  120. pulumi_gcp/certificatemanager/trust_config.py +2 -18
  121. pulumi_gcp/cloudasset/folder_feed.py +2 -18
  122. pulumi_gcp/cloudasset/organization_feed.py +2 -18
  123. pulumi_gcp/cloudasset/project_feed.py +2 -18
  124. pulumi_gcp/cloudbuild/bitbucket_server_config.py +2 -18
  125. pulumi_gcp/cloudbuild/outputs.py +1009 -3
  126. pulumi_gcp/cloudbuild/trigger.py +2 -18
  127. pulumi_gcp/cloudbuild/worker_pool.py +2 -18
  128. pulumi_gcp/cloudbuildv2/_inputs.py +14 -0
  129. pulumi_gcp/cloudbuildv2/connection.py +2 -18
  130. pulumi_gcp/cloudbuildv2/outputs.py +14 -0
  131. pulumi_gcp/cloudbuildv2/repository.py +2 -18
  132. pulumi_gcp/clouddeploy/_inputs.py +36 -0
  133. pulumi_gcp/clouddeploy/automation.py +2 -18
  134. pulumi_gcp/clouddeploy/delivery_pipeline.py +2 -18
  135. pulumi_gcp/clouddeploy/outputs.py +36 -0
  136. pulumi_gcp/clouddeploy/target.py +2 -18
  137. pulumi_gcp/clouddomains/registration.py +2 -18
  138. pulumi_gcp/cloudfunctions/_inputs.py +4 -0
  139. pulumi_gcp/cloudfunctions/function.py +2 -18
  140. pulumi_gcp/cloudfunctions/outputs.py +54 -0
  141. pulumi_gcp/cloudfunctionsv2/function.py +2 -18
  142. pulumi_gcp/cloudfunctionsv2/outputs.py +302 -0
  143. pulumi_gcp/cloudidentity/group.py +2 -18
  144. pulumi_gcp/cloudidentity/group_membership.py +2 -18
  145. pulumi_gcp/cloudidentity/outputs.py +54 -0
  146. pulumi_gcp/cloudids/endpoint.py +2 -18
  147. pulumi_gcp/cloudrun/_inputs.py +93 -4
  148. pulumi_gcp/cloudrun/domain_mapping.py +2 -18
  149. pulumi_gcp/cloudrun/outputs.py +867 -9
  150. pulumi_gcp/cloudrun/service.py +2 -18
  151. pulumi_gcp/cloudrunv2/_inputs.py +12 -0
  152. pulumi_gcp/cloudrunv2/job.py +2 -18
  153. pulumi_gcp/cloudrunv2/outputs.py +937 -1
  154. pulumi_gcp/cloudrunv2/service.py +2 -18
  155. pulumi_gcp/cloudscheduler/job.py +2 -18
  156. pulumi_gcp/cloudtasks/queue.py +2 -18
  157. pulumi_gcp/composer/_inputs.py +493 -0
  158. pulumi_gcp/composer/environment.py +2 -18
  159. pulumi_gcp/composer/outputs.py +996 -0
  160. pulumi_gcp/compute/__init__.py +2 -0
  161. pulumi_gcp/compute/_inputs.py +1010 -46
  162. pulumi_gcp/compute/address.py +2 -18
  163. pulumi_gcp/compute/attached_disk.py +2 -18
  164. pulumi_gcp/compute/autoscaler.py +2 -18
  165. pulumi_gcp/compute/backend_bucket.py +2 -18
  166. pulumi_gcp/compute/backend_service.py +30 -18
  167. pulumi_gcp/compute/disk.py +34 -29
  168. pulumi_gcp/compute/disk_resource_policy_attachment.py +2 -18
  169. pulumi_gcp/compute/external_vpn_gateway.py +2 -18
  170. pulumi_gcp/compute/firewall.py +2 -18
  171. pulumi_gcp/compute/firewall_policy_association.py +2 -18
  172. pulumi_gcp/compute/firewall_policy_rule.py +2 -18
  173. pulumi_gcp/compute/forwarding_rule.py +2 -18
  174. pulumi_gcp/compute/get_disk.py +11 -1
  175. pulumi_gcp/compute/get_instance_group_manager.py +11 -1
  176. pulumi_gcp/compute/get_instance_template.py +3 -0
  177. pulumi_gcp/compute/get_machine_types.py +143 -0
  178. pulumi_gcp/compute/global_address.py +9 -25
  179. pulumi_gcp/compute/global_forwarding_rule.py +2 -18
  180. pulumi_gcp/compute/global_network_endpoint.py +2 -18
  181. pulumi_gcp/compute/global_network_endpoint_group.py +2 -18
  182. pulumi_gcp/compute/ha_vpn_gateway.py +2 -18
  183. pulumi_gcp/compute/health_check.py +2 -18
  184. pulumi_gcp/compute/http_health_check.py +2 -18
  185. pulumi_gcp/compute/https_health_check.py +2 -18
  186. pulumi_gcp/compute/image.py +2 -18
  187. pulumi_gcp/compute/instance.py +13 -22
  188. pulumi_gcp/compute/instance_group.py +2 -18
  189. pulumi_gcp/compute/instance_group_manager.py +34 -29
  190. pulumi_gcp/compute/instance_group_named_port.py +2 -18
  191. pulumi_gcp/compute/instance_settings.py +2 -18
  192. pulumi_gcp/compute/instance_template.py +9 -25
  193. pulumi_gcp/compute/interconnect_attachment.py +77 -18
  194. pulumi_gcp/compute/machine_image.py +2 -18
  195. pulumi_gcp/compute/managed_ssl_certificate.py +2 -18
  196. pulumi_gcp/compute/manged_ssl_certificate.py +2 -18
  197. pulumi_gcp/compute/network.py +2 -18
  198. pulumi_gcp/compute/network_attachment.py +2 -18
  199. pulumi_gcp/compute/network_edge_security_service.py +2 -18
  200. pulumi_gcp/compute/network_endpoint.py +2 -18
  201. pulumi_gcp/compute/network_endpoint_group.py +2 -18
  202. pulumi_gcp/compute/network_endpoint_list.py +2 -18
  203. pulumi_gcp/compute/network_firewall_policy.py +2 -18
  204. pulumi_gcp/compute/network_firewall_policy_association.py +2 -18
  205. pulumi_gcp/compute/network_firewall_policy_rule.py +2 -18
  206. pulumi_gcp/compute/network_peering.py +2 -18
  207. pulumi_gcp/compute/network_peering_routes_config.py +2 -18
  208. pulumi_gcp/compute/node_group.py +30 -53
  209. pulumi_gcp/compute/node_template.py +2 -18
  210. pulumi_gcp/compute/organization_security_policy.py +2 -18
  211. pulumi_gcp/compute/organization_security_policy_association.py +2 -18
  212. pulumi_gcp/compute/organization_security_policy_rule.py +2 -18
  213. pulumi_gcp/compute/outputs.py +4530 -181
  214. pulumi_gcp/compute/packet_mirroring.py +2 -18
  215. pulumi_gcp/compute/per_instance_config.py +2 -18
  216. pulumi_gcp/compute/project_default_network_tier.py +2 -18
  217. pulumi_gcp/compute/project_metadata.py +2 -18
  218. pulumi_gcp/compute/project_metadata_item.py +2 -18
  219. pulumi_gcp/compute/public_advertised_prefix.py +2 -18
  220. pulumi_gcp/compute/public_delegated_prefix.py +2 -18
  221. pulumi_gcp/compute/region_autoscaler.py +2 -18
  222. pulumi_gcp/compute/region_backend_service.py +46 -32
  223. pulumi_gcp/compute/region_commitment.py +2 -18
  224. pulumi_gcp/compute/region_disk.py +6 -29
  225. pulumi_gcp/compute/region_disk_resource_policy_attachment.py +2 -18
  226. pulumi_gcp/compute/region_health_check.py +2 -18
  227. pulumi_gcp/compute/region_instance_group_manager.py +34 -29
  228. pulumi_gcp/compute/region_instance_template.py +2 -18
  229. pulumi_gcp/compute/region_network_endpoint.py +556 -0
  230. pulumi_gcp/compute/region_network_endpoint_group.py +140 -92
  231. pulumi_gcp/compute/region_network_firewall_policy.py +2 -18
  232. pulumi_gcp/compute/region_network_firewall_policy_association.py +2 -18
  233. pulumi_gcp/compute/region_network_firewall_policy_rule.py +2 -18
  234. pulumi_gcp/compute/region_per_instance_config.py +2 -18
  235. pulumi_gcp/compute/region_security_policy.py +2 -18
  236. pulumi_gcp/compute/region_security_policy_rule.py +2 -18
  237. pulumi_gcp/compute/region_ssl_certificate.py +2 -18
  238. pulumi_gcp/compute/region_ssl_policy.py +2 -18
  239. pulumi_gcp/compute/region_target_http_proxy.py +2 -18
  240. pulumi_gcp/compute/region_target_https_proxy.py +2 -18
  241. pulumi_gcp/compute/region_target_tcp_proxy.py +2 -18
  242. pulumi_gcp/compute/region_url_map.py +2 -18
  243. pulumi_gcp/compute/reservation.py +2 -18
  244. pulumi_gcp/compute/resource_policy.py +2 -18
  245. pulumi_gcp/compute/route.py +2 -18
  246. pulumi_gcp/compute/router.py +2 -18
  247. pulumi_gcp/compute/router_interface.py +2 -18
  248. pulumi_gcp/compute/router_nat.py +44 -39
  249. pulumi_gcp/compute/router_peer.py +2 -18
  250. pulumi_gcp/compute/security_policy.py +2 -18
  251. pulumi_gcp/compute/security_scan_config.py +2 -18
  252. pulumi_gcp/compute/service_attachment.py +2 -18
  253. pulumi_gcp/compute/shared_vpc_host_project.py +2 -18
  254. pulumi_gcp/compute/shared_vpc_service_project.py +2 -18
  255. pulumi_gcp/compute/snapshot.py +2 -18
  256. pulumi_gcp/compute/ssl_certificate.py +2 -18
  257. pulumi_gcp/compute/ssl_policy.py +2 -18
  258. pulumi_gcp/compute/subnetwork.py +79 -102
  259. pulumi_gcp/compute/target_grpc_proxy.py +2 -18
  260. pulumi_gcp/compute/target_http_proxy.py +2 -18
  261. pulumi_gcp/compute/target_https_proxy.py +2 -18
  262. pulumi_gcp/compute/target_instance.py +2 -18
  263. pulumi_gcp/compute/target_pool.py +9 -25
  264. pulumi_gcp/compute/target_ssl_proxy.py +2 -18
  265. pulumi_gcp/compute/target_tcp_proxy.py +2 -18
  266. pulumi_gcp/compute/url_map.py +2 -18
  267. pulumi_gcp/compute/vpn_gateway.py +2 -18
  268. pulumi_gcp/compute/vpn_tunnel.py +2 -18
  269. pulumi_gcp/config/__init__.pyi +6 -0
  270. pulumi_gcp/config/vars.py +12 -0
  271. pulumi_gcp/container/_inputs.py +568 -30
  272. pulumi_gcp/container/attached_cluster.py +2 -18
  273. pulumi_gcp/container/aws_cluster.py +9 -25
  274. pulumi_gcp/container/aws_node_pool.py +2 -18
  275. pulumi_gcp/container/azure_client.py +2 -18
  276. pulumi_gcp/container/azure_cluster.py +9 -25
  277. pulumi_gcp/container/azure_node_pool.py +2 -18
  278. pulumi_gcp/container/cluster.py +25 -69
  279. pulumi_gcp/container/node_pool.py +2 -18
  280. pulumi_gcp/container/outputs.py +2161 -31
  281. pulumi_gcp/containeranalysis/note.py +2 -18
  282. pulumi_gcp/containeranalysis/occurence.py +2 -18
  283. pulumi_gcp/databasemigrationservice/connection_profile.py +2 -18
  284. pulumi_gcp/databasemigrationservice/private_connection.py +2 -18
  285. pulumi_gcp/datacatalog/entry.py +2 -18
  286. pulumi_gcp/datacatalog/entry_group.py +2 -18
  287. pulumi_gcp/datacatalog/policy_tag.py +2 -18
  288. pulumi_gcp/datacatalog/tag.py +2 -18
  289. pulumi_gcp/datacatalog/tag_template.py +2 -18
  290. pulumi_gcp/datacatalog/taxonomy.py +2 -18
  291. pulumi_gcp/dataflow/job.py +2 -18
  292. pulumi_gcp/dataflow/pipeline.py +2 -18
  293. pulumi_gcp/dataform/repository.py +2 -18
  294. pulumi_gcp/dataform/repository_release_config.py +2 -18
  295. pulumi_gcp/dataform/repository_workflow_config.py +2 -18
  296. pulumi_gcp/datafusion/instance.py +30 -46
  297. pulumi_gcp/dataloss/prevention_deidentify_template.py +2 -18
  298. pulumi_gcp/dataloss/prevention_inspect_template.py +2 -18
  299. pulumi_gcp/dataloss/prevention_job_trigger.py +2 -18
  300. pulumi_gcp/dataloss/prevention_stored_info_type.py +2 -18
  301. pulumi_gcp/dataplex/_inputs.py +66 -0
  302. pulumi_gcp/dataplex/asset.py +2 -18
  303. pulumi_gcp/dataplex/datascan.py +2 -18
  304. pulumi_gcp/dataplex/lake.py +2 -18
  305. pulumi_gcp/dataplex/outputs.py +66 -0
  306. pulumi_gcp/dataplex/task.py +2 -18
  307. pulumi_gcp/dataplex/zone.py +2 -18
  308. pulumi_gcp/dataproc/_inputs.py +178 -0
  309. pulumi_gcp/dataproc/autoscaling_policy.py +2 -18
  310. pulumi_gcp/dataproc/cluster_iam_binding.py +4 -12
  311. pulumi_gcp/dataproc/cluster_iam_member.py +4 -12
  312. pulumi_gcp/dataproc/cluster_iam_policy.py +4 -12
  313. pulumi_gcp/dataproc/job_iam_binding.py +4 -12
  314. pulumi_gcp/dataproc/job_iam_member.py +4 -12
  315. pulumi_gcp/dataproc/job_iam_policy.py +4 -12
  316. pulumi_gcp/dataproc/metastore_federation.py +2 -18
  317. pulumi_gcp/dataproc/metastore_service.py +2 -18
  318. pulumi_gcp/dataproc/outputs.py +178 -0
  319. pulumi_gcp/dataproc/workflow_template.py +9 -25
  320. pulumi_gcp/datastore/data_store_index.py +2 -18
  321. pulumi_gcp/datastream/connection_profile.py +2 -18
  322. pulumi_gcp/datastream/private_connection.py +2 -18
  323. pulumi_gcp/datastream/stream.py +2 -18
  324. pulumi_gcp/deploymentmanager/deployment.py +2 -18
  325. pulumi_gcp/diagflow/agent.py +2 -18
  326. pulumi_gcp/diagflow/cx_agent.py +2 -18
  327. pulumi_gcp/diagflow/cx_entity_type.py +2 -18
  328. pulumi_gcp/diagflow/cx_environment.py +2 -18
  329. pulumi_gcp/diagflow/cx_flow.py +2 -18
  330. pulumi_gcp/diagflow/cx_intent.py +2 -18
  331. pulumi_gcp/diagflow/cx_page.py +2 -18
  332. pulumi_gcp/diagflow/cx_security_settings.py +2 -18
  333. pulumi_gcp/diagflow/cx_test_case.py +2 -18
  334. pulumi_gcp/diagflow/cx_version.py +2 -18
  335. pulumi_gcp/diagflow/cx_webhook.py +2 -18
  336. pulumi_gcp/diagflow/entity_type.py +2 -18
  337. pulumi_gcp/diagflow/fulfillment.py +2 -18
  338. pulumi_gcp/diagflow/intent.py +2 -18
  339. pulumi_gcp/discoveryengine/__init__.py +12 -0
  340. pulumi_gcp/discoveryengine/_inputs.py +237 -0
  341. pulumi_gcp/discoveryengine/chat_engine.py +822 -0
  342. pulumi_gcp/discoveryengine/data_store.py +734 -0
  343. pulumi_gcp/discoveryengine/outputs.py +304 -0
  344. pulumi_gcp/discoveryengine/search_engine.py +752 -0
  345. pulumi_gcp/dns/_inputs.py +34 -0
  346. pulumi_gcp/dns/managed_zone.py +2 -18
  347. pulumi_gcp/dns/outputs.py +34 -0
  348. pulumi_gcp/dns/policy.py +2 -18
  349. pulumi_gcp/dns/record_set.py +2 -18
  350. pulumi_gcp/dns/response_policy.py +2 -18
  351. pulumi_gcp/dns/response_policy_rule.py +9 -32
  352. pulumi_gcp/edgecontainer/cluster.py +2 -18
  353. pulumi_gcp/edgecontainer/node_pool.py +2 -18
  354. pulumi_gcp/edgecontainer/vpn_connection.py +2 -18
  355. pulumi_gcp/edgenetwork/network.py +2 -18
  356. pulumi_gcp/edgenetwork/subnet.py +2 -18
  357. pulumi_gcp/essentialcontacts/contact.py +2 -18
  358. pulumi_gcp/essentialcontacts/document_ai_processor.py +2 -18
  359. pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py +2 -18
  360. pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +2 -18
  361. pulumi_gcp/eventarc/_inputs.py +2 -2
  362. pulumi_gcp/eventarc/channel.py +2 -18
  363. pulumi_gcp/eventarc/google_channel_config.py +2 -18
  364. pulumi_gcp/eventarc/outputs.py +2 -2
  365. pulumi_gcp/eventarc/trigger.py +2 -18
  366. pulumi_gcp/filestore/_inputs.py +1 -3
  367. pulumi_gcp/filestore/backup.py +2 -18
  368. pulumi_gcp/filestore/instance.py +2 -18
  369. pulumi_gcp/filestore/outputs.py +89 -3
  370. pulumi_gcp/filestore/snapshot.py +2 -18
  371. pulumi_gcp/firebase/_inputs.py +4 -2
  372. pulumi_gcp/firebase/android_app.py +2 -18
  373. pulumi_gcp/firebase/apple_app.py +2 -18
  374. pulumi_gcp/firebase/database_instance.py +2 -18
  375. pulumi_gcp/firebase/extensions_instance.py +8 -26
  376. pulumi_gcp/firebase/hosting_channel.py +2 -18
  377. pulumi_gcp/firebase/hosting_custom_domain.py +2 -18
  378. pulumi_gcp/firebase/hosting_release.py +2 -18
  379. pulumi_gcp/firebase/hosting_site.py +2 -18
  380. pulumi_gcp/firebase/hosting_version.py +2 -18
  381. pulumi_gcp/firebase/outputs.py +4 -2
  382. pulumi_gcp/firebase/project.py +2 -18
  383. pulumi_gcp/firebase/storage_bucket.py +2 -18
  384. pulumi_gcp/firebase/web_app.py +2 -18
  385. pulumi_gcp/firebaserules/_inputs.py +6 -0
  386. pulumi_gcp/firebaserules/outputs.py +6 -0
  387. pulumi_gcp/firebaserules/release.py +4 -16
  388. pulumi_gcp/firebaserules/ruleset.py +2 -18
  389. pulumi_gcp/firestore/backup_schedule.py +38 -30
  390. pulumi_gcp/firestore/database.py +2 -26
  391. pulumi_gcp/firestore/document.py +2 -86
  392. pulumi_gcp/firestore/field.py +24 -120
  393. pulumi_gcp/firestore/index.py +6 -60
  394. pulumi_gcp/folder/_inputs.py +4 -0
  395. pulumi_gcp/folder/access_approval_settings.py +2 -18
  396. pulumi_gcp/folder/iam_audit_config.py +6 -14
  397. pulumi_gcp/folder/iam_member.py +6 -14
  398. pulumi_gcp/folder/iam_policy.py +6 -14
  399. pulumi_gcp/folder/organization_policy.py +2 -18
  400. pulumi_gcp/folder/outputs.py +54 -0
  401. pulumi_gcp/gkebackup/backup_plan.py +2 -18
  402. pulumi_gcp/gkebackup/restore_plan.py +2 -18
  403. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -18
  404. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -18
  405. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -18
  406. pulumi_gcp/gkehub/_inputs.py +8 -0
  407. pulumi_gcp/gkehub/feature.py +4 -20
  408. pulumi_gcp/gkehub/feature_membership.py +2 -18
  409. pulumi_gcp/gkehub/fleet.py +2 -18
  410. pulumi_gcp/gkehub/membership.py +6 -29
  411. pulumi_gcp/gkehub/membership_binding.py +2 -18
  412. pulumi_gcp/gkehub/membership_rbac_role_binding.py +2 -18
  413. pulumi_gcp/gkehub/namespace.py +2 -18
  414. pulumi_gcp/gkehub/outputs.py +8 -0
  415. pulumi_gcp/gkehub/scope.py +2 -18
  416. pulumi_gcp/gkehub/scope_rbac_role_binding.py +2 -18
  417. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +2 -18
  418. pulumi_gcp/gkeonprem/bare_metal_cluster.py +2 -18
  419. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +2 -18
  420. pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -18
  421. pulumi_gcp/gkeonprem/v_mware_node_pool.py +2 -18
  422. pulumi_gcp/healthcare/consent_store.py +2 -18
  423. pulumi_gcp/healthcare/dataset.py +2 -18
  424. pulumi_gcp/healthcare/dataset_iam_binding.py +4 -12
  425. pulumi_gcp/healthcare/dataset_iam_member.py +4 -12
  426. pulumi_gcp/healthcare/dataset_iam_policy.py +4 -12
  427. pulumi_gcp/healthcare/dicom_store.py +2 -18
  428. pulumi_gcp/healthcare/dicom_store_iam_binding.py +4 -12
  429. pulumi_gcp/healthcare/dicom_store_iam_member.py +4 -12
  430. pulumi_gcp/healthcare/dicom_store_iam_policy.py +4 -12
  431. pulumi_gcp/healthcare/fhir_store.py +23 -32
  432. pulumi_gcp/healthcare/fhir_store_iam_binding.py +4 -12
  433. pulumi_gcp/healthcare/fhir_store_iam_member.py +4 -12
  434. pulumi_gcp/healthcare/fhir_store_iam_policy.py +4 -12
  435. pulumi_gcp/healthcare/hl7_store.py +2 -18
  436. pulumi_gcp/healthcare/hl7_store_iam_binding.py +4 -12
  437. pulumi_gcp/healthcare/hl7_store_iam_member.py +4 -12
  438. pulumi_gcp/healthcare/hl7_store_iam_policy.py +4 -12
  439. pulumi_gcp/iam/access_boundary_policy.py +2 -18
  440. pulumi_gcp/iam/deny_policy.py +2 -18
  441. pulumi_gcp/iam/outputs.py +92 -0
  442. pulumi_gcp/iam/workforce_pool.py +2 -18
  443. pulumi_gcp/iam/workforce_pool_provider.py +2 -18
  444. pulumi_gcp/iam/workload_identity_pool.py +2 -18
  445. pulumi_gcp/iam/workload_identity_pool_provider.py +2 -18
  446. pulumi_gcp/iap/brand.py +2 -18
  447. pulumi_gcp/iap/client.py +2 -18
  448. pulumi_gcp/identityplatform/config.py +2 -18
  449. pulumi_gcp/identityplatform/default_supported_idp_config.py +2 -18
  450. pulumi_gcp/identityplatform/inbound_saml_config.py +2 -18
  451. pulumi_gcp/identityplatform/oauth_idp_config.py +2 -18
  452. pulumi_gcp/identityplatform/project_default_config.py +2 -18
  453. pulumi_gcp/identityplatform/tenant.py +2 -18
  454. pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py +2 -18
  455. pulumi_gcp/identityplatform/tenant_inbound_saml_config.py +2 -18
  456. pulumi_gcp/identityplatform/tenant_oauth_idp_config.py +2 -18
  457. pulumi_gcp/integrationconnectors/connection.py +2 -18
  458. pulumi_gcp/integrationconnectors/endpoint_attachment.py +2 -18
  459. pulumi_gcp/kms/crypto_key.py +36 -18
  460. pulumi_gcp/kms/crypto_key_iam_binding.py +11 -19
  461. pulumi_gcp/kms/crypto_key_iam_member.py +11 -19
  462. pulumi_gcp/kms/crypto_key_iam_policy.py +4 -12
  463. pulumi_gcp/kms/crypto_key_version.py +2 -18
  464. pulumi_gcp/kms/key_ring.py +2 -18
  465. pulumi_gcp/kms/key_ring_iam_binding.py +11 -19
  466. pulumi_gcp/kms/key_ring_iam_member.py +11 -19
  467. pulumi_gcp/kms/key_ring_iam_policy.py +4 -12
  468. pulumi_gcp/kms/key_ring_import_job.py +2 -18
  469. pulumi_gcp/kms/outputs.py +16 -0
  470. pulumi_gcp/logging/_inputs.py +108 -0
  471. pulumi_gcp/logging/billing_account_bucket_config.py +2 -18
  472. pulumi_gcp/logging/billing_account_exclusion.py +2 -18
  473. pulumi_gcp/logging/billing_account_sink.py +2 -18
  474. pulumi_gcp/logging/folder_bucket_config.py +2 -18
  475. pulumi_gcp/logging/folder_exclusion.py +2 -18
  476. pulumi_gcp/logging/folder_settings.py +2 -18
  477. pulumi_gcp/logging/folder_sink.py +2 -18
  478. pulumi_gcp/logging/linked_dataset.py +2 -18
  479. pulumi_gcp/logging/log_view.py +2 -18
  480. pulumi_gcp/logging/metric.py +2 -18
  481. pulumi_gcp/logging/organization_bucket_config.py +2 -18
  482. pulumi_gcp/logging/organization_exclusion.py +2 -18
  483. pulumi_gcp/logging/organization_settings.py +2 -18
  484. pulumi_gcp/logging/organization_sink.py +2 -18
  485. pulumi_gcp/logging/outputs.py +108 -0
  486. pulumi_gcp/logging/project_bucket_config.py +2 -18
  487. pulumi_gcp/logging/project_exclusion.py +2 -18
  488. pulumi_gcp/logging/project_sink.py +2 -18
  489. pulumi_gcp/looker/instance.py +2 -18
  490. pulumi_gcp/memcache/instance.py +63 -18
  491. pulumi_gcp/migrationcenter/group.py +2 -18
  492. pulumi_gcp/ml/engine_model.py +2 -18
  493. pulumi_gcp/monitoring/alert_policy.py +2 -18
  494. pulumi_gcp/monitoring/custom_service.py +2 -18
  495. pulumi_gcp/monitoring/dashboard.py +2 -18
  496. pulumi_gcp/monitoring/generic_service.py +2 -18
  497. pulumi_gcp/monitoring/group.py +2 -18
  498. pulumi_gcp/monitoring/metric_descriptor.py +2 -18
  499. pulumi_gcp/monitoring/monitored_project.py +2 -18
  500. pulumi_gcp/monitoring/notification_channel.py +2 -18
  501. pulumi_gcp/monitoring/outputs.py +14 -0
  502. pulumi_gcp/monitoring/slo.py +2 -18
  503. pulumi_gcp/monitoring/uptime_check_config.py +2 -18
  504. pulumi_gcp/netapp/__init__.py +1 -0
  505. pulumi_gcp/netapp/active_directory.py +2 -18
  506. pulumi_gcp/netapp/backup_policy.py +2 -18
  507. pulumi_gcp/netapp/backup_vault.py +2 -18
  508. pulumi_gcp/netapp/kmsconfig.py +2 -18
  509. pulumi_gcp/netapp/storage_pool.py +36 -24
  510. pulumi_gcp/netapp/volume.py +67 -20
  511. pulumi_gcp/netapp/volume_snapshot.py +625 -0
  512. pulumi_gcp/networkconnectivity/_inputs.py +6 -0
  513. pulumi_gcp/networkconnectivity/hub.py +2 -18
  514. pulumi_gcp/networkconnectivity/outputs.py +6 -0
  515. pulumi_gcp/networkconnectivity/policy_based_route.py +2 -18
  516. pulumi_gcp/networkconnectivity/service_connection_policy.py +2 -18
  517. pulumi_gcp/networkconnectivity/spoke.py +2 -18
  518. pulumi_gcp/networkmanagement/connectivity_test.py +2 -18
  519. pulumi_gcp/networksecurity/address_group.py +2 -18
  520. pulumi_gcp/networksecurity/authorization_policy.py +2 -18
  521. pulumi_gcp/networksecurity/client_tls_policy.py +2 -18
  522. pulumi_gcp/networksecurity/gateway_security_policy.py +2 -18
  523. pulumi_gcp/networksecurity/gateway_security_policy_rule.py +2 -18
  524. pulumi_gcp/networksecurity/security_profile.py +2 -18
  525. pulumi_gcp/networksecurity/server_tls_policy.py +2 -18
  526. pulumi_gcp/networksecurity/tls_inspection_policy.py +2 -18
  527. pulumi_gcp/networksecurity/url_list.py +2 -18
  528. pulumi_gcp/networkservices/edge_cache_keyset.py +2 -18
  529. pulumi_gcp/networkservices/edge_cache_origin.py +2 -18
  530. pulumi_gcp/networkservices/edge_cache_service.py +2 -18
  531. pulumi_gcp/networkservices/endpoint_policy.py +2 -18
  532. pulumi_gcp/networkservices/gateway.py +2 -18
  533. pulumi_gcp/networkservices/grpc_route.py +2 -18
  534. pulumi_gcp/networkservices/http_route.py +2 -18
  535. pulumi_gcp/networkservices/mesh.py +2 -18
  536. pulumi_gcp/networkservices/service_binding.py +2 -18
  537. pulumi_gcp/networkservices/tcp_route.py +2 -18
  538. pulumi_gcp/networkservices/tls_route.py +2 -18
  539. pulumi_gcp/notebooks/environment.py +2 -18
  540. pulumi_gcp/notebooks/instance.py +2 -18
  541. pulumi_gcp/notebooks/location.py +2 -18
  542. pulumi_gcp/notebooks/runtime.py +2 -18
  543. pulumi_gcp/organizations/_inputs.py +4 -0
  544. pulumi_gcp/organizations/access_approval_settings.py +2 -18
  545. pulumi_gcp/organizations/folder.py +2 -18
  546. pulumi_gcp/organizations/iam_audit_config.py +2 -2
  547. pulumi_gcp/organizations/iam_member.py +6 -14
  548. pulumi_gcp/organizations/iam_policy.py +6 -14
  549. pulumi_gcp/organizations/outputs.py +4 -0
  550. pulumi_gcp/organizations/policy.py +2 -18
  551. pulumi_gcp/organizations/project.py +2 -18
  552. pulumi_gcp/orgpolicy/custom_constraint.py +2 -18
  553. pulumi_gcp/orgpolicy/policy.py +4 -16
  554. pulumi_gcp/osconfig/guest_policies.py +2 -18
  555. pulumi_gcp/osconfig/os_policy_assignment.py +2 -18
  556. pulumi_gcp/osconfig/patch_deployment.py +2 -18
  557. pulumi_gcp/oslogin/ssh_public_key.py +2 -18
  558. pulumi_gcp/projects/_inputs.py +4 -0
  559. pulumi_gcp/projects/access_approval_settings.py +2 -18
  560. pulumi_gcp/projects/api_key.py +2 -18
  561. pulumi_gcp/projects/iam_audit_config.py +6 -14
  562. pulumi_gcp/projects/iam_binding.py +6 -14
  563. pulumi_gcp/projects/iam_custom_role.py +2 -18
  564. pulumi_gcp/projects/iam_member.py +6 -14
  565. pulumi_gcp/projects/iam_policy.py +6 -14
  566. pulumi_gcp/projects/organization_policy.py +2 -18
  567. pulumi_gcp/projects/outputs.py +54 -0
  568. pulumi_gcp/projects/service.py +2 -18
  569. pulumi_gcp/projects/usage_export_bucket.py +2 -18
  570. pulumi_gcp/provider.py +60 -0
  571. pulumi_gcp/pubsub/_inputs.py +26 -4
  572. pulumi_gcp/pubsub/lite_reservation.py +2 -18
  573. pulumi_gcp/pubsub/lite_subscription.py +2 -18
  574. pulumi_gcp/pubsub/lite_topic.py +2 -18
  575. pulumi_gcp/pubsub/outputs.py +323 -4
  576. pulumi_gcp/pubsub/schema.py +2 -18
  577. pulumi_gcp/pubsub/subscription.py +82 -16
  578. pulumi_gcp/pubsub/subscription_iam_binding.py +4 -12
  579. pulumi_gcp/pubsub/subscription_iam_member.py +4 -12
  580. pulumi_gcp/pubsub/subscription_iam_policy.py +4 -12
  581. pulumi_gcp/pubsub/topic.py +2 -18
  582. pulumi_gcp/recaptcha/enterprise_key.py +2 -18
  583. pulumi_gcp/redis/cluster.py +2 -18
  584. pulumi_gcp/redis/instance.py +2 -18
  585. pulumi_gcp/redis/outputs.py +204 -0
  586. pulumi_gcp/resourcemanager/lien.py +2 -18
  587. pulumi_gcp/runtimeconfig/config.py +2 -18
  588. pulumi_gcp/runtimeconfig/variable.py +2 -18
  589. pulumi_gcp/secretmanager/outputs.py +88 -0
  590. pulumi_gcp/secretmanager/secret.py +2 -18
  591. pulumi_gcp/secretmanager/secret_version.py +2 -18
  592. pulumi_gcp/securesourcemanager/instance.py +2 -18
  593. pulumi_gcp/securitycenter/event_threat_detection_custom_module.py +2 -18
  594. pulumi_gcp/securitycenter/folder_custom_module.py +2 -18
  595. pulumi_gcp/securitycenter/instance_iam_binding.py +2 -18
  596. pulumi_gcp/securitycenter/instance_iam_member.py +2 -18
  597. pulumi_gcp/securitycenter/instance_iam_policy.py +2 -18
  598. pulumi_gcp/securitycenter/mute_config.py +2 -18
  599. pulumi_gcp/securitycenter/notification_config.py +2 -18
  600. pulumi_gcp/securitycenter/organization_custom_module.py +2 -18
  601. pulumi_gcp/securitycenter/project_custom_module.py +2 -18
  602. pulumi_gcp/securitycenter/source.py +2 -18
  603. pulumi_gcp/securitycenter/source_iam_binding.py +2 -18
  604. pulumi_gcp/securitycenter/source_iam_member.py +2 -18
  605. pulumi_gcp/securitycenter/source_iam_policy.py +2 -18
  606. pulumi_gcp/securityposture/__init__.py +11 -0
  607. pulumi_gcp/securityposture/_inputs.py +1364 -0
  608. pulumi_gcp/securityposture/outputs.py +1372 -0
  609. pulumi_gcp/securityposture/posture.py +828 -0
  610. pulumi_gcp/securityposture/posture_deployment.py +872 -0
  611. pulumi_gcp/serviceaccount/account.py +2 -18
  612. pulumi_gcp/servicedirectory/endpoint.py +2 -18
  613. pulumi_gcp/servicedirectory/namespace.py +2 -18
  614. pulumi_gcp/servicedirectory/service.py +2 -18
  615. pulumi_gcp/servicenetworking/connection.py +2 -18
  616. pulumi_gcp/servicenetworking/peered_dns_domain.py +2 -18
  617. pulumi_gcp/serviceusage/consumer_quota_override.py +2 -18
  618. pulumi_gcp/sourcerepo/outputs.py +20 -0
  619. pulumi_gcp/sourcerepo/repository.py +2 -18
  620. pulumi_gcp/spanner/database.py +2 -18
  621. pulumi_gcp/spanner/database_iam_binding.py +4 -12
  622. pulumi_gcp/spanner/database_iam_member.py +4 -12
  623. pulumi_gcp/spanner/database_iam_policy.py +4 -12
  624. pulumi_gcp/spanner/instance.py +2 -18
  625. pulumi_gcp/spanner/instance_iam_binding.py +4 -12
  626. pulumi_gcp/spanner/instance_iam_member.py +4 -12
  627. pulumi_gcp/spanner/instance_iam_policy.py +4 -12
  628. pulumi_gcp/spanner/outputs.py +68 -0
  629. pulumi_gcp/sql/_inputs.py +50 -0
  630. pulumi_gcp/sql/database.py +2 -18
  631. pulumi_gcp/sql/database_instance.py +2 -18
  632. pulumi_gcp/sql/outputs.py +904 -0
  633. pulumi_gcp/sql/source_representation_instance.py +2 -18
  634. pulumi_gcp/sql/user.py +2 -30
  635. pulumi_gcp/storage/bucket.py +2 -18
  636. pulumi_gcp/storage/bucket_access_control.py +2 -18
  637. pulumi_gcp/storage/default_object_access_control.py +2 -18
  638. pulumi_gcp/storage/hmac_key.py +2 -18
  639. pulumi_gcp/storage/insights_report_config.py +2 -18
  640. pulumi_gcp/storage/notification.py +2 -18
  641. pulumi_gcp/storage/object_access_control.py +2 -18
  642. pulumi_gcp/storage/outputs.py +188 -0
  643. pulumi_gcp/storage/transfer_agent_pool.py +2 -18
  644. pulumi_gcp/storage/transfer_job.py +2 -18
  645. pulumi_gcp/tags/location_tag_binding.py +2 -18
  646. pulumi_gcp/tags/tag_binding.py +2 -18
  647. pulumi_gcp/tags/tag_key.py +2 -18
  648. pulumi_gcp/tags/tag_value.py +2 -18
  649. pulumi_gcp/tpu/node.py +2 -18
  650. pulumi_gcp/tpu/v2_vm.py +2 -18
  651. pulumi_gcp/vertex/_inputs.py +166 -0
  652. pulumi_gcp/vertex/ai_endpoint.py +2 -18
  653. pulumi_gcp/vertex/ai_feature_group.py +2 -18
  654. pulumi_gcp/vertex/ai_feature_group_feature.py +2 -18
  655. pulumi_gcp/vertex/ai_feature_online_store.py +30 -46
  656. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +259 -19
  657. pulumi_gcp/vertex/ai_feature_store.py +9 -46
  658. pulumi_gcp/vertex/ai_feature_store_entity_type.py +9 -39
  659. pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py +2 -18
  660. pulumi_gcp/vertex/ai_index.py +2 -18
  661. pulumi_gcp/vertex/ai_index_endpoint.py +2 -18
  662. pulumi_gcp/vertex/ai_metadata_store.py +2 -18
  663. pulumi_gcp/vertex/ai_tensorboard.py +2 -18
  664. pulumi_gcp/vertex/outputs.py +304 -0
  665. pulumi_gcp/vmwareengine/cluster.py +2 -18
  666. pulumi_gcp/vmwareengine/external_access_rule.py +2 -18
  667. pulumi_gcp/vmwareengine/external_address.py +2 -18
  668. pulumi_gcp/vmwareengine/network.py +2 -18
  669. pulumi_gcp/vmwareengine/network_peering.py +2 -18
  670. pulumi_gcp/vmwareengine/network_policy.py +2 -18
  671. pulumi_gcp/vmwareengine/outputs.py +208 -0
  672. pulumi_gcp/vmwareengine/private_cloud.py +2 -25
  673. pulumi_gcp/vmwareengine/subnet.py +2 -18
  674. pulumi_gcp/vpcaccess/connector.py +2 -18
  675. pulumi_gcp/vpcaccess/outputs.py +4 -0
  676. pulumi_gcp/workbench/instance.py +2 -18
  677. pulumi_gcp/workflows/workflow.py +75 -7
  678. pulumi_gcp/workstations/_inputs.py +38 -0
  679. pulumi_gcp/workstations/outputs.py +30 -0
  680. pulumi_gcp/workstations/workstation.py +2 -18
  681. pulumi_gcp/workstations/workstation_cluster.py +2 -18
  682. pulumi_gcp/workstations/workstation_config.py +56 -18
  683. {pulumi_gcp-7.7.0a1706207981.dist-info → pulumi_gcp-7.8.0.dist-info}/METADATA +2 -1
  684. {pulumi_gcp-7.7.0a1706207981.dist-info → pulumi_gcp-7.8.0.dist-info}/RECORD +686 -668
  685. {pulumi_gcp-7.7.0a1706207981.dist-info → pulumi_gcp-7.8.0.dist-info}/WHEEL +0 -0
  686. {pulumi_gcp-7.7.0a1706207981.dist-info → pulumi_gcp-7.8.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,828 @@
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
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['PostureArgs', 'Posture']
15
+
16
+ @pulumi.input_type
17
+ class PostureArgs:
18
+ def __init__(__self__, *,
19
+ location: pulumi.Input[str],
20
+ parent: pulumi.Input[str],
21
+ posture_id: pulumi.Input[str],
22
+ state: pulumi.Input[str],
23
+ description: Optional[pulumi.Input[str]] = None,
24
+ policy_sets: Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]] = None):
25
+ """
26
+ The set of arguments for constructing a Posture resource.
27
+ :param pulumi.Input[str] location: Location of the resource, eg: global.
28
+ :param pulumi.Input[str] parent: The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
29
+ :param pulumi.Input[str] posture_id: Id of the posture. It is an immutable field.
30
+
31
+
32
+ - - -
33
+ :param pulumi.Input[str] state: State of the posture. Update to state field should not be triggered along with
34
+ with other field updates.
35
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
36
+ :param pulumi.Input[str] description: Description of the posture.
37
+ :param pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]] policy_sets: List of policy sets for the posture.
38
+ Structure is documented below.
39
+ """
40
+ pulumi.set(__self__, "location", location)
41
+ pulumi.set(__self__, "parent", parent)
42
+ pulumi.set(__self__, "posture_id", posture_id)
43
+ pulumi.set(__self__, "state", state)
44
+ if description is not None:
45
+ pulumi.set(__self__, "description", description)
46
+ if policy_sets is not None:
47
+ pulumi.set(__self__, "policy_sets", policy_sets)
48
+
49
+ @property
50
+ @pulumi.getter
51
+ def location(self) -> pulumi.Input[str]:
52
+ """
53
+ Location of the resource, eg: global.
54
+ """
55
+ return pulumi.get(self, "location")
56
+
57
+ @location.setter
58
+ def location(self, value: pulumi.Input[str]):
59
+ pulumi.set(self, "location", value)
60
+
61
+ @property
62
+ @pulumi.getter
63
+ def parent(self) -> pulumi.Input[str]:
64
+ """
65
+ The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
66
+ """
67
+ return pulumi.get(self, "parent")
68
+
69
+ @parent.setter
70
+ def parent(self, value: pulumi.Input[str]):
71
+ pulumi.set(self, "parent", value)
72
+
73
+ @property
74
+ @pulumi.getter(name="postureId")
75
+ def posture_id(self) -> pulumi.Input[str]:
76
+ """
77
+ Id of the posture. It is an immutable field.
78
+
79
+
80
+ - - -
81
+ """
82
+ return pulumi.get(self, "posture_id")
83
+
84
+ @posture_id.setter
85
+ def posture_id(self, value: pulumi.Input[str]):
86
+ pulumi.set(self, "posture_id", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def state(self) -> pulumi.Input[str]:
91
+ """
92
+ State of the posture. Update to state field should not be triggered along with
93
+ with other field updates.
94
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
95
+ """
96
+ return pulumi.get(self, "state")
97
+
98
+ @state.setter
99
+ def state(self, value: pulumi.Input[str]):
100
+ pulumi.set(self, "state", value)
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def description(self) -> Optional[pulumi.Input[str]]:
105
+ """
106
+ Description of the posture.
107
+ """
108
+ return pulumi.get(self, "description")
109
+
110
+ @description.setter
111
+ def description(self, value: Optional[pulumi.Input[str]]):
112
+ pulumi.set(self, "description", value)
113
+
114
+ @property
115
+ @pulumi.getter(name="policySets")
116
+ def policy_sets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]]:
117
+ """
118
+ List of policy sets for the posture.
119
+ Structure is documented below.
120
+ """
121
+ return pulumi.get(self, "policy_sets")
122
+
123
+ @policy_sets.setter
124
+ def policy_sets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]]):
125
+ pulumi.set(self, "policy_sets", value)
126
+
127
+
128
+ @pulumi.input_type
129
+ class _PostureState:
130
+ def __init__(__self__, *,
131
+ create_time: Optional[pulumi.Input[str]] = None,
132
+ description: Optional[pulumi.Input[str]] = None,
133
+ etag: Optional[pulumi.Input[str]] = None,
134
+ location: Optional[pulumi.Input[str]] = None,
135
+ name: Optional[pulumi.Input[str]] = None,
136
+ parent: Optional[pulumi.Input[str]] = None,
137
+ policy_sets: Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]] = None,
138
+ posture_id: Optional[pulumi.Input[str]] = None,
139
+ reconciling: Optional[pulumi.Input[bool]] = None,
140
+ revision_id: Optional[pulumi.Input[str]] = None,
141
+ state: Optional[pulumi.Input[str]] = None,
142
+ update_time: Optional[pulumi.Input[str]] = None):
143
+ """
144
+ Input properties used for looking up and filtering Posture resources.
145
+ :param pulumi.Input[str] create_time: Time the Posture was created in UTC.
146
+ :param pulumi.Input[str] description: Description of the posture.
147
+ :param pulumi.Input[str] etag: For Resource freshness validation (https://google.aip.dev/154)
148
+ :param pulumi.Input[str] location: Location of the resource, eg: global.
149
+ :param pulumi.Input[str] name: Immutable. The name of the custom constraint. This is unique within the organization.
150
+ :param pulumi.Input[str] parent: The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
151
+ :param pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]] policy_sets: List of policy sets for the posture.
152
+ Structure is documented below.
153
+ :param pulumi.Input[str] posture_id: Id of the posture. It is an immutable field.
154
+
155
+
156
+ - - -
157
+ :param pulumi.Input[bool] reconciling: If set, there are currently changes in flight to the posture.
158
+ :param pulumi.Input[str] revision_id: Revision_id of the posture.
159
+ :param pulumi.Input[str] state: State of the posture. Update to state field should not be triggered along with
160
+ with other field updates.
161
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
162
+ :param pulumi.Input[str] update_time: Time the Posture was updated in UTC.
163
+ """
164
+ if create_time is not None:
165
+ pulumi.set(__self__, "create_time", create_time)
166
+ if description is not None:
167
+ pulumi.set(__self__, "description", description)
168
+ if etag is not None:
169
+ pulumi.set(__self__, "etag", etag)
170
+ if location is not None:
171
+ pulumi.set(__self__, "location", location)
172
+ if name is not None:
173
+ pulumi.set(__self__, "name", name)
174
+ if parent is not None:
175
+ pulumi.set(__self__, "parent", parent)
176
+ if policy_sets is not None:
177
+ pulumi.set(__self__, "policy_sets", policy_sets)
178
+ if posture_id is not None:
179
+ pulumi.set(__self__, "posture_id", posture_id)
180
+ if reconciling is not None:
181
+ pulumi.set(__self__, "reconciling", reconciling)
182
+ if revision_id is not None:
183
+ pulumi.set(__self__, "revision_id", revision_id)
184
+ if state is not None:
185
+ pulumi.set(__self__, "state", state)
186
+ if update_time is not None:
187
+ pulumi.set(__self__, "update_time", update_time)
188
+
189
+ @property
190
+ @pulumi.getter(name="createTime")
191
+ def create_time(self) -> Optional[pulumi.Input[str]]:
192
+ """
193
+ Time the Posture was created in UTC.
194
+ """
195
+ return pulumi.get(self, "create_time")
196
+
197
+ @create_time.setter
198
+ def create_time(self, value: Optional[pulumi.Input[str]]):
199
+ pulumi.set(self, "create_time", value)
200
+
201
+ @property
202
+ @pulumi.getter
203
+ def description(self) -> Optional[pulumi.Input[str]]:
204
+ """
205
+ Description of the posture.
206
+ """
207
+ return pulumi.get(self, "description")
208
+
209
+ @description.setter
210
+ def description(self, value: Optional[pulumi.Input[str]]):
211
+ pulumi.set(self, "description", value)
212
+
213
+ @property
214
+ @pulumi.getter
215
+ def etag(self) -> Optional[pulumi.Input[str]]:
216
+ """
217
+ For Resource freshness validation (https://google.aip.dev/154)
218
+ """
219
+ return pulumi.get(self, "etag")
220
+
221
+ @etag.setter
222
+ def etag(self, value: Optional[pulumi.Input[str]]):
223
+ pulumi.set(self, "etag", value)
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def location(self) -> Optional[pulumi.Input[str]]:
228
+ """
229
+ Location of the resource, eg: global.
230
+ """
231
+ return pulumi.get(self, "location")
232
+
233
+ @location.setter
234
+ def location(self, value: Optional[pulumi.Input[str]]):
235
+ pulumi.set(self, "location", value)
236
+
237
+ @property
238
+ @pulumi.getter
239
+ def name(self) -> Optional[pulumi.Input[str]]:
240
+ """
241
+ Immutable. The name of the custom constraint. This is unique within the organization.
242
+ """
243
+ return pulumi.get(self, "name")
244
+
245
+ @name.setter
246
+ def name(self, value: Optional[pulumi.Input[str]]):
247
+ pulumi.set(self, "name", value)
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def parent(self) -> Optional[pulumi.Input[str]]:
252
+ """
253
+ The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
254
+ """
255
+ return pulumi.get(self, "parent")
256
+
257
+ @parent.setter
258
+ def parent(self, value: Optional[pulumi.Input[str]]):
259
+ pulumi.set(self, "parent", value)
260
+
261
+ @property
262
+ @pulumi.getter(name="policySets")
263
+ def policy_sets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]]:
264
+ """
265
+ List of policy sets for the posture.
266
+ Structure is documented below.
267
+ """
268
+ return pulumi.get(self, "policy_sets")
269
+
270
+ @policy_sets.setter
271
+ def policy_sets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PosturePolicySetArgs']]]]):
272
+ pulumi.set(self, "policy_sets", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="postureId")
276
+ def posture_id(self) -> Optional[pulumi.Input[str]]:
277
+ """
278
+ Id of the posture. It is an immutable field.
279
+
280
+
281
+ - - -
282
+ """
283
+ return pulumi.get(self, "posture_id")
284
+
285
+ @posture_id.setter
286
+ def posture_id(self, value: Optional[pulumi.Input[str]]):
287
+ pulumi.set(self, "posture_id", value)
288
+
289
+ @property
290
+ @pulumi.getter
291
+ def reconciling(self) -> Optional[pulumi.Input[bool]]:
292
+ """
293
+ If set, there are currently changes in flight to the posture.
294
+ """
295
+ return pulumi.get(self, "reconciling")
296
+
297
+ @reconciling.setter
298
+ def reconciling(self, value: Optional[pulumi.Input[bool]]):
299
+ pulumi.set(self, "reconciling", value)
300
+
301
+ @property
302
+ @pulumi.getter(name="revisionId")
303
+ def revision_id(self) -> Optional[pulumi.Input[str]]:
304
+ """
305
+ Revision_id of the posture.
306
+ """
307
+ return pulumi.get(self, "revision_id")
308
+
309
+ @revision_id.setter
310
+ def revision_id(self, value: Optional[pulumi.Input[str]]):
311
+ pulumi.set(self, "revision_id", value)
312
+
313
+ @property
314
+ @pulumi.getter
315
+ def state(self) -> Optional[pulumi.Input[str]]:
316
+ """
317
+ State of the posture. Update to state field should not be triggered along with
318
+ with other field updates.
319
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
320
+ """
321
+ return pulumi.get(self, "state")
322
+
323
+ @state.setter
324
+ def state(self, value: Optional[pulumi.Input[str]]):
325
+ pulumi.set(self, "state", value)
326
+
327
+ @property
328
+ @pulumi.getter(name="updateTime")
329
+ def update_time(self) -> Optional[pulumi.Input[str]]:
330
+ """
331
+ Time the Posture was updated in UTC.
332
+ """
333
+ return pulumi.get(self, "update_time")
334
+
335
+ @update_time.setter
336
+ def update_time(self, value: Optional[pulumi.Input[str]]):
337
+ pulumi.set(self, "update_time", value)
338
+
339
+
340
+ class Posture(pulumi.CustomResource):
341
+ @overload
342
+ def __init__(__self__,
343
+ resource_name: str,
344
+ opts: Optional[pulumi.ResourceOptions] = None,
345
+ description: Optional[pulumi.Input[str]] = None,
346
+ location: Optional[pulumi.Input[str]] = None,
347
+ parent: Optional[pulumi.Input[str]] = None,
348
+ policy_sets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PosturePolicySetArgs']]]]] = None,
349
+ posture_id: Optional[pulumi.Input[str]] = None,
350
+ state: Optional[pulumi.Input[str]] = None,
351
+ __props__=None):
352
+ """
353
+ A Posture represents a collection of policy set including its name, state, description
354
+ and policy sets. A policy set includes set of policies along with their definition.
355
+ A posture can be created at the organization level.
356
+ Every update to a deployed posture creates a new posture revision with an updated revision_id.
357
+
358
+ To get more information about Posture, see:
359
+
360
+ * How-to Guides
361
+ * [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
362
+
363
+ ## Example Usage
364
+ ### Securityposture Posture Basic
365
+
366
+ ```python
367
+ import pulumi
368
+ import pulumi_gcp as gcp
369
+
370
+ posture1 = gcp.securityposture.Posture("posture1",
371
+ description="a new posture",
372
+ location="global",
373
+ parent="organizations/123456789",
374
+ policy_sets=[
375
+ gcp.securityposture.PosturePolicySetArgs(
376
+ description="set of org policies",
377
+ policies=[
378
+ gcp.securityposture.PosturePolicySetPolicyArgs(
379
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
380
+ org_policy_constraint=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintArgs(
381
+ canned_constraint_id="storage.uniformBucketLevelAccess",
382
+ policy_rules=[gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleArgs(
383
+ enforce=True,
384
+ )],
385
+ ),
386
+ ),
387
+ policy_id="canned_org_policy",
388
+ ),
389
+ gcp.securityposture.PosturePolicySetPolicyArgs(
390
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
391
+ org_policy_constraint_custom=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomArgs(
392
+ custom_constraint=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraintArgs(
393
+ action_type="ALLOW",
394
+ condition="resource.management.autoUpgrade == false",
395
+ description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
396
+ display_name="Disable GKE auto upgrade",
397
+ method_types=[
398
+ "CREATE",
399
+ "UPDATE",
400
+ ],
401
+ name="organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade",
402
+ resource_types=["container.googleapis.com/NodePool"],
403
+ ),
404
+ policy_rules=[gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleArgs(
405
+ enforce=True,
406
+ )],
407
+ ),
408
+ ),
409
+ policy_id="custom_org_policy",
410
+ ),
411
+ ],
412
+ policy_set_id="org_policy_set",
413
+ ),
414
+ gcp.securityposture.PosturePolicySetArgs(
415
+ description="set of sha policies",
416
+ policies=[
417
+ gcp.securityposture.PosturePolicySetPolicyArgs(
418
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
419
+ security_health_analytics_module=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModuleArgs(
420
+ module_enablement_state="ENABLED",
421
+ module_name="BIGQUERY_TABLE_CMEK_DISABLED",
422
+ ),
423
+ ),
424
+ description="enable BIGQUERY_TABLE_CMEK_DISABLED",
425
+ policy_id="sha_builtin_module",
426
+ ),
427
+ gcp.securityposture.PosturePolicySetPolicyArgs(
428
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
429
+ security_health_analytics_custom_module=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleArgs(
430
+ config=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigArgs(
431
+ custom_output=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputArgs(
432
+ properties=[gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyArgs(
433
+ name="duration",
434
+ value_expression=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpressionArgs(
435
+ expression="resource.rotationPeriod",
436
+ ),
437
+ )],
438
+ ),
439
+ description="Custom Module",
440
+ predicate=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicateArgs(
441
+ expression="resource.rotationPeriod > duration('2592000s')",
442
+ ),
443
+ recommendation="Testing custom modules",
444
+ resource_selector=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelectorArgs(
445
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
446
+ ),
447
+ severity="LOW",
448
+ ),
449
+ display_name="custom SHA policy",
450
+ module_enablement_state="ENABLED",
451
+ ),
452
+ ),
453
+ policy_id="sha_custom_module",
454
+ ),
455
+ ],
456
+ policy_set_id="sha_policy_set",
457
+ ),
458
+ ],
459
+ posture_id="posture_1",
460
+ state="ACTIVE")
461
+ ```
462
+
463
+ ## Import
464
+
465
+ Posture can be imported using any of these accepted formats* `{{parent}}/locations/{{location}}/postures/{{posture_id}}` When using the `pulumi import` command, Posture can be imported using one of the formats above. For example
466
+
467
+ ```sh
468
+ $ pulumi import gcp:securityposture/posture:Posture default {{parent}}/locations/{{location}}/postures/{{posture_id}}
469
+ ```
470
+
471
+ :param str resource_name: The name of the resource.
472
+ :param pulumi.ResourceOptions opts: Options for the resource.
473
+ :param pulumi.Input[str] description: Description of the posture.
474
+ :param pulumi.Input[str] location: Location of the resource, eg: global.
475
+ :param pulumi.Input[str] parent: The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
476
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PosturePolicySetArgs']]]] policy_sets: List of policy sets for the posture.
477
+ Structure is documented below.
478
+ :param pulumi.Input[str] posture_id: Id of the posture. It is an immutable field.
479
+
480
+
481
+ - - -
482
+ :param pulumi.Input[str] state: State of the posture. Update to state field should not be triggered along with
483
+ with other field updates.
484
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
485
+ """
486
+ ...
487
+ @overload
488
+ def __init__(__self__,
489
+ resource_name: str,
490
+ args: PostureArgs,
491
+ opts: Optional[pulumi.ResourceOptions] = None):
492
+ """
493
+ A Posture represents a collection of policy set including its name, state, description
494
+ and policy sets. A policy set includes set of policies along with their definition.
495
+ A posture can be created at the organization level.
496
+ Every update to a deployed posture creates a new posture revision with an updated revision_id.
497
+
498
+ To get more information about Posture, see:
499
+
500
+ * How-to Guides
501
+ * [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
502
+
503
+ ## Example Usage
504
+ ### Securityposture Posture Basic
505
+
506
+ ```python
507
+ import pulumi
508
+ import pulumi_gcp as gcp
509
+
510
+ posture1 = gcp.securityposture.Posture("posture1",
511
+ description="a new posture",
512
+ location="global",
513
+ parent="organizations/123456789",
514
+ policy_sets=[
515
+ gcp.securityposture.PosturePolicySetArgs(
516
+ description="set of org policies",
517
+ policies=[
518
+ gcp.securityposture.PosturePolicySetPolicyArgs(
519
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
520
+ org_policy_constraint=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintArgs(
521
+ canned_constraint_id="storage.uniformBucketLevelAccess",
522
+ policy_rules=[gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintPolicyRuleArgs(
523
+ enforce=True,
524
+ )],
525
+ ),
526
+ ),
527
+ policy_id="canned_org_policy",
528
+ ),
529
+ gcp.securityposture.PosturePolicySetPolicyArgs(
530
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
531
+ org_policy_constraint_custom=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomArgs(
532
+ custom_constraint=gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomCustomConstraintArgs(
533
+ action_type="ALLOW",
534
+ condition="resource.management.autoUpgrade == false",
535
+ description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
536
+ display_name="Disable GKE auto upgrade",
537
+ method_types=[
538
+ "CREATE",
539
+ "UPDATE",
540
+ ],
541
+ name="organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade",
542
+ resource_types=["container.googleapis.com/NodePool"],
543
+ ),
544
+ policy_rules=[gcp.securityposture.PosturePolicySetPolicyConstraintOrgPolicyConstraintCustomPolicyRuleArgs(
545
+ enforce=True,
546
+ )],
547
+ ),
548
+ ),
549
+ policy_id="custom_org_policy",
550
+ ),
551
+ ],
552
+ policy_set_id="org_policy_set",
553
+ ),
554
+ gcp.securityposture.PosturePolicySetArgs(
555
+ description="set of sha policies",
556
+ policies=[
557
+ gcp.securityposture.PosturePolicySetPolicyArgs(
558
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
559
+ security_health_analytics_module=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsModuleArgs(
560
+ module_enablement_state="ENABLED",
561
+ module_name="BIGQUERY_TABLE_CMEK_DISABLED",
562
+ ),
563
+ ),
564
+ description="enable BIGQUERY_TABLE_CMEK_DISABLED",
565
+ policy_id="sha_builtin_module",
566
+ ),
567
+ gcp.securityposture.PosturePolicySetPolicyArgs(
568
+ constraint=gcp.securityposture.PosturePolicySetPolicyConstraintArgs(
569
+ security_health_analytics_custom_module=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleArgs(
570
+ config=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigArgs(
571
+ custom_output=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputArgs(
572
+ properties=[gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyArgs(
573
+ name="duration",
574
+ value_expression=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigCustomOutputPropertyValueExpressionArgs(
575
+ expression="resource.rotationPeriod",
576
+ ),
577
+ )],
578
+ ),
579
+ description="Custom Module",
580
+ predicate=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigPredicateArgs(
581
+ expression="resource.rotationPeriod > duration('2592000s')",
582
+ ),
583
+ recommendation="Testing custom modules",
584
+ resource_selector=gcp.securityposture.PosturePolicySetPolicyConstraintSecurityHealthAnalyticsCustomModuleConfigResourceSelectorArgs(
585
+ resource_types=["cloudkms.googleapis.com/CryptoKey"],
586
+ ),
587
+ severity="LOW",
588
+ ),
589
+ display_name="custom SHA policy",
590
+ module_enablement_state="ENABLED",
591
+ ),
592
+ ),
593
+ policy_id="sha_custom_module",
594
+ ),
595
+ ],
596
+ policy_set_id="sha_policy_set",
597
+ ),
598
+ ],
599
+ posture_id="posture_1",
600
+ state="ACTIVE")
601
+ ```
602
+
603
+ ## Import
604
+
605
+ Posture can be imported using any of these accepted formats* `{{parent}}/locations/{{location}}/postures/{{posture_id}}` When using the `pulumi import` command, Posture can be imported using one of the formats above. For example
606
+
607
+ ```sh
608
+ $ pulumi import gcp:securityposture/posture:Posture default {{parent}}/locations/{{location}}/postures/{{posture_id}}
609
+ ```
610
+
611
+ :param str resource_name: The name of the resource.
612
+ :param PostureArgs args: The arguments to use to populate this resource's properties.
613
+ :param pulumi.ResourceOptions opts: Options for the resource.
614
+ """
615
+ ...
616
+ def __init__(__self__, resource_name: str, *args, **kwargs):
617
+ resource_args, opts = _utilities.get_resource_args_opts(PostureArgs, pulumi.ResourceOptions, *args, **kwargs)
618
+ if resource_args is not None:
619
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
620
+ else:
621
+ __self__._internal_init(resource_name, *args, **kwargs)
622
+
623
+ def _internal_init(__self__,
624
+ resource_name: str,
625
+ opts: Optional[pulumi.ResourceOptions] = None,
626
+ description: Optional[pulumi.Input[str]] = None,
627
+ location: Optional[pulumi.Input[str]] = None,
628
+ parent: Optional[pulumi.Input[str]] = None,
629
+ policy_sets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PosturePolicySetArgs']]]]] = None,
630
+ posture_id: Optional[pulumi.Input[str]] = None,
631
+ state: Optional[pulumi.Input[str]] = None,
632
+ __props__=None):
633
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
634
+ if not isinstance(opts, pulumi.ResourceOptions):
635
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
636
+ if opts.id is None:
637
+ if __props__ is not None:
638
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
639
+ __props__ = PostureArgs.__new__(PostureArgs)
640
+
641
+ __props__.__dict__["description"] = description
642
+ if location is None and not opts.urn:
643
+ raise TypeError("Missing required property 'location'")
644
+ __props__.__dict__["location"] = location
645
+ if parent is None and not opts.urn:
646
+ raise TypeError("Missing required property 'parent'")
647
+ __props__.__dict__["parent"] = parent
648
+ __props__.__dict__["policy_sets"] = policy_sets
649
+ if posture_id is None and not opts.urn:
650
+ raise TypeError("Missing required property 'posture_id'")
651
+ __props__.__dict__["posture_id"] = posture_id
652
+ if state is None and not opts.urn:
653
+ raise TypeError("Missing required property 'state'")
654
+ __props__.__dict__["state"] = state
655
+ __props__.__dict__["create_time"] = None
656
+ __props__.__dict__["etag"] = None
657
+ __props__.__dict__["name"] = None
658
+ __props__.__dict__["reconciling"] = None
659
+ __props__.__dict__["revision_id"] = None
660
+ __props__.__dict__["update_time"] = None
661
+ super(Posture, __self__).__init__(
662
+ 'gcp:securityposture/posture:Posture',
663
+ resource_name,
664
+ __props__,
665
+ opts)
666
+
667
+ @staticmethod
668
+ def get(resource_name: str,
669
+ id: pulumi.Input[str],
670
+ opts: Optional[pulumi.ResourceOptions] = None,
671
+ create_time: Optional[pulumi.Input[str]] = None,
672
+ description: Optional[pulumi.Input[str]] = None,
673
+ etag: Optional[pulumi.Input[str]] = None,
674
+ location: Optional[pulumi.Input[str]] = None,
675
+ name: Optional[pulumi.Input[str]] = None,
676
+ parent: Optional[pulumi.Input[str]] = None,
677
+ policy_sets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PosturePolicySetArgs']]]]] = None,
678
+ posture_id: Optional[pulumi.Input[str]] = None,
679
+ reconciling: Optional[pulumi.Input[bool]] = None,
680
+ revision_id: Optional[pulumi.Input[str]] = None,
681
+ state: Optional[pulumi.Input[str]] = None,
682
+ update_time: Optional[pulumi.Input[str]] = None) -> 'Posture':
683
+ """
684
+ Get an existing Posture resource's state with the given name, id, and optional extra
685
+ properties used to qualify the lookup.
686
+
687
+ :param str resource_name: The unique name of the resulting resource.
688
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
689
+ :param pulumi.ResourceOptions opts: Options for the resource.
690
+ :param pulumi.Input[str] create_time: Time the Posture was created in UTC.
691
+ :param pulumi.Input[str] description: Description of the posture.
692
+ :param pulumi.Input[str] etag: For Resource freshness validation (https://google.aip.dev/154)
693
+ :param pulumi.Input[str] location: Location of the resource, eg: global.
694
+ :param pulumi.Input[str] name: Immutable. The name of the custom constraint. This is unique within the organization.
695
+ :param pulumi.Input[str] parent: The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
696
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PosturePolicySetArgs']]]] policy_sets: List of policy sets for the posture.
697
+ Structure is documented below.
698
+ :param pulumi.Input[str] posture_id: Id of the posture. It is an immutable field.
699
+
700
+
701
+ - - -
702
+ :param pulumi.Input[bool] reconciling: If set, there are currently changes in flight to the posture.
703
+ :param pulumi.Input[str] revision_id: Revision_id of the posture.
704
+ :param pulumi.Input[str] state: State of the posture. Update to state field should not be triggered along with
705
+ with other field updates.
706
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
707
+ :param pulumi.Input[str] update_time: Time the Posture was updated in UTC.
708
+ """
709
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
710
+
711
+ __props__ = _PostureState.__new__(_PostureState)
712
+
713
+ __props__.__dict__["create_time"] = create_time
714
+ __props__.__dict__["description"] = description
715
+ __props__.__dict__["etag"] = etag
716
+ __props__.__dict__["location"] = location
717
+ __props__.__dict__["name"] = name
718
+ __props__.__dict__["parent"] = parent
719
+ __props__.__dict__["policy_sets"] = policy_sets
720
+ __props__.__dict__["posture_id"] = posture_id
721
+ __props__.__dict__["reconciling"] = reconciling
722
+ __props__.__dict__["revision_id"] = revision_id
723
+ __props__.__dict__["state"] = state
724
+ __props__.__dict__["update_time"] = update_time
725
+ return Posture(resource_name, opts=opts, __props__=__props__)
726
+
727
+ @property
728
+ @pulumi.getter(name="createTime")
729
+ def create_time(self) -> pulumi.Output[str]:
730
+ """
731
+ Time the Posture was created in UTC.
732
+ """
733
+ return pulumi.get(self, "create_time")
734
+
735
+ @property
736
+ @pulumi.getter
737
+ def description(self) -> pulumi.Output[Optional[str]]:
738
+ """
739
+ Description of the posture.
740
+ """
741
+ return pulumi.get(self, "description")
742
+
743
+ @property
744
+ @pulumi.getter
745
+ def etag(self) -> pulumi.Output[str]:
746
+ """
747
+ For Resource freshness validation (https://google.aip.dev/154)
748
+ """
749
+ return pulumi.get(self, "etag")
750
+
751
+ @property
752
+ @pulumi.getter
753
+ def location(self) -> pulumi.Output[str]:
754
+ """
755
+ Location of the resource, eg: global.
756
+ """
757
+ return pulumi.get(self, "location")
758
+
759
+ @property
760
+ @pulumi.getter
761
+ def name(self) -> pulumi.Output[str]:
762
+ """
763
+ Immutable. The name of the custom constraint. This is unique within the organization.
764
+ """
765
+ return pulumi.get(self, "name")
766
+
767
+ @property
768
+ @pulumi.getter
769
+ def parent(self) -> pulumi.Output[str]:
770
+ """
771
+ The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
772
+ """
773
+ return pulumi.get(self, "parent")
774
+
775
+ @property
776
+ @pulumi.getter(name="policySets")
777
+ def policy_sets(self) -> pulumi.Output[Optional[Sequence['outputs.PosturePolicySet']]]:
778
+ """
779
+ List of policy sets for the posture.
780
+ Structure is documented below.
781
+ """
782
+ return pulumi.get(self, "policy_sets")
783
+
784
+ @property
785
+ @pulumi.getter(name="postureId")
786
+ def posture_id(self) -> pulumi.Output[str]:
787
+ """
788
+ Id of the posture. It is an immutable field.
789
+
790
+
791
+ - - -
792
+ """
793
+ return pulumi.get(self, "posture_id")
794
+
795
+ @property
796
+ @pulumi.getter
797
+ def reconciling(self) -> pulumi.Output[bool]:
798
+ """
799
+ If set, there are currently changes in flight to the posture.
800
+ """
801
+ return pulumi.get(self, "reconciling")
802
+
803
+ @property
804
+ @pulumi.getter(name="revisionId")
805
+ def revision_id(self) -> pulumi.Output[str]:
806
+ """
807
+ Revision_id of the posture.
808
+ """
809
+ return pulumi.get(self, "revision_id")
810
+
811
+ @property
812
+ @pulumi.getter
813
+ def state(self) -> pulumi.Output[str]:
814
+ """
815
+ State of the posture. Update to state field should not be triggered along with
816
+ with other field updates.
817
+ Possible values are: `DEPRECATED`, `DRAFT`, `ACTIVE`.
818
+ """
819
+ return pulumi.get(self, "state")
820
+
821
+ @property
822
+ @pulumi.getter(name="updateTime")
823
+ def update_time(self) -> pulumi.Output[str]:
824
+ """
825
+ Time the Posture was updated in UTC.
826
+ """
827
+ return pulumi.get(self, "update_time")
828
+