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
@@ -101,6 +101,7 @@ __all__ = [
101
101
  'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout',
102
102
  'InstanceFromMachineImageSchedulingMaxRunDuration',
103
103
  'InstanceFromMachineImageSchedulingNodeAffinity',
104
+ 'InstanceFromMachineImageSchedulingOnInstanceStopAction',
104
105
  'InstanceFromMachineImageScratchDisk',
105
106
  'InstanceFromMachineImageServiceAccount',
106
107
  'InstanceFromMachineImageShieldedInstanceConfig',
@@ -122,6 +123,7 @@ __all__ = [
122
123
  'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout',
123
124
  'InstanceFromTemplateSchedulingMaxRunDuration',
124
125
  'InstanceFromTemplateSchedulingNodeAffinity',
126
+ 'InstanceFromTemplateSchedulingOnInstanceStopAction',
125
127
  'InstanceFromTemplateScratchDisk',
126
128
  'InstanceFromTemplateServiceAccount',
127
129
  'InstanceFromTemplateShieldedInstanceConfig',
@@ -157,6 +159,7 @@ __all__ = [
157
159
  'InstanceSchedulingLocalSsdRecoveryTimeout',
158
160
  'InstanceSchedulingMaxRunDuration',
159
161
  'InstanceSchedulingNodeAffinity',
162
+ 'InstanceSchedulingOnInstanceStopAction',
160
163
  'InstanceScratchDisk',
161
164
  'InstanceServiceAccount',
162
165
  'InstanceSettingsMetadata',
@@ -179,9 +182,14 @@ __all__ = [
179
182
  'InstanceTemplateSchedulingLocalSsdRecoveryTimeout',
180
183
  'InstanceTemplateSchedulingMaxRunDuration',
181
184
  'InstanceTemplateSchedulingNodeAffinity',
185
+ 'InstanceTemplateSchedulingOnInstanceStopAction',
182
186
  'InstanceTemplateServiceAccount',
183
187
  'InstanceTemplateShieldedInstanceConfig',
184
188
  'InterconnectAttachmentPrivateInterconnectInfo',
189
+ 'InterconnectCircuitInfo',
190
+ 'InterconnectExpectedOutage',
191
+ 'InterconnectMacsec',
192
+ 'InterconnectMacsecPreSharedKey',
185
193
  'MachineImageIamBindingCondition',
186
194
  'MachineImageIamMemberCondition',
187
195
  'MachineImageMachineImageEncryptionKey',
@@ -291,6 +299,7 @@ __all__ = [
291
299
  'RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout',
292
300
  'RegionInstanceTemplateSchedulingMaxRunDuration',
293
301
  'RegionInstanceTemplateSchedulingNodeAffinity',
302
+ 'RegionInstanceTemplateSchedulingOnInstanceStopAction',
294
303
  'RegionInstanceTemplateServiceAccount',
295
304
  'RegionInstanceTemplateShieldedInstanceConfig',
296
305
  'RegionNetworkEndpointGroupAppEngine',
@@ -310,6 +319,7 @@ __all__ = [
310
319
  'RegionSecurityPolicyDdosProtectionConfig',
311
320
  'RegionSecurityPolicyRuleMatch',
312
321
  'RegionSecurityPolicyRuleMatchConfig',
322
+ 'RegionSecurityPolicyRuleMatchExpr',
313
323
  'RegionSecurityPolicyRuleNetworkMatch',
314
324
  'RegionSecurityPolicyRuleNetworkMatchUserDefinedField',
315
325
  'RegionSecurityPolicyRulePreconfiguredWafConfig',
@@ -616,6 +626,7 @@ __all__ = [
616
626
  'GetInstanceSchedulingLocalSsdRecoveryTimeoutResult',
617
627
  'GetInstanceSchedulingMaxRunDurationResult',
618
628
  'GetInstanceSchedulingNodeAffinityResult',
629
+ 'GetInstanceSchedulingOnInstanceStopActionResult',
619
630
  'GetInstanceScratchDiskResult',
620
631
  'GetInstanceServiceAccountResult',
621
632
  'GetInstanceShieldedInstanceConfigResult',
@@ -637,6 +648,7 @@ __all__ = [
637
648
  'GetInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult',
638
649
  'GetInstanceTemplateSchedulingMaxRunDurationResult',
639
650
  'GetInstanceTemplateSchedulingNodeAffinityResult',
651
+ 'GetInstanceTemplateSchedulingOnInstanceStopActionResult',
640
652
  'GetInstanceTemplateServiceAccountResult',
641
653
  'GetInstanceTemplateShieldedInstanceConfigResult',
642
654
  'GetMachineTypesMachineTypeResult',
@@ -667,6 +679,7 @@ __all__ = [
667
679
  'GetRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult',
668
680
  'GetRegionInstanceTemplateSchedulingMaxRunDurationResult',
669
681
  'GetRegionInstanceTemplateSchedulingNodeAffinityResult',
682
+ 'GetRegionInstanceTemplateSchedulingOnInstanceStopActionResult',
670
683
  'GetRegionInstanceTemplateServiceAccountResult',
671
684
  'GetRegionInstanceTemplateShieldedInstanceConfigResult',
672
685
  'GetRegionNetworkEndpointGroupAppEngineResult',
@@ -703,6 +716,7 @@ __all__ = [
703
716
  'GetSnapshotSnapshotEncryptionKeyResult',
704
717
  'GetSnapshotSourceDiskEncryptionKeyResult',
705
718
  'GetSubnetworkSecondaryIpRangeResult',
719
+ 'GetSubnetworksSubnetworkResult',
706
720
  ]
707
721
 
708
722
  @pulumi.output_type
@@ -7511,6 +7525,8 @@ class InstanceFromMachineImageScheduling(dict):
7511
7525
  suggest = "node_affinities"
7512
7526
  elif key == "onHostMaintenance":
7513
7527
  suggest = "on_host_maintenance"
7528
+ elif key == "onInstanceStopAction":
7529
+ suggest = "on_instance_stop_action"
7514
7530
  elif key == "provisioningModel":
7515
7531
  suggest = "provisioning_model"
7516
7532
 
@@ -7534,6 +7550,7 @@ class InstanceFromMachineImageScheduling(dict):
7534
7550
  min_node_cpus: Optional[int] = None,
7535
7551
  node_affinities: Optional[Sequence['outputs.InstanceFromMachineImageSchedulingNodeAffinity']] = None,
7536
7552
  on_host_maintenance: Optional[str] = None,
7553
+ on_instance_stop_action: Optional['outputs.InstanceFromMachineImageSchedulingOnInstanceStopAction'] = None,
7537
7554
  preemptible: Optional[bool] = None,
7538
7555
  provisioning_model: Optional[str] = None):
7539
7556
  """
@@ -7547,6 +7564,7 @@ class InstanceFromMachineImageScheduling(dict):
7547
7564
  :param 'InstanceFromMachineImageSchedulingMaxRunDurationArgs' max_run_duration: The timeout for new network connections to hosts.
7548
7565
  :param Sequence['InstanceFromMachineImageSchedulingNodeAffinityArgs'] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
7549
7566
  :param str on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
7567
+ :param 'InstanceFromMachineImageSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
7550
7568
  :param bool preemptible: Whether the instance is preemptible.
7551
7569
  :param str provisioning_model: Whether the instance is spot. If this is set as SPOT.
7552
7570
  """
@@ -7566,6 +7584,8 @@ class InstanceFromMachineImageScheduling(dict):
7566
7584
  pulumi.set(__self__, "node_affinities", node_affinities)
7567
7585
  if on_host_maintenance is not None:
7568
7586
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
7587
+ if on_instance_stop_action is not None:
7588
+ pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
7569
7589
  if preemptible is not None:
7570
7590
  pulumi.set(__self__, "preemptible", preemptible)
7571
7591
  if provisioning_model is not None:
@@ -7635,6 +7655,14 @@ class InstanceFromMachineImageScheduling(dict):
7635
7655
  """
7636
7656
  return pulumi.get(self, "on_host_maintenance")
7637
7657
 
7658
+ @property
7659
+ @pulumi.getter(name="onInstanceStopAction")
7660
+ def on_instance_stop_action(self) -> Optional['outputs.InstanceFromMachineImageSchedulingOnInstanceStopAction']:
7661
+ """
7662
+ Defines the behaviour for instances with the instance_termination_action.
7663
+ """
7664
+ return pulumi.get(self, "on_instance_stop_action")
7665
+
7638
7666
  @property
7639
7667
  @pulumi.getter
7640
7668
  def preemptible(self) -> Optional[bool]:
@@ -7754,6 +7782,42 @@ class InstanceFromMachineImageSchedulingNodeAffinity(dict):
7754
7782
  return pulumi.get(self, "values")
7755
7783
 
7756
7784
 
7785
+ @pulumi.output_type
7786
+ class InstanceFromMachineImageSchedulingOnInstanceStopAction(dict):
7787
+ @staticmethod
7788
+ def __key_warning(key: str):
7789
+ suggest = None
7790
+ if key == "discardLocalSsd":
7791
+ suggest = "discard_local_ssd"
7792
+
7793
+ if suggest:
7794
+ pulumi.log.warn(f"Key '{key}' not found in InstanceFromMachineImageSchedulingOnInstanceStopAction. Access the value via the '{suggest}' property getter instead.")
7795
+
7796
+ def __getitem__(self, key: str) -> Any:
7797
+ InstanceFromMachineImageSchedulingOnInstanceStopAction.__key_warning(key)
7798
+ return super().__getitem__(key)
7799
+
7800
+ def get(self, key: str, default = None) -> Any:
7801
+ InstanceFromMachineImageSchedulingOnInstanceStopAction.__key_warning(key)
7802
+ return super().get(key, default)
7803
+
7804
+ def __init__(__self__, *,
7805
+ discard_local_ssd: Optional[bool] = None):
7806
+ """
7807
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
7808
+ """
7809
+ if discard_local_ssd is not None:
7810
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
7811
+
7812
+ @property
7813
+ @pulumi.getter(name="discardLocalSsd")
7814
+ def discard_local_ssd(self) -> Optional[bool]:
7815
+ """
7816
+ If true, the contents of any attached Local SSD disks will be discarded.
7817
+ """
7818
+ return pulumi.get(self, "discard_local_ssd")
7819
+
7820
+
7757
7821
  @pulumi.output_type
7758
7822
  class InstanceFromMachineImageScratchDisk(dict):
7759
7823
  @staticmethod
@@ -9053,6 +9117,8 @@ class InstanceFromTemplateScheduling(dict):
9053
9117
  suggest = "node_affinities"
9054
9118
  elif key == "onHostMaintenance":
9055
9119
  suggest = "on_host_maintenance"
9120
+ elif key == "onInstanceStopAction":
9121
+ suggest = "on_instance_stop_action"
9056
9122
  elif key == "provisioningModel":
9057
9123
  suggest = "provisioning_model"
9058
9124
 
@@ -9076,6 +9142,7 @@ class InstanceFromTemplateScheduling(dict):
9076
9142
  min_node_cpus: Optional[int] = None,
9077
9143
  node_affinities: Optional[Sequence['outputs.InstanceFromTemplateSchedulingNodeAffinity']] = None,
9078
9144
  on_host_maintenance: Optional[str] = None,
9145
+ on_instance_stop_action: Optional['outputs.InstanceFromTemplateSchedulingOnInstanceStopAction'] = None,
9079
9146
  preemptible: Optional[bool] = None,
9080
9147
  provisioning_model: Optional[str] = None):
9081
9148
  """
@@ -9089,6 +9156,7 @@ class InstanceFromTemplateScheduling(dict):
9089
9156
  :param 'InstanceFromTemplateSchedulingMaxRunDurationArgs' max_run_duration: The timeout for new network connections to hosts.
9090
9157
  :param Sequence['InstanceFromTemplateSchedulingNodeAffinityArgs'] node_affinities: Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.
9091
9158
  :param str on_host_maintenance: Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,
9159
+ :param 'InstanceFromTemplateSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
9092
9160
  :param bool preemptible: Whether the instance is preemptible.
9093
9161
  :param str provisioning_model: Whether the instance is spot. If this is set as SPOT.
9094
9162
  """
@@ -9108,6 +9176,8 @@ class InstanceFromTemplateScheduling(dict):
9108
9176
  pulumi.set(__self__, "node_affinities", node_affinities)
9109
9177
  if on_host_maintenance is not None:
9110
9178
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
9179
+ if on_instance_stop_action is not None:
9180
+ pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
9111
9181
  if preemptible is not None:
9112
9182
  pulumi.set(__self__, "preemptible", preemptible)
9113
9183
  if provisioning_model is not None:
@@ -9177,6 +9247,14 @@ class InstanceFromTemplateScheduling(dict):
9177
9247
  """
9178
9248
  return pulumi.get(self, "on_host_maintenance")
9179
9249
 
9250
+ @property
9251
+ @pulumi.getter(name="onInstanceStopAction")
9252
+ def on_instance_stop_action(self) -> Optional['outputs.InstanceFromTemplateSchedulingOnInstanceStopAction']:
9253
+ """
9254
+ Defines the behaviour for instances with the instance_termination_action.
9255
+ """
9256
+ return pulumi.get(self, "on_instance_stop_action")
9257
+
9180
9258
  @property
9181
9259
  @pulumi.getter
9182
9260
  def preemptible(self) -> Optional[bool]:
@@ -9296,6 +9374,42 @@ class InstanceFromTemplateSchedulingNodeAffinity(dict):
9296
9374
  return pulumi.get(self, "values")
9297
9375
 
9298
9376
 
9377
+ @pulumi.output_type
9378
+ class InstanceFromTemplateSchedulingOnInstanceStopAction(dict):
9379
+ @staticmethod
9380
+ def __key_warning(key: str):
9381
+ suggest = None
9382
+ if key == "discardLocalSsd":
9383
+ suggest = "discard_local_ssd"
9384
+
9385
+ if suggest:
9386
+ pulumi.log.warn(f"Key '{key}' not found in InstanceFromTemplateSchedulingOnInstanceStopAction. Access the value via the '{suggest}' property getter instead.")
9387
+
9388
+ def __getitem__(self, key: str) -> Any:
9389
+ InstanceFromTemplateSchedulingOnInstanceStopAction.__key_warning(key)
9390
+ return super().__getitem__(key)
9391
+
9392
+ def get(self, key: str, default = None) -> Any:
9393
+ InstanceFromTemplateSchedulingOnInstanceStopAction.__key_warning(key)
9394
+ return super().get(key, default)
9395
+
9396
+ def __init__(__self__, *,
9397
+ discard_local_ssd: Optional[bool] = None):
9398
+ """
9399
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
9400
+ """
9401
+ if discard_local_ssd is not None:
9402
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
9403
+
9404
+ @property
9405
+ @pulumi.getter(name="discardLocalSsd")
9406
+ def discard_local_ssd(self) -> Optional[bool]:
9407
+ """
9408
+ If true, the contents of any attached Local SSD disks will be discarded.
9409
+ """
9410
+ return pulumi.get(self, "discard_local_ssd")
9411
+
9412
+
9299
9413
  @pulumi.output_type
9300
9414
  class InstanceFromTemplateScratchDisk(dict):
9301
9415
  @staticmethod
@@ -11152,6 +11266,8 @@ class InstanceScheduling(dict):
11152
11266
  suggest = "node_affinities"
11153
11267
  elif key == "onHostMaintenance":
11154
11268
  suggest = "on_host_maintenance"
11269
+ elif key == "onInstanceStopAction":
11270
+ suggest = "on_instance_stop_action"
11155
11271
  elif key == "provisioningModel":
11156
11272
  suggest = "provisioning_model"
11157
11273
 
@@ -11175,6 +11291,7 @@ class InstanceScheduling(dict):
11175
11291
  min_node_cpus: Optional[int] = None,
11176
11292
  node_affinities: Optional[Sequence['outputs.InstanceSchedulingNodeAffinity']] = None,
11177
11293
  on_host_maintenance: Optional[str] = None,
11294
+ on_instance_stop_action: Optional['outputs.InstanceSchedulingOnInstanceStopAction'] = None,
11178
11295
  preemptible: Optional[bool] = None,
11179
11296
  provisioning_model: Optional[str] = None):
11180
11297
  """
@@ -11187,8 +11304,7 @@ class InstanceScheduling(dict):
11187
11304
  between 0 and 168 hours with hour granularity and the default value being 1
11188
11305
  hour.
11189
11306
  :param str maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
11190
- :param 'InstanceSchedulingMaxRunDurationArgs' max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
11191
- <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
11307
+ :param 'InstanceSchedulingMaxRunDurationArgs' max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
11192
11308
  :param int min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
11193
11309
  :param Sequence['InstanceSchedulingNodeAffinityArgs'] node_affinities: Specifies node affinities or anti-affinities
11194
11310
  to determine which sole-tenant nodes your instances and managed instance
@@ -11198,6 +11314,7 @@ class InstanceScheduling(dict):
11198
11314
  :param str on_host_maintenance: Describes maintenance behavior for the
11199
11315
  instance. Can be MIGRATE or TERMINATE, for more info, read
11200
11316
  [here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options).
11317
+ :param 'InstanceSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
11201
11318
  :param bool preemptible: Specifies if the instance is preemptible.
11202
11319
  If this field is set to true, then `automatic_restart` must be
11203
11320
  set to false. Defaults to false.
@@ -11222,6 +11339,8 @@ class InstanceScheduling(dict):
11222
11339
  pulumi.set(__self__, "node_affinities", node_affinities)
11223
11340
  if on_host_maintenance is not None:
11224
11341
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
11342
+ if on_instance_stop_action is not None:
11343
+ pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
11225
11344
  if preemptible is not None:
11226
11345
  pulumi.set(__self__, "preemptible", preemptible)
11227
11346
  if provisioning_model is not None:
@@ -11268,8 +11387,7 @@ class InstanceScheduling(dict):
11268
11387
  @pulumi.getter(name="maxRunDuration")
11269
11388
  def max_run_duration(self) -> Optional['outputs.InstanceSchedulingMaxRunDuration']:
11270
11389
  """
11271
- The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
11272
- <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
11390
+ The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
11273
11391
  """
11274
11392
  return pulumi.get(self, "max_run_duration")
11275
11393
 
@@ -11303,6 +11421,14 @@ class InstanceScheduling(dict):
11303
11421
  """
11304
11422
  return pulumi.get(self, "on_host_maintenance")
11305
11423
 
11424
+ @property
11425
+ @pulumi.getter(name="onInstanceStopAction")
11426
+ def on_instance_stop_action(self) -> Optional['outputs.InstanceSchedulingOnInstanceStopAction']:
11427
+ """
11428
+ Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
11429
+ """
11430
+ return pulumi.get(self, "on_instance_stop_action")
11431
+
11306
11432
  @property
11307
11433
  @pulumi.getter
11308
11434
  def preemptible(self) -> Optional[bool]:
@@ -11369,12 +11495,13 @@ class InstanceSchedulingMaxRunDuration(dict):
11369
11495
  seconds: int,
11370
11496
  nanos: Optional[int] = None):
11371
11497
  """
11372
- :param int seconds: Span of time at a resolution of a second.
11373
- Must be from 0 to 315,576,000,000 inclusive.
11498
+ :param int seconds: Span of time at a resolution of a second. Must be from 0 to
11499
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
11500
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
11374
11501
  :param int nanos: Span of time that's a fraction of a second at nanosecond
11375
- resolution. Durations less than one second are represented
11376
- with a 0 seconds field and a positive nanos field. Must
11377
- be from 0 to 999,999,999 inclusive.
11502
+ resolution. Durations less than one second are represented with a 0
11503
+ `seconds` field and a positive `nanos` field. Must be from 0 to
11504
+ 999,999,999 inclusive.
11378
11505
  """
11379
11506
  pulumi.set(__self__, "seconds", seconds)
11380
11507
  if nanos is not None:
@@ -11384,8 +11511,9 @@ class InstanceSchedulingMaxRunDuration(dict):
11384
11511
  @pulumi.getter
11385
11512
  def seconds(self) -> int:
11386
11513
  """
11387
- Span of time at a resolution of a second.
11388
- Must be from 0 to 315,576,000,000 inclusive.
11514
+ Span of time at a resolution of a second. Must be from 0 to
11515
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
11516
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
11389
11517
  """
11390
11518
  return pulumi.get(self, "seconds")
11391
11519
 
@@ -11394,9 +11522,9 @@ class InstanceSchedulingMaxRunDuration(dict):
11394
11522
  def nanos(self) -> Optional[int]:
11395
11523
  """
11396
11524
  Span of time that's a fraction of a second at nanosecond
11397
- resolution. Durations less than one second are represented
11398
- with a 0 seconds field and a positive nanos field. Must
11399
- be from 0 to 999,999,999 inclusive.
11525
+ resolution. Durations less than one second are represented with a 0
11526
+ `seconds` field and a positive `nanos` field. Must be from 0 to
11527
+ 999,999,999 inclusive.
11400
11528
  """
11401
11529
  return pulumi.get(self, "nanos")
11402
11530
 
@@ -11443,6 +11571,42 @@ class InstanceSchedulingNodeAffinity(dict):
11443
11571
  return pulumi.get(self, "values")
11444
11572
 
11445
11573
 
11574
+ @pulumi.output_type
11575
+ class InstanceSchedulingOnInstanceStopAction(dict):
11576
+ @staticmethod
11577
+ def __key_warning(key: str):
11578
+ suggest = None
11579
+ if key == "discardLocalSsd":
11580
+ suggest = "discard_local_ssd"
11581
+
11582
+ if suggest:
11583
+ pulumi.log.warn(f"Key '{key}' not found in InstanceSchedulingOnInstanceStopAction. Access the value via the '{suggest}' property getter instead.")
11584
+
11585
+ def __getitem__(self, key: str) -> Any:
11586
+ InstanceSchedulingOnInstanceStopAction.__key_warning(key)
11587
+ return super().__getitem__(key)
11588
+
11589
+ def get(self, key: str, default = None) -> Any:
11590
+ InstanceSchedulingOnInstanceStopAction.__key_warning(key)
11591
+ return super().get(key, default)
11592
+
11593
+ def __init__(__self__, *,
11594
+ discard_local_ssd: Optional[bool] = None):
11595
+ """
11596
+ :param bool discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
11597
+ """
11598
+ if discard_local_ssd is not None:
11599
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
11600
+
11601
+ @property
11602
+ @pulumi.getter(name="discardLocalSsd")
11603
+ def discard_local_ssd(self) -> Optional[bool]:
11604
+ """
11605
+ Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
11606
+ """
11607
+ return pulumi.get(self, "discard_local_ssd")
11608
+
11609
+
11446
11610
  @pulumi.output_type
11447
11611
  class InstanceScratchDisk(dict):
11448
11612
  @staticmethod
@@ -12891,6 +13055,8 @@ class InstanceTemplateScheduling(dict):
12891
13055
  suggest = "node_affinities"
12892
13056
  elif key == "onHostMaintenance":
12893
13057
  suggest = "on_host_maintenance"
13058
+ elif key == "onInstanceStopAction":
13059
+ suggest = "on_instance_stop_action"
12894
13060
  elif key == "provisioningModel":
12895
13061
  suggest = "provisioning_model"
12896
13062
 
@@ -12914,6 +13080,7 @@ class InstanceTemplateScheduling(dict):
12914
13080
  min_node_cpus: Optional[int] = None,
12915
13081
  node_affinities: Optional[Sequence['outputs.InstanceTemplateSchedulingNodeAffinity']] = None,
12916
13082
  on_host_maintenance: Optional[str] = None,
13083
+ on_instance_stop_action: Optional['outputs.InstanceTemplateSchedulingOnInstanceStopAction'] = None,
12917
13084
  preemptible: Optional[bool] = None,
12918
13085
  provisioning_model: Optional[str] = None):
12919
13086
  """
@@ -12926,8 +13093,7 @@ class InstanceTemplateScheduling(dict):
12926
13093
  between 0 and 168 hours with hour granularity and the default value being 1
12927
13094
  hour.
12928
13095
  :param str maintenance_interval: Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.
12929
- :param 'InstanceTemplateSchedulingMaxRunDurationArgs' max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
12930
- <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
13096
+ :param 'InstanceTemplateSchedulingMaxRunDurationArgs' max_run_duration: The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
12931
13097
  :param int min_node_cpus: Minimum number of cpus for the instance.
12932
13098
  :param Sequence['InstanceTemplateSchedulingNodeAffinityArgs'] node_affinities: Specifies node affinities or anti-affinities
12933
13099
  to determine which sole-tenant nodes your instances and managed instance
@@ -12936,6 +13102,7 @@ class InstanceTemplateScheduling(dict):
12936
13102
  Structure documented below.
12937
13103
  :param str on_host_maintenance: Defines the maintenance behavior for this
12938
13104
  instance.
13105
+ :param 'InstanceTemplateSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
12939
13106
  :param bool preemptible: Allows instance to be preempted. This defaults to
12940
13107
  false. Read more on this
12941
13108
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -12960,6 +13127,8 @@ class InstanceTemplateScheduling(dict):
12960
13127
  pulumi.set(__self__, "node_affinities", node_affinities)
12961
13128
  if on_host_maintenance is not None:
12962
13129
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
13130
+ if on_instance_stop_action is not None:
13131
+ pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
12963
13132
  if preemptible is not None:
12964
13133
  pulumi.set(__self__, "preemptible", preemptible)
12965
13134
  if provisioning_model is not None:
@@ -13006,8 +13175,7 @@ class InstanceTemplateScheduling(dict):
13006
13175
  @pulumi.getter(name="maxRunDuration")
13007
13176
  def max_run_duration(self) -> Optional['outputs.InstanceTemplateSchedulingMaxRunDuration']:
13008
13177
  """
13009
- The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Only support `DELETE` `instance_termination_action` at this point. Structure is documented below.
13010
- <a name="nested_max_run_duration"></a>The `max_run_duration` block supports:
13178
+ The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.
13011
13179
  """
13012
13180
  return pulumi.get(self, "max_run_duration")
13013
13181
 
@@ -13040,6 +13208,14 @@ class InstanceTemplateScheduling(dict):
13040
13208
  """
13041
13209
  return pulumi.get(self, "on_host_maintenance")
13042
13210
 
13211
+ @property
13212
+ @pulumi.getter(name="onInstanceStopAction")
13213
+ def on_instance_stop_action(self) -> Optional['outputs.InstanceTemplateSchedulingOnInstanceStopAction']:
13214
+ """
13215
+ Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.
13216
+ """
13217
+ return pulumi.get(self, "on_instance_stop_action")
13218
+
13043
13219
  @property
13044
13220
  @pulumi.getter
13045
13221
  def preemptible(self) -> Optional[bool]:
@@ -13106,12 +13282,13 @@ class InstanceTemplateSchedulingMaxRunDuration(dict):
13106
13282
  seconds: int,
13107
13283
  nanos: Optional[int] = None):
13108
13284
  """
13109
- :param int seconds: Span of time at a resolution of a second.
13110
- Must be from 0 to 315,576,000,000 inclusive.
13285
+ :param int seconds: Span of time at a resolution of a second. Must be from 0 to
13286
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13287
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13111
13288
  :param int nanos: Span of time that's a fraction of a second at nanosecond
13112
- resolution. Durations less than one second are represented
13113
- with a 0 seconds field and a positive nanos field. Must
13114
- be from 0 to 999,999,999 inclusive.
13289
+ resolution. Durations less than one second are represented with a 0
13290
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13291
+ 999,999,999 inclusive.
13115
13292
  """
13116
13293
  pulumi.set(__self__, "seconds", seconds)
13117
13294
  if nanos is not None:
@@ -13121,8 +13298,9 @@ class InstanceTemplateSchedulingMaxRunDuration(dict):
13121
13298
  @pulumi.getter
13122
13299
  def seconds(self) -> int:
13123
13300
  """
13124
- Span of time at a resolution of a second.
13125
- Must be from 0 to 315,576,000,000 inclusive.
13301
+ Span of time at a resolution of a second. Must be from 0 to
13302
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13303
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13126
13304
  """
13127
13305
  return pulumi.get(self, "seconds")
13128
13306
 
@@ -13131,9 +13309,9 @@ class InstanceTemplateSchedulingMaxRunDuration(dict):
13131
13309
  def nanos(self) -> Optional[int]:
13132
13310
  """
13133
13311
  Span of time that's a fraction of a second at nanosecond
13134
- resolution. Durations less than one second are represented
13135
- with a 0 seconds field and a positive nanos field. Must
13136
- be from 0 to 999,999,999 inclusive.
13312
+ resolution. Durations less than one second are represented with a 0
13313
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13314
+ 999,999,999 inclusive.
13137
13315
  """
13138
13316
  return pulumi.get(self, "nanos")
13139
13317
 
@@ -13176,6 +13354,42 @@ class InstanceTemplateSchedulingNodeAffinity(dict):
13176
13354
  return pulumi.get(self, "values")
13177
13355
 
13178
13356
 
13357
+ @pulumi.output_type
13358
+ class InstanceTemplateSchedulingOnInstanceStopAction(dict):
13359
+ @staticmethod
13360
+ def __key_warning(key: str):
13361
+ suggest = None
13362
+ if key == "discardLocalSsd":
13363
+ suggest = "discard_local_ssd"
13364
+
13365
+ if suggest:
13366
+ pulumi.log.warn(f"Key '{key}' not found in InstanceTemplateSchedulingOnInstanceStopAction. Access the value via the '{suggest}' property getter instead.")
13367
+
13368
+ def __getitem__(self, key: str) -> Any:
13369
+ InstanceTemplateSchedulingOnInstanceStopAction.__key_warning(key)
13370
+ return super().__getitem__(key)
13371
+
13372
+ def get(self, key: str, default = None) -> Any:
13373
+ InstanceTemplateSchedulingOnInstanceStopAction.__key_warning(key)
13374
+ return super().get(key, default)
13375
+
13376
+ def __init__(__self__, *,
13377
+ discard_local_ssd: Optional[bool] = None):
13378
+ """
13379
+ :param bool discard_local_ssd: Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
13380
+ """
13381
+ if discard_local_ssd is not None:
13382
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
13383
+
13384
+ @property
13385
+ @pulumi.getter(name="discardLocalSsd")
13386
+ def discard_local_ssd(self) -> Optional[bool]:
13387
+ """
13388
+ Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.
13389
+ """
13390
+ return pulumi.get(self, "discard_local_ssd")
13391
+
13392
+
13179
13393
  @pulumi.output_type
13180
13394
  class InstanceTemplateServiceAccount(dict):
13181
13395
  def __init__(__self__, *,
@@ -13313,6 +13527,382 @@ class InterconnectAttachmentPrivateInterconnectInfo(dict):
13313
13527
  return pulumi.get(self, "tag8021q")
13314
13528
 
13315
13529
 
13530
+ @pulumi.output_type
13531
+ class InterconnectCircuitInfo(dict):
13532
+ @staticmethod
13533
+ def __key_warning(key: str):
13534
+ suggest = None
13535
+ if key == "customerDemarcId":
13536
+ suggest = "customer_demarc_id"
13537
+ elif key == "googleCircuitId":
13538
+ suggest = "google_circuit_id"
13539
+ elif key == "googleDemarcId":
13540
+ suggest = "google_demarc_id"
13541
+
13542
+ if suggest:
13543
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectCircuitInfo. Access the value via the '{suggest}' property getter instead.")
13544
+
13545
+ def __getitem__(self, key: str) -> Any:
13546
+ InterconnectCircuitInfo.__key_warning(key)
13547
+ return super().__getitem__(key)
13548
+
13549
+ def get(self, key: str, default = None) -> Any:
13550
+ InterconnectCircuitInfo.__key_warning(key)
13551
+ return super().get(key, default)
13552
+
13553
+ def __init__(__self__, *,
13554
+ customer_demarc_id: Optional[str] = None,
13555
+ google_circuit_id: Optional[str] = None,
13556
+ google_demarc_id: Optional[str] = None):
13557
+ """
13558
+ :param str customer_demarc_id: (Output)
13559
+ Customer-side demarc ID for this circuit.
13560
+ :param str google_circuit_id: (Output)
13561
+ Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
13562
+ :param str google_demarc_id: (Output)
13563
+ Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
13564
+ Google to the customer in the LOA.
13565
+ """
13566
+ if customer_demarc_id is not None:
13567
+ pulumi.set(__self__, "customer_demarc_id", customer_demarc_id)
13568
+ if google_circuit_id is not None:
13569
+ pulumi.set(__self__, "google_circuit_id", google_circuit_id)
13570
+ if google_demarc_id is not None:
13571
+ pulumi.set(__self__, "google_demarc_id", google_demarc_id)
13572
+
13573
+ @property
13574
+ @pulumi.getter(name="customerDemarcId")
13575
+ def customer_demarc_id(self) -> Optional[str]:
13576
+ """
13577
+ (Output)
13578
+ Customer-side demarc ID for this circuit.
13579
+ """
13580
+ return pulumi.get(self, "customer_demarc_id")
13581
+
13582
+ @property
13583
+ @pulumi.getter(name="googleCircuitId")
13584
+ def google_circuit_id(self) -> Optional[str]:
13585
+ """
13586
+ (Output)
13587
+ Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
13588
+ """
13589
+ return pulumi.get(self, "google_circuit_id")
13590
+
13591
+ @property
13592
+ @pulumi.getter(name="googleDemarcId")
13593
+ def google_demarc_id(self) -> Optional[str]:
13594
+ """
13595
+ (Output)
13596
+ Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by
13597
+ Google to the customer in the LOA.
13598
+ """
13599
+ return pulumi.get(self, "google_demarc_id")
13600
+
13601
+
13602
+ @pulumi.output_type
13603
+ class InterconnectExpectedOutage(dict):
13604
+ @staticmethod
13605
+ def __key_warning(key: str):
13606
+ suggest = None
13607
+ if key == "affectedCircuits":
13608
+ suggest = "affected_circuits"
13609
+ elif key == "endTime":
13610
+ suggest = "end_time"
13611
+ elif key == "issueType":
13612
+ suggest = "issue_type"
13613
+ elif key == "startTime":
13614
+ suggest = "start_time"
13615
+
13616
+ if suggest:
13617
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectExpectedOutage. Access the value via the '{suggest}' property getter instead.")
13618
+
13619
+ def __getitem__(self, key: str) -> Any:
13620
+ InterconnectExpectedOutage.__key_warning(key)
13621
+ return super().__getitem__(key)
13622
+
13623
+ def get(self, key: str, default = None) -> Any:
13624
+ InterconnectExpectedOutage.__key_warning(key)
13625
+ return super().get(key, default)
13626
+
13627
+ def __init__(__self__, *,
13628
+ affected_circuits: Optional[Sequence[str]] = None,
13629
+ description: Optional[str] = None,
13630
+ end_time: Optional[str] = None,
13631
+ issue_type: Optional[str] = None,
13632
+ name: Optional[str] = None,
13633
+ source: Optional[str] = None,
13634
+ start_time: Optional[str] = None,
13635
+ state: Optional[str] = None):
13636
+ """
13637
+ :param Sequence[str] affected_circuits: (Output)
13638
+ If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
13639
+ affected.
13640
+ :param str description: An optional description of this resource. Provide this property when you create the resource.
13641
+ :param str end_time: (Output)
13642
+ Scheduled end time for the outage (milliseconds since Unix epoch).
13643
+ :param str issue_type: (Output)
13644
+ Form this outage is expected to take. Note that the versions of this enum prefixed with
13645
+ "IT_" have been deprecated in favor of the unprefixed values. Can take one of the
13646
+ following values:
13647
+ - OUTAGE: The Interconnect may be completely out of service for some or all of the
13648
+ specified window.
13649
+ - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
13650
+ up, but with reduced bandwidth.
13651
+ :param str name: Name of the resource. Provided by the client when the resource is created. The name must be
13652
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
13653
+ long and match the regular expression `a-z?` which means the first
13654
+ character must be a lowercase letter, and all following characters must be a dash,
13655
+ lowercase letter, or digit, except the last character, which cannot be a dash.
13656
+ :param str source: (Output)
13657
+ The party that generated this notification. Note that the value of NSRC_GOOGLE has been
13658
+ deprecated in favor of GOOGLE. Can take the following value:
13659
+ - GOOGLE: this notification as generated by Google.
13660
+ :param str start_time: (Output)
13661
+ Scheduled start time for the outage (milliseconds since Unix epoch).
13662
+ :param str state: (Output)
13663
+ State of this notification. Note that the versions of this enum prefixed with "NS_" have
13664
+ been deprecated in favor of the unprefixed values. Can take one of the following values:
13665
+ - ACTIVE: This outage notification is active. The event could be in the past, present,
13666
+ or future. See startTime and endTime for scheduling.
13667
+ - CANCELLED: The outage associated with this notification was cancelled before the
13668
+ outage was due to start.
13669
+ - COMPLETED: The outage associated with this notification is complete.
13670
+ """
13671
+ if affected_circuits is not None:
13672
+ pulumi.set(__self__, "affected_circuits", affected_circuits)
13673
+ if description is not None:
13674
+ pulumi.set(__self__, "description", description)
13675
+ if end_time is not None:
13676
+ pulumi.set(__self__, "end_time", end_time)
13677
+ if issue_type is not None:
13678
+ pulumi.set(__self__, "issue_type", issue_type)
13679
+ if name is not None:
13680
+ pulumi.set(__self__, "name", name)
13681
+ if source is not None:
13682
+ pulumi.set(__self__, "source", source)
13683
+ if start_time is not None:
13684
+ pulumi.set(__self__, "start_time", start_time)
13685
+ if state is not None:
13686
+ pulumi.set(__self__, "state", state)
13687
+
13688
+ @property
13689
+ @pulumi.getter(name="affectedCircuits")
13690
+ def affected_circuits(self) -> Optional[Sequence[str]]:
13691
+ """
13692
+ (Output)
13693
+ If issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be
13694
+ affected.
13695
+ """
13696
+ return pulumi.get(self, "affected_circuits")
13697
+
13698
+ @property
13699
+ @pulumi.getter
13700
+ def description(self) -> Optional[str]:
13701
+ """
13702
+ An optional description of this resource. Provide this property when you create the resource.
13703
+ """
13704
+ return pulumi.get(self, "description")
13705
+
13706
+ @property
13707
+ @pulumi.getter(name="endTime")
13708
+ def end_time(self) -> Optional[str]:
13709
+ """
13710
+ (Output)
13711
+ Scheduled end time for the outage (milliseconds since Unix epoch).
13712
+ """
13713
+ return pulumi.get(self, "end_time")
13714
+
13715
+ @property
13716
+ @pulumi.getter(name="issueType")
13717
+ def issue_type(self) -> Optional[str]:
13718
+ """
13719
+ (Output)
13720
+ Form this outage is expected to take. Note that the versions of this enum prefixed with
13721
+ "IT_" have been deprecated in favor of the unprefixed values. Can take one of the
13722
+ following values:
13723
+ - OUTAGE: The Interconnect may be completely out of service for some or all of the
13724
+ specified window.
13725
+ - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain
13726
+ up, but with reduced bandwidth.
13727
+ """
13728
+ return pulumi.get(self, "issue_type")
13729
+
13730
+ @property
13731
+ @pulumi.getter
13732
+ def name(self) -> Optional[str]:
13733
+ """
13734
+ Name of the resource. Provided by the client when the resource is created. The name must be
13735
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
13736
+ long and match the regular expression `a-z?` which means the first
13737
+ character must be a lowercase letter, and all following characters must be a dash,
13738
+ lowercase letter, or digit, except the last character, which cannot be a dash.
13739
+ """
13740
+ return pulumi.get(self, "name")
13741
+
13742
+ @property
13743
+ @pulumi.getter
13744
+ def source(self) -> Optional[str]:
13745
+ """
13746
+ (Output)
13747
+ The party that generated this notification. Note that the value of NSRC_GOOGLE has been
13748
+ deprecated in favor of GOOGLE. Can take the following value:
13749
+ - GOOGLE: this notification as generated by Google.
13750
+ """
13751
+ return pulumi.get(self, "source")
13752
+
13753
+ @property
13754
+ @pulumi.getter(name="startTime")
13755
+ def start_time(self) -> Optional[str]:
13756
+ """
13757
+ (Output)
13758
+ Scheduled start time for the outage (milliseconds since Unix epoch).
13759
+ """
13760
+ return pulumi.get(self, "start_time")
13761
+
13762
+ @property
13763
+ @pulumi.getter
13764
+ def state(self) -> Optional[str]:
13765
+ """
13766
+ (Output)
13767
+ State of this notification. Note that the versions of this enum prefixed with "NS_" have
13768
+ been deprecated in favor of the unprefixed values. Can take one of the following values:
13769
+ - ACTIVE: This outage notification is active. The event could be in the past, present,
13770
+ or future. See startTime and endTime for scheduling.
13771
+ - CANCELLED: The outage associated with this notification was cancelled before the
13772
+ outage was due to start.
13773
+ - COMPLETED: The outage associated with this notification is complete.
13774
+ """
13775
+ return pulumi.get(self, "state")
13776
+
13777
+
13778
+ @pulumi.output_type
13779
+ class InterconnectMacsec(dict):
13780
+ @staticmethod
13781
+ def __key_warning(key: str):
13782
+ suggest = None
13783
+ if key == "preSharedKeys":
13784
+ suggest = "pre_shared_keys"
13785
+
13786
+ if suggest:
13787
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectMacsec. Access the value via the '{suggest}' property getter instead.")
13788
+
13789
+ def __getitem__(self, key: str) -> Any:
13790
+ InterconnectMacsec.__key_warning(key)
13791
+ return super().__getitem__(key)
13792
+
13793
+ def get(self, key: str, default = None) -> Any:
13794
+ InterconnectMacsec.__key_warning(key)
13795
+ return super().get(key, default)
13796
+
13797
+ def __init__(__self__, *,
13798
+ pre_shared_keys: Sequence['outputs.InterconnectMacsecPreSharedKey']):
13799
+ """
13800
+ :param Sequence['InterconnectMacsecPreSharedKeyArgs'] pre_shared_keys: A keychain placeholder describing a set of named key objects along with their
13801
+ start times. A MACsec CKN/CAK is generated for each key in the key chain.
13802
+ Google router automatically picks the key with the most recent startTime when establishing
13803
+ or re-establishing a MACsec secure link.
13804
+ Structure is documented below.
13805
+ """
13806
+ pulumi.set(__self__, "pre_shared_keys", pre_shared_keys)
13807
+
13808
+ @property
13809
+ @pulumi.getter(name="preSharedKeys")
13810
+ def pre_shared_keys(self) -> Sequence['outputs.InterconnectMacsecPreSharedKey']:
13811
+ """
13812
+ A keychain placeholder describing a set of named key objects along with their
13813
+ start times. A MACsec CKN/CAK is generated for each key in the key chain.
13814
+ Google router automatically picks the key with the most recent startTime when establishing
13815
+ or re-establishing a MACsec secure link.
13816
+ Structure is documented below.
13817
+ """
13818
+ return pulumi.get(self, "pre_shared_keys")
13819
+
13820
+
13821
+ @pulumi.output_type
13822
+ class InterconnectMacsecPreSharedKey(dict):
13823
+ @staticmethod
13824
+ def __key_warning(key: str):
13825
+ suggest = None
13826
+ if key == "failOpen":
13827
+ suggest = "fail_open"
13828
+ elif key == "startTime":
13829
+ suggest = "start_time"
13830
+
13831
+ if suggest:
13832
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectMacsecPreSharedKey. Access the value via the '{suggest}' property getter instead.")
13833
+
13834
+ def __getitem__(self, key: str) -> Any:
13835
+ InterconnectMacsecPreSharedKey.__key_warning(key)
13836
+ return super().__getitem__(key)
13837
+
13838
+ def get(self, key: str, default = None) -> Any:
13839
+ InterconnectMacsecPreSharedKey.__key_warning(key)
13840
+ return super().get(key, default)
13841
+
13842
+ def __init__(__self__, *,
13843
+ name: str,
13844
+ fail_open: Optional[bool] = None,
13845
+ start_time: Optional[str] = None):
13846
+ """
13847
+ :param str name: A name for this pre-shared key. The name must be 1-63 characters long, and
13848
+ comply with RFC1035. Specifically, the name must be 1-63 characters long and match
13849
+ the regular expression `a-z?` which means the first character
13850
+ must be a lowercase letter, and all following characters must be a dash, lowercase
13851
+ letter, or digit, except the last character, which cannot be a dash.
13852
+ :param bool fail_open: If set to true, the Interconnect connection is configured with a should-secure
13853
+ MACsec security policy, that allows the Google router to fallback to cleartext
13854
+ traffic if the MKA session cannot be established. By default, the Interconnect
13855
+ connection is configured with a must-secure security policy that drops all traffic
13856
+ if the MKA session cannot be established with your router.
13857
+ :param str start_time: A RFC3339 timestamp on or after which the key is valid. startTime can be in the
13858
+ future. If the keychain has a single key, startTime can be omitted. If the keychain
13859
+ has multiple keys, startTime is mandatory for each key. The start times of keys must
13860
+ be in increasing order. The start times of two consecutive keys must be at least 6
13861
+ hours apart.
13862
+ """
13863
+ pulumi.set(__self__, "name", name)
13864
+ if fail_open is not None:
13865
+ pulumi.set(__self__, "fail_open", fail_open)
13866
+ if start_time is not None:
13867
+ pulumi.set(__self__, "start_time", start_time)
13868
+
13869
+ @property
13870
+ @pulumi.getter
13871
+ def name(self) -> str:
13872
+ """
13873
+ A name for this pre-shared key. The name must be 1-63 characters long, and
13874
+ comply with RFC1035. Specifically, the name must be 1-63 characters long and match
13875
+ the regular expression `a-z?` which means the first character
13876
+ must be a lowercase letter, and all following characters must be a dash, lowercase
13877
+ letter, or digit, except the last character, which cannot be a dash.
13878
+ """
13879
+ return pulumi.get(self, "name")
13880
+
13881
+ @property
13882
+ @pulumi.getter(name="failOpen")
13883
+ def fail_open(self) -> Optional[bool]:
13884
+ """
13885
+ If set to true, the Interconnect connection is configured with a should-secure
13886
+ MACsec security policy, that allows the Google router to fallback to cleartext
13887
+ traffic if the MKA session cannot be established. By default, the Interconnect
13888
+ connection is configured with a must-secure security policy that drops all traffic
13889
+ if the MKA session cannot be established with your router.
13890
+ """
13891
+ return pulumi.get(self, "fail_open")
13892
+
13893
+ @property
13894
+ @pulumi.getter(name="startTime")
13895
+ def start_time(self) -> Optional[str]:
13896
+ """
13897
+ A RFC3339 timestamp on or after which the key is valid. startTime can be in the
13898
+ future. If the keychain has a single key, startTime can be omitted. If the keychain
13899
+ has multiple keys, startTime is mandatory for each key. The start times of keys must
13900
+ be in increasing order. The start times of two consecutive keys must be at least 6
13901
+ hours apart.
13902
+ """
13903
+ return pulumi.get(self, "start_time")
13904
+
13905
+
13316
13906
  @pulumi.output_type
13317
13907
  class MachineImageIamBindingCondition(dict):
13318
13908
  def __init__(__self__, *,
@@ -20856,6 +21446,8 @@ class RegionInstanceTemplateScheduling(dict):
20856
21446
  suggest = "node_affinities"
20857
21447
  elif key == "onHostMaintenance":
20858
21448
  suggest = "on_host_maintenance"
21449
+ elif key == "onInstanceStopAction":
21450
+ suggest = "on_instance_stop_action"
20859
21451
  elif key == "provisioningModel":
20860
21452
  suggest = "provisioning_model"
20861
21453
 
@@ -20879,6 +21471,7 @@ class RegionInstanceTemplateScheduling(dict):
20879
21471
  min_node_cpus: Optional[int] = None,
20880
21472
  node_affinities: Optional[Sequence['outputs.RegionInstanceTemplateSchedulingNodeAffinity']] = None,
20881
21473
  on_host_maintenance: Optional[str] = None,
21474
+ on_instance_stop_action: Optional['outputs.RegionInstanceTemplateSchedulingOnInstanceStopAction'] = None,
20882
21475
  preemptible: Optional[bool] = None,
20883
21476
  provisioning_model: Optional[str] = None):
20884
21477
  """
@@ -20900,6 +21493,7 @@ class RegionInstanceTemplateScheduling(dict):
20900
21493
  Structure documented below.
20901
21494
  :param str on_host_maintenance: Defines the maintenance behavior for this
20902
21495
  instance.
21496
+ :param 'RegionInstanceTemplateSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
20903
21497
  :param bool preemptible: Allows instance to be preempted. This defaults to
20904
21498
  false. Read more on this
20905
21499
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -20924,6 +21518,8 @@ class RegionInstanceTemplateScheduling(dict):
20924
21518
  pulumi.set(__self__, "node_affinities", node_affinities)
20925
21519
  if on_host_maintenance is not None:
20926
21520
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
21521
+ if on_instance_stop_action is not None:
21522
+ pulumi.set(__self__, "on_instance_stop_action", on_instance_stop_action)
20927
21523
  if preemptible is not None:
20928
21524
  pulumi.set(__self__, "preemptible", preemptible)
20929
21525
  if provisioning_model is not None:
@@ -21003,6 +21599,14 @@ class RegionInstanceTemplateScheduling(dict):
21003
21599
  """
21004
21600
  return pulumi.get(self, "on_host_maintenance")
21005
21601
 
21602
+ @property
21603
+ @pulumi.getter(name="onInstanceStopAction")
21604
+ def on_instance_stop_action(self) -> Optional['outputs.RegionInstanceTemplateSchedulingOnInstanceStopAction']:
21605
+ """
21606
+ Defines the behaviour for instances with the instance_termination_action.
21607
+ """
21608
+ return pulumi.get(self, "on_instance_stop_action")
21609
+
21006
21610
  @property
21007
21611
  @pulumi.getter
21008
21612
  def preemptible(self) -> Optional[bool]:
@@ -21141,6 +21745,42 @@ class RegionInstanceTemplateSchedulingNodeAffinity(dict):
21141
21745
  return pulumi.get(self, "values")
21142
21746
 
21143
21747
 
21748
+ @pulumi.output_type
21749
+ class RegionInstanceTemplateSchedulingOnInstanceStopAction(dict):
21750
+ @staticmethod
21751
+ def __key_warning(key: str):
21752
+ suggest = None
21753
+ if key == "discardLocalSsd":
21754
+ suggest = "discard_local_ssd"
21755
+
21756
+ if suggest:
21757
+ pulumi.log.warn(f"Key '{key}' not found in RegionInstanceTemplateSchedulingOnInstanceStopAction. Access the value via the '{suggest}' property getter instead.")
21758
+
21759
+ def __getitem__(self, key: str) -> Any:
21760
+ RegionInstanceTemplateSchedulingOnInstanceStopAction.__key_warning(key)
21761
+ return super().__getitem__(key)
21762
+
21763
+ def get(self, key: str, default = None) -> Any:
21764
+ RegionInstanceTemplateSchedulingOnInstanceStopAction.__key_warning(key)
21765
+ return super().get(key, default)
21766
+
21767
+ def __init__(__self__, *,
21768
+ discard_local_ssd: Optional[bool] = None):
21769
+ """
21770
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
21771
+ """
21772
+ if discard_local_ssd is not None:
21773
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
21774
+
21775
+ @property
21776
+ @pulumi.getter(name="discardLocalSsd")
21777
+ def discard_local_ssd(self) -> Optional[bool]:
21778
+ """
21779
+ If true, the contents of any attached Local SSD disks will be discarded.
21780
+ """
21781
+ return pulumi.get(self, "discard_local_ssd")
21782
+
21783
+
21144
21784
  @pulumi.output_type
21145
21785
  class RegionInstanceTemplateServiceAccount(dict):
21146
21786
  def __init__(__self__, *,
@@ -22274,17 +22914,22 @@ class RegionSecurityPolicyRuleMatch(dict):
22274
22914
 
22275
22915
  def __init__(__self__, *,
22276
22916
  config: Optional['outputs.RegionSecurityPolicyRuleMatchConfig'] = None,
22917
+ expr: Optional['outputs.RegionSecurityPolicyRuleMatchExpr'] = None,
22277
22918
  versioned_expr: Optional[str] = None):
22278
22919
  """
22279
22920
  :param 'RegionSecurityPolicyRuleMatchConfigArgs' config: The configuration options available when specifying versionedExpr.
22280
22921
  This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
22281
22922
  Structure is documented below.
22923
+ :param 'RegionSecurityPolicyRuleMatchExprArgs' expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
22924
+ Structure is documented below.
22282
22925
  :param str versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
22283
22926
  Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
22284
22927
  Possible values are: `SRC_IPS_V1`.
22285
22928
  """
22286
22929
  if config is not None:
22287
22930
  pulumi.set(__self__, "config", config)
22931
+ if expr is not None:
22932
+ pulumi.set(__self__, "expr", expr)
22288
22933
  if versioned_expr is not None:
22289
22934
  pulumi.set(__self__, "versioned_expr", versioned_expr)
22290
22935
 
@@ -22298,6 +22943,15 @@ class RegionSecurityPolicyRuleMatch(dict):
22298
22943
  """
22299
22944
  return pulumi.get(self, "config")
22300
22945
 
22946
+ @property
22947
+ @pulumi.getter
22948
+ def expr(self) -> Optional['outputs.RegionSecurityPolicyRuleMatchExpr']:
22949
+ """
22950
+ User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
22951
+ Structure is documented below.
22952
+ """
22953
+ return pulumi.get(self, "expr")
22954
+
22301
22955
  @property
22302
22956
  @pulumi.getter(name="versionedExpr")
22303
22957
  def versioned_expr(self) -> Optional[str]:
@@ -22345,6 +22999,24 @@ class RegionSecurityPolicyRuleMatchConfig(dict):
22345
22999
  return pulumi.get(self, "src_ip_ranges")
22346
23000
 
22347
23001
 
23002
+ @pulumi.output_type
23003
+ class RegionSecurityPolicyRuleMatchExpr(dict):
23004
+ def __init__(__self__, *,
23005
+ expression: str):
23006
+ """
23007
+ :param str expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
23008
+ """
23009
+ pulumi.set(__self__, "expression", expression)
23010
+
23011
+ @property
23012
+ @pulumi.getter
23013
+ def expression(self) -> str:
23014
+ """
23015
+ Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
23016
+ """
23017
+ return pulumi.get(self, "expression")
23018
+
23019
+
22348
23020
  @pulumi.output_type
22349
23021
  class RegionSecurityPolicyRuleNetworkMatch(dict):
22350
23022
  @staticmethod
@@ -30720,6 +31392,7 @@ class SecurityPolicyAdvancedOptionsConfig(dict):
30720
31392
  :param str json_parsing: Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30721
31393
  * `DISABLED` - Don't parse JSON payloads in POST bodies.
30722
31394
  * `STANDARD` - Parse JSON payloads in POST bodies.
31395
+ * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
30723
31396
  :param str log_level: Log level to use. Defaults to `NORMAL`.
30724
31397
  * `NORMAL` - Normal log level.
30725
31398
  * `VERBOSE` - Verbose log level.
@@ -30750,6 +31423,7 @@ class SecurityPolicyAdvancedOptionsConfig(dict):
30750
31423
  Whether or not to JSON parse the payload body. Defaults to `DISABLED`.
30751
31424
  * `DISABLED` - Don't parse JSON payloads in POST bodies.
30752
31425
  * `STANDARD` - Parse JSON payloads in POST bodies.
31426
+ * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.
30753
31427
  """
30754
31428
  return pulumi.get(self, "json_parsing")
30755
31429
 
@@ -31518,24 +32192,24 @@ class SecurityPolicyRuleRateLimitOptions(dict):
31518
32192
  @staticmethod
31519
32193
  def __key_warning(key: str):
31520
32194
  suggest = None
31521
- if key == "conformAction":
31522
- suggest = "conform_action"
31523
- elif key == "exceedAction":
31524
- suggest = "exceed_action"
31525
- elif key == "rateLimitThreshold":
31526
- suggest = "rate_limit_threshold"
31527
- elif key == "banDurationSec":
32195
+ if key == "banDurationSec":
31528
32196
  suggest = "ban_duration_sec"
31529
32197
  elif key == "banThreshold":
31530
32198
  suggest = "ban_threshold"
32199
+ elif key == "conformAction":
32200
+ suggest = "conform_action"
31531
32201
  elif key == "enforceOnKey":
31532
32202
  suggest = "enforce_on_key"
31533
32203
  elif key == "enforceOnKeyConfigs":
31534
32204
  suggest = "enforce_on_key_configs"
31535
32205
  elif key == "enforceOnKeyName":
31536
32206
  suggest = "enforce_on_key_name"
32207
+ elif key == "exceedAction":
32208
+ suggest = "exceed_action"
31537
32209
  elif key == "exceedRedirectOptions":
31538
32210
  suggest = "exceed_redirect_options"
32211
+ elif key == "rateLimitThreshold":
32212
+ suggest = "rate_limit_threshold"
31539
32213
 
31540
32214
  if suggest:
31541
32215
  pulumi.log.warn(f"Key '{key}' not found in SecurityPolicyRuleRateLimitOptions. Access the value via the '{suggest}' property getter instead.")
@@ -31549,90 +32223,73 @@ class SecurityPolicyRuleRateLimitOptions(dict):
31549
32223
  return super().get(key, default)
31550
32224
 
31551
32225
  def __init__(__self__, *,
31552
- conform_action: str,
31553
- exceed_action: str,
31554
- rate_limit_threshold: 'outputs.SecurityPolicyRuleRateLimitOptionsRateLimitThreshold',
31555
32226
  ban_duration_sec: Optional[int] = None,
31556
32227
  ban_threshold: Optional['outputs.SecurityPolicyRuleRateLimitOptionsBanThreshold'] = None,
32228
+ conform_action: Optional[str] = None,
31557
32229
  enforce_on_key: Optional[str] = None,
31558
32230
  enforce_on_key_configs: Optional[Sequence['outputs.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig']] = None,
31559
32231
  enforce_on_key_name: Optional[str] = None,
31560
- exceed_redirect_options: Optional['outputs.SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions'] = None):
32232
+ exceed_action: Optional[str] = None,
32233
+ exceed_redirect_options: Optional['outputs.SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions'] = None,
32234
+ rate_limit_threshold: Optional['outputs.SecurityPolicyRuleRateLimitOptionsRateLimitThreshold'] = None):
31561
32235
  """
31562
- :param str conform_action: Action to take for requests that are under the configured rate limit threshold. Valid option is `allow` only.
31563
- :param str exceed_action: When a request is denied, returns the HTTP response code specified.
31564
- Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
31565
- :param 'SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs' rate_limit_threshold: Threshold at which to begin ratelimiting. Structure is documented below.
31566
- :param int ban_duration_sec: Can only be specified if the `action` for the rule is `rate_based_ban`.
32236
+ :param int ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban".
31567
32237
  If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.
31568
- :param 'SecurityPolicyRuleRateLimitOptionsBanThresholdArgs' ban_threshold: Can only be specified if the `action` for the rule is `rate_based_ban`.
31569
- If specified, the key will be banned for the configured `ban_duration_sec` when the number of requests that exceed the `rate_limit_threshold` also
31570
- exceed this `ban_threshold`. Structure is documented below.
31571
- :param str enforce_on_key: Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31572
-
31573
- * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31574
- * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31575
- * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31576
- * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31577
- * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31578
- * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31579
- * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31580
- * `REGION_CODE`: The country/region from which the request originates.
31581
- :param Sequence['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs'] enforce_on_key_configs: If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which rate limit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If `enforce_on_key_configs` is specified, `enforce_on_key` must be set to an empty string. Structure is documented below.
31582
-
31583
- **Note:** To avoid the conflict between `enforce_on_key` and `enforce_on_key_configs`, the field `enforce_on_key` needs to be set to an empty string.
32238
+ :param 'SecurityPolicyRuleRateLimitOptionsBanThresholdArgs' ban_threshold: Can only be specified if the action for the rule is "rate_based_ban".
32239
+ If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
32240
+ Structure is documented below.
32241
+ :param str conform_action: Action to take for requests that are under the configured rate limit threshold.
32242
+ Valid option is "allow" only.
32243
+ :param str enforce_on_key: Determines the key to enforce the rateLimitThreshold on. Possible values are:
32244
+ * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured.
32245
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
32246
+ * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
32247
+ * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
32248
+ * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
32249
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
32250
+ * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
32251
+ * REGION_CODE: The country/region from which the request originates.
32252
+ * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
32253
+ * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
32254
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
32255
+ :param Sequence['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs'] enforce_on_key_configs: If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
32256
+ You can specify up to 3 enforceOnKeyConfigs.
32257
+ If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
32258
+ Structure is documented below.
31584
32259
  :param str enforce_on_key_name: Rate limit key name applicable only for the following key types:
31585
-
31586
- * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31587
- * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31588
- :param 'SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs' exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
32260
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
32261
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
32262
+ :param str exceed_action: Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint.
32263
+ Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
32264
+ :param 'SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs' exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.
32265
+ Structure is documented below.
32266
+ :param 'SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs' rate_limit_threshold: Threshold at which to begin ratelimiting.
32267
+ Structure is documented below.
31589
32268
  """
31590
- pulumi.set(__self__, "conform_action", conform_action)
31591
- pulumi.set(__self__, "exceed_action", exceed_action)
31592
- pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
31593
32269
  if ban_duration_sec is not None:
31594
32270
  pulumi.set(__self__, "ban_duration_sec", ban_duration_sec)
31595
32271
  if ban_threshold is not None:
31596
32272
  pulumi.set(__self__, "ban_threshold", ban_threshold)
32273
+ if conform_action is not None:
32274
+ pulumi.set(__self__, "conform_action", conform_action)
31597
32275
  if enforce_on_key is not None:
31598
32276
  pulumi.set(__self__, "enforce_on_key", enforce_on_key)
31599
32277
  if enforce_on_key_configs is not None:
31600
32278
  pulumi.set(__self__, "enforce_on_key_configs", enforce_on_key_configs)
31601
32279
  if enforce_on_key_name is not None:
31602
32280
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
32281
+ if exceed_action is not None:
32282
+ pulumi.set(__self__, "exceed_action", exceed_action)
31603
32283
  if exceed_redirect_options is not None:
31604
32284
  pulumi.set(__self__, "exceed_redirect_options", exceed_redirect_options)
31605
-
31606
- @property
31607
- @pulumi.getter(name="conformAction")
31608
- def conform_action(self) -> str:
31609
- """
31610
- Action to take for requests that are under the configured rate limit threshold. Valid option is `allow` only.
31611
- """
31612
- return pulumi.get(self, "conform_action")
31613
-
31614
- @property
31615
- @pulumi.getter(name="exceedAction")
31616
- def exceed_action(self) -> str:
31617
- """
31618
- When a request is denied, returns the HTTP response code specified.
31619
- Valid options are `deny()` where valid values for status are 403, 404, 429, and 502.
31620
- """
31621
- return pulumi.get(self, "exceed_action")
31622
-
31623
- @property
31624
- @pulumi.getter(name="rateLimitThreshold")
31625
- def rate_limit_threshold(self) -> 'outputs.SecurityPolicyRuleRateLimitOptionsRateLimitThreshold':
31626
- """
31627
- Threshold at which to begin ratelimiting. Structure is documented below.
31628
- """
31629
- return pulumi.get(self, "rate_limit_threshold")
32285
+ if rate_limit_threshold is not None:
32286
+ pulumi.set(__self__, "rate_limit_threshold", rate_limit_threshold)
31630
32287
 
31631
32288
  @property
31632
32289
  @pulumi.getter(name="banDurationSec")
31633
32290
  def ban_duration_sec(self) -> Optional[int]:
31634
32291
  """
31635
- Can only be specified if the `action` for the rule is `rate_based_ban`.
32292
+ Can only be specified if the action for the rule is "rate_based_ban".
31636
32293
  If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.
31637
32294
  """
31638
32295
  return pulumi.get(self, "ban_duration_sec")
@@ -31641,26 +32298,37 @@ class SecurityPolicyRuleRateLimitOptions(dict):
31641
32298
  @pulumi.getter(name="banThreshold")
31642
32299
  def ban_threshold(self) -> Optional['outputs.SecurityPolicyRuleRateLimitOptionsBanThreshold']:
31643
32300
  """
31644
- Can only be specified if the `action` for the rule is `rate_based_ban`.
31645
- If specified, the key will be banned for the configured `ban_duration_sec` when the number of requests that exceed the `rate_limit_threshold` also
31646
- exceed this `ban_threshold`. Structure is documented below.
32301
+ Can only be specified if the action for the rule is "rate_based_ban".
32302
+ If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.
32303
+ Structure is documented below.
31647
32304
  """
31648
32305
  return pulumi.get(self, "ban_threshold")
31649
32306
 
32307
+ @property
32308
+ @pulumi.getter(name="conformAction")
32309
+ def conform_action(self) -> Optional[str]:
32310
+ """
32311
+ Action to take for requests that are under the configured rate limit threshold.
32312
+ Valid option is "allow" only.
32313
+ """
32314
+ return pulumi.get(self, "conform_action")
32315
+
31650
32316
  @property
31651
32317
  @pulumi.getter(name="enforceOnKey")
31652
32318
  def enforce_on_key(self) -> Optional[str]:
31653
32319
  """
31654
- Determines the key to enforce the rate_limit_threshold on. If not specified, defaults to `ALL`.
31655
-
31656
- * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31657
- * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31658
- * `HTTP_HEADER`: The value of the HTTP header whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31659
- * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under `X-Forwarded-For` HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31660
- * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31661
- * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31662
- * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31663
- * `REGION_CODE`: The country/region from which the request originates.
32320
+ Determines the key to enforce the rateLimitThreshold on. Possible values are:
32321
+ * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured.
32322
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
32323
+ * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
32324
+ * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
32325
+ * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
32326
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
32327
+ * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
32328
+ * REGION_CODE: The country/region from which the request originates.
32329
+ * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
32330
+ * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
32331
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31664
32332
  """
31665
32333
  return pulumi.get(self, "enforce_on_key")
31666
32334
 
@@ -31668,9 +32336,10 @@ class SecurityPolicyRuleRateLimitOptions(dict):
31668
32336
  @pulumi.getter(name="enforceOnKeyConfigs")
31669
32337
  def enforce_on_key_configs(self) -> Optional[Sequence['outputs.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig']]:
31670
32338
  """
31671
- If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which rate limit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If `enforce_on_key_configs` is specified, `enforce_on_key` must be set to an empty string. Structure is documented below.
31672
-
31673
- **Note:** To avoid the conflict between `enforce_on_key` and `enforce_on_key_configs`, the field `enforce_on_key` needs to be set to an empty string.
32339
+ If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
32340
+ You can specify up to 3 enforceOnKeyConfigs.
32341
+ If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
32342
+ Structure is documented below.
31674
32343
  """
31675
32344
  return pulumi.get(self, "enforce_on_key_configs")
31676
32345
 
@@ -31679,20 +32348,38 @@ class SecurityPolicyRuleRateLimitOptions(dict):
31679
32348
  def enforce_on_key_name(self) -> Optional[str]:
31680
32349
  """
31681
32350
  Rate limit key name applicable only for the following key types:
31682
-
31683
- * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31684
- * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
32351
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
32352
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31685
32353
  """
31686
32354
  return pulumi.get(self, "enforce_on_key_name")
31687
32355
 
32356
+ @property
32357
+ @pulumi.getter(name="exceedAction")
32358
+ def exceed_action(self) -> Optional[str]:
32359
+ """
32360
+ Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint.
32361
+ Valid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.
32362
+ """
32363
+ return pulumi.get(self, "exceed_action")
32364
+
31688
32365
  @property
31689
32366
  @pulumi.getter(name="exceedRedirectOptions")
31690
32367
  def exceed_redirect_options(self) -> Optional['outputs.SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions']:
31691
32368
  """
31692
- Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
32369
+ Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.
32370
+ Structure is documented below.
31693
32371
  """
31694
32372
  return pulumi.get(self, "exceed_redirect_options")
31695
32373
 
32374
+ @property
32375
+ @pulumi.getter(name="rateLimitThreshold")
32376
+ def rate_limit_threshold(self) -> Optional['outputs.SecurityPolicyRuleRateLimitOptionsRateLimitThreshold']:
32377
+ """
32378
+ Threshold at which to begin ratelimiting.
32379
+ Structure is documented below.
32380
+ """
32381
+ return pulumi.get(self, "rate_limit_threshold")
32382
+
31696
32383
 
31697
32384
  @pulumi.output_type
31698
32385
  class SecurityPolicyRuleRateLimitOptionsBanThreshold(dict):
@@ -31714,18 +32401,20 @@ class SecurityPolicyRuleRateLimitOptionsBanThreshold(dict):
31714
32401
  return super().get(key, default)
31715
32402
 
31716
32403
  def __init__(__self__, *,
31717
- count: int,
31718
- interval_sec: int):
32404
+ count: Optional[int] = None,
32405
+ interval_sec: Optional[int] = None):
31719
32406
  """
31720
32407
  :param int count: Number of HTTP(S) requests for calculating the threshold.
31721
32408
  :param int interval_sec: Interval over which the threshold is computed.
31722
32409
  """
31723
- pulumi.set(__self__, "count", count)
31724
- pulumi.set(__self__, "interval_sec", interval_sec)
32410
+ if count is not None:
32411
+ pulumi.set(__self__, "count", count)
32412
+ if interval_sec is not None:
32413
+ pulumi.set(__self__, "interval_sec", interval_sec)
31725
32414
 
31726
32415
  @property
31727
32416
  @pulumi.getter
31728
- def count(self) -> int:
32417
+ def count(self) -> Optional[int]:
31729
32418
  """
31730
32419
  Number of HTTP(S) requests for calculating the threshold.
31731
32420
  """
@@ -31733,7 +32422,7 @@ class SecurityPolicyRuleRateLimitOptionsBanThreshold(dict):
31733
32422
 
31734
32423
  @property
31735
32424
  @pulumi.getter(name="intervalSec")
31736
- def interval_sec(self) -> int:
32425
+ def interval_sec(self) -> Optional[int]:
31737
32426
  """
31738
32427
  Interval over which the threshold is computed.
31739
32428
  """
@@ -31766,19 +32455,20 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
31766
32455
  enforce_on_key_type: Optional[str] = None):
31767
32456
  """
31768
32457
  :param str enforce_on_key_name: Rate limit key name applicable only for the following key types:
31769
-
31770
- * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31771
- * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
31772
- :param str enforce_on_key_type: Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31773
-
31774
- * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31775
- * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31776
- * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31777
- * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31778
- * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31779
- * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31780
- * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31781
- * `REGION_CODE`: The country/region from which the request originates.
32458
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
32459
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
32460
+ :param str enforce_on_key_type: Determines the key to enforce the rateLimitThreshold on. Possible values are:
32461
+ * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured.
32462
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
32463
+ * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
32464
+ * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
32465
+ * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
32466
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
32467
+ * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
32468
+ * REGION_CODE: The country/region from which the request originates.
32469
+ * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
32470
+ * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
32471
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31782
32472
  """
31783
32473
  if enforce_on_key_name is not None:
31784
32474
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
@@ -31790,9 +32480,8 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
31790
32480
  def enforce_on_key_name(self) -> Optional[str]:
31791
32481
  """
31792
32482
  Rate limit key name applicable only for the following key types:
31793
-
31794
- * `HTTP_HEADER` -- Name of the HTTP header whose value is taken as the key value.
31795
- * `HTTP_COOKIE` -- Name of the HTTP cookie whose value is taken as the key value.
32483
+ HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.
32484
+ HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
31796
32485
  """
31797
32486
  return pulumi.get(self, "enforce_on_key_name")
31798
32487
 
@@ -31800,16 +32489,18 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
31800
32489
  @pulumi.getter(name="enforceOnKeyType")
31801
32490
  def enforce_on_key_type(self) -> Optional[str]:
31802
32491
  """
31803
- Determines the key to enforce the `rate_limit_threshold` on. If not specified, defaults to `ALL`.
31804
-
31805
- * `ALL`: A single rate limit threshold is applied to all the requests matching this rule.
31806
- * `IP`: The source IP address of the request is the key. Each IP has this limit enforced separately.
31807
- * `HTTP_HEADER`: The value of the HTTP header whose name is configured on `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to `ALL`.
31808
- * `XFF_IP`: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to `ALL`.
31809
- * `HTTP_COOKIE`: The value of the HTTP cookie whose name is configured under `enforce_on_key_name`. The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to `ALL`.
31810
- * `HTTP_PATH`: The URL path of the HTTP request. The key value is truncated to the first 128 bytes
31811
- * `SNI`: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to `ALL` on a HTTP session.
31812
- * `REGION_CODE`: The country/region from which the request originates.
32492
+ Determines the key to enforce the rateLimitThreshold on. Possible values are:
32493
+ * ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKeyConfigs" is not configured.
32494
+ * IP: The source IP address of the request is the key. Each IP has this limit enforced separately.
32495
+ * HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.
32496
+ * XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.
32497
+ * HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.
32498
+ * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.
32499
+ * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
32500
+ * REGION_CODE: The country/region from which the request originates.
32501
+ * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
32502
+ * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
32503
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
31813
32504
  """
31814
32505
  return pulumi.get(self, "enforce_on_key_type")
31815
32506
 
@@ -31817,31 +32508,32 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
31817
32508
  @pulumi.output_type
31818
32509
  class SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions(dict):
31819
32510
  def __init__(__self__, *,
31820
- type: str,
31821
- target: Optional[str] = None):
32511
+ target: Optional[str] = None,
32512
+ type: Optional[str] = None):
31822
32513
  """
32514
+ :param str target: Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
31823
32515
  :param str type: Type of the redirect action.
31824
- :param str target: Target for the redirect action. This is required if the type is `EXTERNAL_302` and cannot be specified for `GOOGLE_RECAPTCHA`.
31825
32516
  """
31826
- pulumi.set(__self__, "type", type)
31827
32517
  if target is not None:
31828
32518
  pulumi.set(__self__, "target", target)
32519
+ if type is not None:
32520
+ pulumi.set(__self__, "type", type)
31829
32521
 
31830
32522
  @property
31831
32523
  @pulumi.getter
31832
- def type(self) -> str:
32524
+ def target(self) -> Optional[str]:
31833
32525
  """
31834
- Type of the redirect action.
32526
+ Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
31835
32527
  """
31836
- return pulumi.get(self, "type")
32528
+ return pulumi.get(self, "target")
31837
32529
 
31838
32530
  @property
31839
32531
  @pulumi.getter
31840
- def target(self) -> Optional[str]:
32532
+ def type(self) -> Optional[str]:
31841
32533
  """
31842
- Target for the redirect action. This is required if the type is `EXTERNAL_302` and cannot be specified for `GOOGLE_RECAPTCHA`.
32534
+ Type of the redirect action.
31843
32535
  """
31844
- return pulumi.get(self, "target")
32536
+ return pulumi.get(self, "type")
31845
32537
 
31846
32538
 
31847
32539
  @pulumi.output_type
@@ -31864,18 +32556,20 @@ class SecurityPolicyRuleRateLimitOptionsRateLimitThreshold(dict):
31864
32556
  return super().get(key, default)
31865
32557
 
31866
32558
  def __init__(__self__, *,
31867
- count: int,
31868
- interval_sec: int):
32559
+ count: Optional[int] = None,
32560
+ interval_sec: Optional[int] = None):
31869
32561
  """
31870
32562
  :param int count: Number of HTTP(S) requests for calculating the threshold.
31871
32563
  :param int interval_sec: Interval over which the threshold is computed.
31872
32564
  """
31873
- pulumi.set(__self__, "count", count)
31874
- pulumi.set(__self__, "interval_sec", interval_sec)
32565
+ if count is not None:
32566
+ pulumi.set(__self__, "count", count)
32567
+ if interval_sec is not None:
32568
+ pulumi.set(__self__, "interval_sec", interval_sec)
31875
32569
 
31876
32570
  @property
31877
32571
  @pulumi.getter
31878
- def count(self) -> int:
32572
+ def count(self) -> Optional[int]:
31879
32573
  """
31880
32574
  Number of HTTP(S) requests for calculating the threshold.
31881
32575
  """
@@ -31883,7 +32577,7 @@ class SecurityPolicyRuleRateLimitOptionsRateLimitThreshold(dict):
31883
32577
 
31884
32578
  @property
31885
32579
  @pulumi.getter(name="intervalSec")
31886
- def interval_sec(self) -> int:
32580
+ def interval_sec(self) -> Optional[int]:
31887
32581
  """
31888
32582
  Interval over which the threshold is computed.
31889
32583
  """
@@ -44223,6 +44917,7 @@ class GetInstanceSchedulingResult(dict):
44223
44917
  min_node_cpus: int,
44224
44918
  node_affinities: Sequence['outputs.GetInstanceSchedulingNodeAffinityResult'],
44225
44919
  on_host_maintenance: str,
44920
+ on_instance_stop_actions: Sequence['outputs.GetInstanceSchedulingOnInstanceStopActionResult'],
44226
44921
  preemptible: bool,
44227
44922
  provisioning_model: str):
44228
44923
  """
@@ -44239,6 +44934,7 @@ class GetInstanceSchedulingResult(dict):
44239
44934
  :param str on_host_maintenance: Describes maintenance behavior for the
44240
44935
  instance. One of `MIGRATE` or `TERMINATE`, for more info, read
44241
44936
  [here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options)
44937
+ :param Sequence['GetInstanceSchedulingOnInstanceStopActionArgs'] on_instance_stop_actions: Defines the behaviour for instances with the instance_termination_action.
44242
44938
  :param bool preemptible: Whether the instance is preemptible.
44243
44939
  :param str provisioning_model: Describe the type of preemptible VM.
44244
44940
  """
@@ -44250,6 +44946,7 @@ class GetInstanceSchedulingResult(dict):
44250
44946
  pulumi.set(__self__, "min_node_cpus", min_node_cpus)
44251
44947
  pulumi.set(__self__, "node_affinities", node_affinities)
44252
44948
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
44949
+ pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
44253
44950
  pulumi.set(__self__, "preemptible", preemptible)
44254
44951
  pulumi.set(__self__, "provisioning_model", provisioning_model)
44255
44952
 
@@ -44320,6 +45017,14 @@ class GetInstanceSchedulingResult(dict):
44320
45017
  """
44321
45018
  return pulumi.get(self, "on_host_maintenance")
44322
45019
 
45020
+ @property
45021
+ @pulumi.getter(name="onInstanceStopActions")
45022
+ def on_instance_stop_actions(self) -> Sequence['outputs.GetInstanceSchedulingOnInstanceStopActionResult']:
45023
+ """
45024
+ Defines the behaviour for instances with the instance_termination_action.
45025
+ """
45026
+ return pulumi.get(self, "on_instance_stop_actions")
45027
+
44323
45028
  @property
44324
45029
  @pulumi.getter
44325
45030
  def preemptible(self) -> bool:
@@ -44437,6 +45142,24 @@ class GetInstanceSchedulingNodeAffinityResult(dict):
44437
45142
  return pulumi.get(self, "values")
44438
45143
 
44439
45144
 
45145
+ @pulumi.output_type
45146
+ class GetInstanceSchedulingOnInstanceStopActionResult(dict):
45147
+ def __init__(__self__, *,
45148
+ discard_local_ssd: bool):
45149
+ """
45150
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
45151
+ """
45152
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
45153
+
45154
+ @property
45155
+ @pulumi.getter(name="discardLocalSsd")
45156
+ def discard_local_ssd(self) -> bool:
45157
+ """
45158
+ If true, the contents of any attached Local SSD disks will be discarded.
45159
+ """
45160
+ return pulumi.get(self, "discard_local_ssd")
45161
+
45162
+
44440
45163
  @pulumi.output_type
44441
45164
  class GetInstanceScratchDiskResult(dict):
44442
45165
  def __init__(__self__, *,
@@ -45456,6 +46179,7 @@ class GetInstanceTemplateSchedulingResult(dict):
45456
46179
  min_node_cpus: int,
45457
46180
  node_affinities: Sequence['outputs.GetInstanceTemplateSchedulingNodeAffinityResult'],
45458
46181
  on_host_maintenance: str,
46182
+ on_instance_stop_actions: Sequence['outputs.GetInstanceTemplateSchedulingOnInstanceStopActionResult'],
45459
46183
  preemptible: bool,
45460
46184
  provisioning_model: str):
45461
46185
  """
@@ -45477,6 +46201,7 @@ class GetInstanceTemplateSchedulingResult(dict):
45477
46201
  Structure documented below.
45478
46202
  :param str on_host_maintenance: Defines the maintenance behavior for this
45479
46203
  instance.
46204
+ :param Sequence['GetInstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_actions: Defines the behaviour for instances with the instance_termination_action.
45480
46205
  :param bool preemptible: Allows instance to be preempted. This defaults to
45481
46206
  false. Read more on this
45482
46207
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -45490,6 +46215,7 @@ class GetInstanceTemplateSchedulingResult(dict):
45490
46215
  pulumi.set(__self__, "min_node_cpus", min_node_cpus)
45491
46216
  pulumi.set(__self__, "node_affinities", node_affinities)
45492
46217
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
46218
+ pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
45493
46219
  pulumi.set(__self__, "preemptible", preemptible)
45494
46220
  pulumi.set(__self__, "provisioning_model", provisioning_model)
45495
46221
 
@@ -45567,6 +46293,14 @@ class GetInstanceTemplateSchedulingResult(dict):
45567
46293
  """
45568
46294
  return pulumi.get(self, "on_host_maintenance")
45569
46295
 
46296
+ @property
46297
+ @pulumi.getter(name="onInstanceStopActions")
46298
+ def on_instance_stop_actions(self) -> Sequence['outputs.GetInstanceTemplateSchedulingOnInstanceStopActionResult']:
46299
+ """
46300
+ Defines the behaviour for instances with the instance_termination_action.
46301
+ """
46302
+ return pulumi.get(self, "on_instance_stop_actions")
46303
+
45570
46304
  @property
45571
46305
  @pulumi.getter
45572
46306
  def preemptible(self) -> bool:
@@ -45698,6 +46432,24 @@ class GetInstanceTemplateSchedulingNodeAffinityResult(dict):
45698
46432
  return pulumi.get(self, "values")
45699
46433
 
45700
46434
 
46435
+ @pulumi.output_type
46436
+ class GetInstanceTemplateSchedulingOnInstanceStopActionResult(dict):
46437
+ def __init__(__self__, *,
46438
+ discard_local_ssd: bool):
46439
+ """
46440
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
46441
+ """
46442
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
46443
+
46444
+ @property
46445
+ @pulumi.getter(name="discardLocalSsd")
46446
+ def discard_local_ssd(self) -> bool:
46447
+ """
46448
+ If true, the contents of any attached Local SSD disks will be discarded.
46449
+ """
46450
+ return pulumi.get(self, "discard_local_ssd")
46451
+
46452
+
45701
46453
  @pulumi.output_type
45702
46454
  class GetInstanceTemplateServiceAccountResult(dict):
45703
46455
  def __init__(__self__, *,
@@ -47064,6 +47816,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
47064
47816
  min_node_cpus: int,
47065
47817
  node_affinities: Sequence['outputs.GetRegionInstanceTemplateSchedulingNodeAffinityResult'],
47066
47818
  on_host_maintenance: str,
47819
+ on_instance_stop_actions: Sequence['outputs.GetRegionInstanceTemplateSchedulingOnInstanceStopActionResult'],
47067
47820
  preemptible: bool,
47068
47821
  provisioning_model: str):
47069
47822
  """
@@ -47085,6 +47838,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
47085
47838
  Structure documented below.
47086
47839
  :param str on_host_maintenance: Defines the maintenance behavior for this
47087
47840
  instance.
47841
+ :param Sequence['GetRegionInstanceTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_actions: Defines the behaviour for instances with the instance_termination_action.
47088
47842
  :param bool preemptible: Allows instance to be preempted. This defaults to
47089
47843
  false. Read more on this
47090
47844
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
@@ -47098,6 +47852,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
47098
47852
  pulumi.set(__self__, "min_node_cpus", min_node_cpus)
47099
47853
  pulumi.set(__self__, "node_affinities", node_affinities)
47100
47854
  pulumi.set(__self__, "on_host_maintenance", on_host_maintenance)
47855
+ pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
47101
47856
  pulumi.set(__self__, "preemptible", preemptible)
47102
47857
  pulumi.set(__self__, "provisioning_model", provisioning_model)
47103
47858
 
@@ -47175,6 +47930,14 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
47175
47930
  """
47176
47931
  return pulumi.get(self, "on_host_maintenance")
47177
47932
 
47933
+ @property
47934
+ @pulumi.getter(name="onInstanceStopActions")
47935
+ def on_instance_stop_actions(self) -> Sequence['outputs.GetRegionInstanceTemplateSchedulingOnInstanceStopActionResult']:
47936
+ """
47937
+ Defines the behaviour for instances with the instance_termination_action.
47938
+ """
47939
+ return pulumi.get(self, "on_instance_stop_actions")
47940
+
47178
47941
  @property
47179
47942
  @pulumi.getter
47180
47943
  def preemptible(self) -> bool:
@@ -47306,6 +48069,24 @@ class GetRegionInstanceTemplateSchedulingNodeAffinityResult(dict):
47306
48069
  return pulumi.get(self, "values")
47307
48070
 
47308
48071
 
48072
+ @pulumi.output_type
48073
+ class GetRegionInstanceTemplateSchedulingOnInstanceStopActionResult(dict):
48074
+ def __init__(__self__, *,
48075
+ discard_local_ssd: bool):
48076
+ """
48077
+ :param bool discard_local_ssd: If true, the contents of any attached Local SSD disks will be discarded.
48078
+ """
48079
+ pulumi.set(__self__, "discard_local_ssd", discard_local_ssd)
48080
+
48081
+ @property
48082
+ @pulumi.getter(name="discardLocalSsd")
48083
+ def discard_local_ssd(self) -> bool:
48084
+ """
48085
+ If true, the contents of any attached Local SSD disks will be discarded.
48086
+ """
48087
+ return pulumi.get(self, "discard_local_ssd")
48088
+
48089
+
47309
48090
  @pulumi.output_type
47310
48091
  class GetRegionInstanceTemplateServiceAccountResult(dict):
47311
48092
  def __init__(__self__, *,
@@ -49290,3 +50071,83 @@ class GetSubnetworkSecondaryIpRangeResult(dict):
49290
50071
  return pulumi.get(self, "range_name")
49291
50072
 
49292
50073
 
50074
+ @pulumi.output_type
50075
+ class GetSubnetworksSubnetworkResult(dict):
50076
+ def __init__(__self__, *,
50077
+ description: str,
50078
+ ip_cidr_range: str,
50079
+ name: str,
50080
+ network: str,
50081
+ network_self_link: str,
50082
+ private_ip_google_access: bool,
50083
+ self_link: str):
50084
+ """
50085
+ :param str description: Description of the subnetwork.
50086
+ :param str ip_cidr_range: The IP address range represented as a CIDR block.
50087
+ :param str name: The name of the subnetwork.
50088
+ :param str network: The self link of the parent network.
50089
+ :param bool private_ip_google_access: Whether the VMs in the subnet can access Google services without assigned external IP addresses.
50090
+ :param str self_link: The self link of the subnetwork.
50091
+ """
50092
+ pulumi.set(__self__, "description", description)
50093
+ pulumi.set(__self__, "ip_cidr_range", ip_cidr_range)
50094
+ pulumi.set(__self__, "name", name)
50095
+ pulumi.set(__self__, "network", network)
50096
+ pulumi.set(__self__, "network_self_link", network_self_link)
50097
+ pulumi.set(__self__, "private_ip_google_access", private_ip_google_access)
50098
+ pulumi.set(__self__, "self_link", self_link)
50099
+
50100
+ @property
50101
+ @pulumi.getter
50102
+ def description(self) -> str:
50103
+ """
50104
+ Description of the subnetwork.
50105
+ """
50106
+ return pulumi.get(self, "description")
50107
+
50108
+ @property
50109
+ @pulumi.getter(name="ipCidrRange")
50110
+ def ip_cidr_range(self) -> str:
50111
+ """
50112
+ The IP address range represented as a CIDR block.
50113
+ """
50114
+ return pulumi.get(self, "ip_cidr_range")
50115
+
50116
+ @property
50117
+ @pulumi.getter
50118
+ def name(self) -> str:
50119
+ """
50120
+ The name of the subnetwork.
50121
+ """
50122
+ return pulumi.get(self, "name")
50123
+
50124
+ @property
50125
+ @pulumi.getter
50126
+ def network(self) -> str:
50127
+ """
50128
+ The self link of the parent network.
50129
+ """
50130
+ return pulumi.get(self, "network")
50131
+
50132
+ @property
50133
+ @pulumi.getter(name="networkSelfLink")
50134
+ def network_self_link(self) -> str:
50135
+ return pulumi.get(self, "network_self_link")
50136
+
50137
+ @property
50138
+ @pulumi.getter(name="privateIpGoogleAccess")
50139
+ def private_ip_google_access(self) -> bool:
50140
+ """
50141
+ Whether the VMs in the subnet can access Google services without assigned external IP addresses.
50142
+ """
50143
+ return pulumi.get(self, "private_ip_google_access")
50144
+
50145
+ @property
50146
+ @pulumi.getter(name="selfLink")
50147
+ def self_link(self) -> str:
50148
+ """
50149
+ The self link of the subnetwork.
50150
+ """
50151
+ return pulumi.get(self, "self_link")
50152
+
50153
+