pulumi-gcp 7.29.0a1719416802__py3-none-any.whl → 7.30.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 (1485) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/_inputs.py +15 -0
  3. pulumi_gcp/accessapproval/get_folder_service_account.py +5 -0
  4. pulumi_gcp/accessapproval/get_organization_service_account.py +5 -0
  5. pulumi_gcp/accessapproval/get_project_service_account.py +5 -0
  6. pulumi_gcp/accesscontextmanager/_inputs.py +2066 -6
  7. pulumi_gcp/accesscontextmanager/access_level.py +37 -32
  8. pulumi_gcp/accesscontextmanager/access_level_condition.py +53 -48
  9. pulumi_gcp/accesscontextmanager/access_levels.py +70 -65
  10. pulumi_gcp/accesscontextmanager/access_policy.py +5 -0
  11. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +24 -19
  12. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +24 -19
  13. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +21 -16
  14. pulumi_gcp/accesscontextmanager/authorized_orgs_desc.py +5 -0
  15. pulumi_gcp/accesscontextmanager/egress_policy.py +5 -0
  16. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +33 -28
  17. pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +5 -0
  18. pulumi_gcp/accesscontextmanager/ingress_policy.py +5 -0
  19. pulumi_gcp/accesscontextmanager/outputs.py +5 -0
  20. pulumi_gcp/accesscontextmanager/service_perimeter.py +201 -196
  21. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +11 -6
  22. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +15 -10
  23. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +15 -10
  24. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +11 -6
  25. pulumi_gcp/accesscontextmanager/service_perimeters.py +60 -55
  26. pulumi_gcp/activedirectory/domain.py +5 -0
  27. pulumi_gcp/activedirectory/domain_trust.py +5 -0
  28. pulumi_gcp/activedirectory/peering.py +5 -0
  29. pulumi_gcp/alloydb/_inputs.py +535 -0
  30. pulumi_gcp/alloydb/backup.py +26 -21
  31. pulumi_gcp/alloydb/cluster.py +177 -172
  32. pulumi_gcp/alloydb/get_locations.py +5 -0
  33. pulumi_gcp/alloydb/get_supported_database_flags.py +5 -0
  34. pulumi_gcp/alloydb/instance.py +77 -72
  35. pulumi_gcp/alloydb/outputs.py +5 -0
  36. pulumi_gcp/alloydb/user.py +17 -12
  37. pulumi_gcp/apigateway/_inputs.py +168 -0
  38. pulumi_gcp/apigateway/api.py +5 -0
  39. pulumi_gcp/apigateway/api_config.py +25 -20
  40. pulumi_gcp/apigateway/api_config_iam_binding.py +24 -19
  41. pulumi_gcp/apigateway/api_config_iam_member.py +24 -19
  42. pulumi_gcp/apigateway/api_config_iam_policy.py +21 -16
  43. pulumi_gcp/apigateway/api_iam_binding.py +24 -19
  44. pulumi_gcp/apigateway/api_iam_member.py +24 -19
  45. pulumi_gcp/apigateway/api_iam_policy.py +21 -16
  46. pulumi_gcp/apigateway/gateway.py +5 -0
  47. pulumi_gcp/apigateway/gateway_iam_binding.py +24 -19
  48. pulumi_gcp/apigateway/gateway_iam_member.py +24 -19
  49. pulumi_gcp/apigateway/gateway_iam_policy.py +21 -16
  50. pulumi_gcp/apigateway/get_api_config_iam_policy.py +5 -0
  51. pulumi_gcp/apigateway/get_api_iam_policy.py +5 -0
  52. pulumi_gcp/apigateway/get_gateway_iam_policy.py +5 -0
  53. pulumi_gcp/apigateway/outputs.py +5 -0
  54. pulumi_gcp/apigee/_inputs.py +508 -0
  55. pulumi_gcp/apigee/addons_config.py +60 -55
  56. pulumi_gcp/apigee/endpoint_attachment.py +5 -0
  57. pulumi_gcp/apigee/env_group.py +5 -0
  58. pulumi_gcp/apigee/env_group_attachment.py +5 -0
  59. pulumi_gcp/apigee/env_keystore.py +5 -0
  60. pulumi_gcp/apigee/env_references.py +5 -0
  61. pulumi_gcp/apigee/environment.py +10 -5
  62. pulumi_gcp/apigee/environment_iam_binding.py +24 -19
  63. pulumi_gcp/apigee/environment_iam_member.py +24 -19
  64. pulumi_gcp/apigee/environment_iam_policy.py +21 -16
  65. pulumi_gcp/apigee/flowhook.py +5 -0
  66. pulumi_gcp/apigee/get_environment_iam_policy.py +5 -0
  67. pulumi_gcp/apigee/instance.py +5 -0
  68. pulumi_gcp/apigee/instance_attachment.py +5 -0
  69. pulumi_gcp/apigee/keystores_aliases_key_cert_file.py +10 -5
  70. pulumi_gcp/apigee/keystores_aliases_pkcs12.py +7 -2
  71. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +31 -26
  72. pulumi_gcp/apigee/nat_address.py +5 -0
  73. pulumi_gcp/apigee/organization.py +10 -5
  74. pulumi_gcp/apigee/outputs.py +5 -0
  75. pulumi_gcp/apigee/sharedflow.py +7 -2
  76. pulumi_gcp/apigee/sharedflow_deployment.py +5 -0
  77. pulumi_gcp/apigee/sync_authorization.py +5 -0
  78. pulumi_gcp/apigee/target_server.py +10 -5
  79. pulumi_gcp/appengine/_inputs.py +990 -7
  80. pulumi_gcp/appengine/application.py +17 -12
  81. pulumi_gcp/appengine/application_url_dispatch_rules.py +46 -41
  82. pulumi_gcp/appengine/domain_mapping.py +18 -13
  83. pulumi_gcp/appengine/engine_split_traffic.py +50 -45
  84. pulumi_gcp/appengine/firewall_rule.py +5 -0
  85. pulumi_gcp/appengine/flexible_app_version.py +130 -125
  86. pulumi_gcp/appengine/get_default_service_account.py +5 -0
  87. pulumi_gcp/appengine/outputs.py +5 -0
  88. pulumi_gcp/appengine/service_network_settings.py +32 -27
  89. pulumi_gcp/appengine/standard_app_version.py +109 -104
  90. pulumi_gcp/apphub/_inputs.py +370 -0
  91. pulumi_gcp/apphub/application.py +67 -62
  92. pulumi_gcp/apphub/get_application.py +5 -0
  93. pulumi_gcp/apphub/get_discovered_service.py +5 -0
  94. pulumi_gcp/apphub/get_discovered_workload.py +5 -0
  95. pulumi_gcp/apphub/outputs.py +5 -0
  96. pulumi_gcp/apphub/service.py +78 -73
  97. pulumi_gcp/apphub/service_project_attachment.py +5 -0
  98. pulumi_gcp/apphub/workload.py +14 -9
  99. pulumi_gcp/applicationintegration/_inputs.py +324 -0
  100. pulumi_gcp/applicationintegration/auth_config.py +29 -24
  101. pulumi_gcp/applicationintegration/client.py +24 -19
  102. pulumi_gcp/applicationintegration/outputs.py +5 -0
  103. pulumi_gcp/artifactregistry/_inputs.py +392 -0
  104. pulumi_gcp/artifactregistry/get_docker_image.py +7 -2
  105. pulumi_gcp/artifactregistry/get_repository.py +5 -0
  106. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +5 -0
  107. pulumi_gcp/artifactregistry/outputs.py +5 -0
  108. pulumi_gcp/artifactregistry/repository.py +338 -333
  109. pulumi_gcp/artifactregistry/repository_iam_binding.py +24 -19
  110. pulumi_gcp/artifactregistry/repository_iam_member.py +24 -19
  111. pulumi_gcp/artifactregistry/repository_iam_policy.py +21 -16
  112. pulumi_gcp/artifactregistry/vpcsc_config.py +5 -0
  113. pulumi_gcp/assuredworkloads/_inputs.py +117 -0
  114. pulumi_gcp/assuredworkloads/outputs.py +5 -0
  115. pulumi_gcp/assuredworkloads/workload.py +86 -81
  116. pulumi_gcp/backupdisasterrecovery/_inputs.py +41 -0
  117. pulumi_gcp/backupdisasterrecovery/get_management_server.py +5 -0
  118. pulumi_gcp/backupdisasterrecovery/management_server.py +20 -15
  119. pulumi_gcp/backupdisasterrecovery/outputs.py +5 -0
  120. pulumi_gcp/beyondcorp/_inputs.py +86 -0
  121. pulumi_gcp/beyondcorp/app_connection.py +57 -52
  122. pulumi_gcp/beyondcorp/app_connector.py +30 -25
  123. pulumi_gcp/beyondcorp/app_gateway.py +7 -2
  124. pulumi_gcp/beyondcorp/get_app_connection.py +5 -0
  125. pulumi_gcp/beyondcorp/get_app_connector.py +5 -0
  126. pulumi_gcp/beyondcorp/get_app_gateway.py +5 -0
  127. pulumi_gcp/beyondcorp/outputs.py +5 -0
  128. pulumi_gcp/biglake/_inputs.py +64 -0
  129. pulumi_gcp/biglake/catalog.py +5 -0
  130. pulumi_gcp/biglake/database.py +18 -13
  131. pulumi_gcp/biglake/outputs.py +5 -0
  132. pulumi_gcp/biglake/table.py +36 -31
  133. pulumi_gcp/bigquery/_inputs.py +1930 -6
  134. pulumi_gcp/bigquery/app_profile.py +133 -128
  135. pulumi_gcp/bigquery/bi_reservation.py +10 -5
  136. pulumi_gcp/bigquery/capacity_commitment.py +5 -0
  137. pulumi_gcp/bigquery/connection.py +181 -176
  138. pulumi_gcp/bigquery/connection_iam_binding.py +24 -19
  139. pulumi_gcp/bigquery/connection_iam_member.py +24 -19
  140. pulumi_gcp/bigquery/connection_iam_policy.py +21 -16
  141. pulumi_gcp/bigquery/data_transfer_config.py +20 -15
  142. pulumi_gcp/bigquery/dataset.py +132 -127
  143. pulumi_gcp/bigquery/dataset_access.py +72 -67
  144. pulumi_gcp/bigquery/dataset_iam_binding.py +24 -19
  145. pulumi_gcp/bigquery/dataset_iam_member.py +24 -19
  146. pulumi_gcp/bigquery/dataset_iam_policy.py +21 -16
  147. pulumi_gcp/bigquery/get_connection_iam_policy.py +5 -0
  148. pulumi_gcp/bigquery/get_dataset.py +5 -0
  149. pulumi_gcp/bigquery/get_dataset_iam_policy.py +5 -0
  150. pulumi_gcp/bigquery/get_default_service_account.py +5 -0
  151. pulumi_gcp/bigquery/get_table_iam_policy.py +5 -0
  152. pulumi_gcp/bigquery/iam_binding.py +102 -97
  153. pulumi_gcp/bigquery/iam_member.py +102 -97
  154. pulumi_gcp/bigquery/iam_policy.py +97 -92
  155. pulumi_gcp/bigquery/job.py +229 -224
  156. pulumi_gcp/bigquery/outputs.py +5 -0
  157. pulumi_gcp/bigquery/reservation.py +16 -11
  158. pulumi_gcp/bigquery/reservation_assignment.py +5 -0
  159. pulumi_gcp/bigquery/routine.py +114 -109
  160. pulumi_gcp/bigquery/table.py +67 -62
  161. pulumi_gcp/bigqueryanalyticshub/_inputs.py +97 -0
  162. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +5 -0
  163. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +24 -19
  164. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +24 -19
  165. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +21 -16
  166. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +5 -0
  167. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +5 -0
  168. pulumi_gcp/bigqueryanalyticshub/listing.py +45 -40
  169. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +24 -19
  170. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +24 -19
  171. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +21 -16
  172. pulumi_gcp/bigqueryanalyticshub/outputs.py +5 -0
  173. pulumi_gcp/bigquerydatapolicy/_inputs.py +40 -0
  174. pulumi_gcp/bigquerydatapolicy/data_policy.py +24 -19
  175. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +24 -19
  176. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +24 -19
  177. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +21 -16
  178. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +5 -0
  179. pulumi_gcp/bigquerydatapolicy/outputs.py +5 -0
  180. pulumi_gcp/bigtable/_inputs.py +202 -0
  181. pulumi_gcp/bigtable/authorized_view.py +10 -5
  182. pulumi_gcp/bigtable/gc_policy.py +113 -54
  183. pulumi_gcp/bigtable/get_instance_iam_policy.py +5 -0
  184. pulumi_gcp/bigtable/get_table_iam_policy.py +5 -0
  185. pulumi_gcp/bigtable/instance.py +52 -47
  186. pulumi_gcp/bigtable/instance_iam_binding.py +24 -19
  187. pulumi_gcp/bigtable/instance_iam_member.py +24 -19
  188. pulumi_gcp/bigtable/instance_iam_policy.py +21 -16
  189. pulumi_gcp/bigtable/outputs.py +5 -0
  190. pulumi_gcp/bigtable/table.py +39 -34
  191. pulumi_gcp/bigtable/table_iam_binding.py +24 -19
  192. pulumi_gcp/bigtable/table_iam_member.py +24 -19
  193. pulumi_gcp/bigtable/table_iam_policy.py +21 -16
  194. pulumi_gcp/billing/_inputs.py +257 -0
  195. pulumi_gcp/billing/account_iam_binding.py +24 -19
  196. pulumi_gcp/billing/account_iam_member.py +24 -19
  197. pulumi_gcp/billing/account_iam_policy.py +21 -16
  198. pulumi_gcp/billing/budget.py +225 -220
  199. pulumi_gcp/billing/get_account_iam_policy.py +5 -0
  200. pulumi_gcp/billing/outputs.py +5 -0
  201. pulumi_gcp/billing/project_info.py +5 -0
  202. pulumi_gcp/billing/sub_account.py +5 -0
  203. pulumi_gcp/binaryauthorization/_inputs.py +199 -0
  204. pulumi_gcp/binaryauthorization/attestor.py +68 -63
  205. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +24 -19
  206. pulumi_gcp/binaryauthorization/attestor_iam_member.py +24 -19
  207. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +21 -16
  208. pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +5 -0
  209. pulumi_gcp/binaryauthorization/outputs.py +5 -0
  210. pulumi_gcp/binaryauthorization/policy.py +88 -83
  211. pulumi_gcp/blockchainnodeengine/_inputs.py +131 -0
  212. pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +62 -57
  213. pulumi_gcp/blockchainnodeengine/outputs.py +5 -0
  214. pulumi_gcp/certificateauthority/_inputs.py +2157 -36
  215. pulumi_gcp/certificateauthority/authority.py +398 -393
  216. pulumi_gcp/certificateauthority/ca_pool.py +189 -184
  217. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +102 -97
  218. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +102 -97
  219. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +97 -92
  220. pulumi_gcp/certificateauthority/certificate.py +636 -631
  221. pulumi_gcp/certificateauthority/certificate_template.py +134 -129
  222. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +102 -97
  223. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +102 -97
  224. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +97 -92
  225. pulumi_gcp/certificateauthority/get_authority.py +5 -0
  226. pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +5 -0
  227. pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +5 -0
  228. pulumi_gcp/certificateauthority/outputs.py +5 -0
  229. pulumi_gcp/certificatemanager/_inputs.py +256 -0
  230. pulumi_gcp/certificatemanager/certificate.py +203 -198
  231. pulumi_gcp/certificatemanager/certificate_issuance_config.py +76 -71
  232. pulumi_gcp/certificatemanager/certificate_map.py +7 -2
  233. pulumi_gcp/certificatemanager/certificate_map_entry.py +13 -8
  234. pulumi_gcp/certificatemanager/dns_authorization.py +7 -2
  235. pulumi_gcp/certificatemanager/get_certificate_map.py +5 -0
  236. pulumi_gcp/certificatemanager/outputs.py +5 -0
  237. pulumi_gcp/certificatemanager/trust_config.py +26 -21
  238. pulumi_gcp/cloudasset/_inputs.py +151 -0
  239. pulumi_gcp/cloudasset/folder_feed.py +35 -30
  240. pulumi_gcp/cloudasset/get_resources_search_all.py +5 -0
  241. pulumi_gcp/cloudasset/get_search_all_resources.py +5 -0
  242. pulumi_gcp/cloudasset/organization_feed.py +35 -30
  243. pulumi_gcp/cloudasset/outputs.py +5 -0
  244. pulumi_gcp/cloudasset/project_feed.py +35 -30
  245. pulumi_gcp/cloudbuild/_inputs.py +1038 -29
  246. pulumi_gcp/cloudbuild/bitbucket_server_config.py +61 -56
  247. pulumi_gcp/cloudbuild/get_trigger.py +5 -0
  248. pulumi_gcp/cloudbuild/outputs.py +5 -0
  249. pulumi_gcp/cloudbuild/trigger.py +733 -728
  250. pulumi_gcp/cloudbuild/worker_pool.py +43 -38
  251. pulumi_gcp/cloudbuildv2/_inputs.py +335 -0
  252. pulumi_gcp/cloudbuildv2/connection.py +106 -101
  253. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +24 -19
  254. pulumi_gcp/cloudbuildv2/connection_iam_member.py +24 -19
  255. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +21 -16
  256. pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +5 -0
  257. pulumi_gcp/cloudbuildv2/outputs.py +5 -0
  258. pulumi_gcp/cloudbuildv2/repository.py +67 -62
  259. pulumi_gcp/clouddeploy/_inputs.py +700 -0
  260. pulumi_gcp/clouddeploy/automation.py +101 -96
  261. pulumi_gcp/clouddeploy/custom_target_type.py +88 -83
  262. pulumi_gcp/clouddeploy/custom_target_type_iam_binding.py +8 -3
  263. pulumi_gcp/clouddeploy/custom_target_type_iam_member.py +8 -3
  264. pulumi_gcp/clouddeploy/custom_target_type_iam_policy.py +5 -0
  265. pulumi_gcp/clouddeploy/delivery_pipeline.py +162 -157
  266. pulumi_gcp/clouddeploy/delivery_pipeline_iam_binding.py +8 -3
  267. pulumi_gcp/clouddeploy/delivery_pipeline_iam_member.py +8 -3
  268. pulumi_gcp/clouddeploy/delivery_pipeline_iam_policy.py +5 -0
  269. pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +5 -0
  270. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +5 -0
  271. pulumi_gcp/clouddeploy/get_target_iam_policy.py +5 -0
  272. pulumi_gcp/clouddeploy/outputs.py +5 -0
  273. pulumi_gcp/clouddeploy/target.py +69 -64
  274. pulumi_gcp/clouddeploy/target_iam_binding.py +8 -3
  275. pulumi_gcp/clouddeploy/target_iam_member.py +8 -3
  276. pulumi_gcp/clouddeploy/target_iam_policy.py +5 -0
  277. pulumi_gcp/clouddomains/_inputs.py +372 -0
  278. pulumi_gcp/clouddomains/outputs.py +5 -0
  279. pulumi_gcp/clouddomains/registration.py +121 -116
  280. pulumi_gcp/cloudfunctions/_inputs.py +132 -0
  281. pulumi_gcp/cloudfunctions/function.py +25 -20
  282. pulumi_gcp/cloudfunctions/function_iam_binding.py +24 -19
  283. pulumi_gcp/cloudfunctions/function_iam_member.py +24 -19
  284. pulumi_gcp/cloudfunctions/function_iam_policy.py +21 -16
  285. pulumi_gcp/cloudfunctions/get_function.py +5 -0
  286. pulumi_gcp/cloudfunctions/get_function_iam_policy.py +5 -0
  287. pulumi_gcp/cloudfunctions/outputs.py +5 -0
  288. pulumi_gcp/cloudfunctionsv2/_inputs.py +454 -0
  289. pulumi_gcp/cloudfunctionsv2/function.py +746 -509
  290. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +24 -19
  291. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +24 -19
  292. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +21 -16
  293. pulumi_gcp/cloudfunctionsv2/get_function.py +5 -0
  294. pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +5 -0
  295. pulumi_gcp/cloudfunctionsv2/outputs.py +134 -1
  296. pulumi_gcp/cloudidentity/_inputs.py +161 -0
  297. pulumi_gcp/cloudidentity/get_group_lookup.py +9 -4
  298. pulumi_gcp/cloudidentity/get_group_memberships.py +5 -0
  299. pulumi_gcp/cloudidentity/get_groups.py +5 -0
  300. pulumi_gcp/cloudidentity/group.py +18 -13
  301. pulumi_gcp/cloudidentity/group_membership.py +68 -63
  302. pulumi_gcp/cloudidentity/outputs.py +5 -0
  303. pulumi_gcp/cloudids/endpoint.py +5 -0
  304. pulumi_gcp/cloudquota/_inputs.py +44 -0
  305. pulumi_gcp/cloudquota/get_s_quota_info.py +5 -0
  306. pulumi_gcp/cloudquota/get_s_quota_infos.py +5 -0
  307. pulumi_gcp/cloudquota/outputs.py +5 -0
  308. pulumi_gcp/cloudquota/s_quota_preference.py +16 -11
  309. pulumi_gcp/cloudrun/_inputs.py +1165 -15
  310. pulumi_gcp/cloudrun/domain_mapping.py +49 -44
  311. pulumi_gcp/cloudrun/get_locations.py +5 -0
  312. pulumi_gcp/cloudrun/get_service.py +5 -0
  313. pulumi_gcp/cloudrun/get_service_iam_policy.py +5 -0
  314. pulumi_gcp/cloudrun/iam_binding.py +24 -19
  315. pulumi_gcp/cloudrun/iam_member.py +24 -19
  316. pulumi_gcp/cloudrun/iam_policy.py +21 -16
  317. pulumi_gcp/cloudrun/outputs.py +5 -0
  318. pulumi_gcp/cloudrun/service.py +270 -265
  319. pulumi_gcp/cloudrunv2/_inputs.py +1338 -5
  320. pulumi_gcp/cloudrunv2/get_job.py +5 -0
  321. pulumi_gcp/cloudrunv2/get_job_iam_policy.py +5 -0
  322. pulumi_gcp/cloudrunv2/get_service.py +5 -0
  323. pulumi_gcp/cloudrunv2/get_service_iam_policy.py +5 -0
  324. pulumi_gcp/cloudrunv2/job.py +287 -282
  325. pulumi_gcp/cloudrunv2/job_iam_binding.py +24 -19
  326. pulumi_gcp/cloudrunv2/job_iam_member.py +24 -19
  327. pulumi_gcp/cloudrunv2/job_iam_policy.py +21 -16
  328. pulumi_gcp/cloudrunv2/outputs.py +5 -0
  329. pulumi_gcp/cloudrunv2/service.py +437 -432
  330. pulumi_gcp/cloudrunv2/service_iam_binding.py +24 -19
  331. pulumi_gcp/cloudrunv2/service_iam_member.py +24 -19
  332. pulumi_gcp/cloudrunv2/service_iam_policy.py +21 -16
  333. pulumi_gcp/cloudscheduler/_inputs.py +193 -0
  334. pulumi_gcp/cloudscheduler/job.py +127 -122
  335. pulumi_gcp/cloudscheduler/outputs.py +5 -0
  336. pulumi_gcp/cloudtasks/_inputs.py +134 -0
  337. pulumi_gcp/cloudtasks/get_queue_iam_policy.py +5 -0
  338. pulumi_gcp/cloudtasks/outputs.py +5 -0
  339. pulumi_gcp/cloudtasks/queue.py +63 -58
  340. pulumi_gcp/cloudtasks/queue_iam_binding.py +24 -19
  341. pulumi_gcp/cloudtasks/queue_iam_member.py +24 -19
  342. pulumi_gcp/cloudtasks/queue_iam_policy.py +21 -16
  343. pulumi_gcp/composer/_inputs.py +566 -0
  344. pulumi_gcp/composer/environment.py +15 -10
  345. pulumi_gcp/composer/get_environment.py +5 -0
  346. pulumi_gcp/composer/get_image_versions.py +15 -10
  347. pulumi_gcp/composer/get_user_workloads_config_map.py +15 -10
  348. pulumi_gcp/composer/get_user_workloads_secret.py +15 -10
  349. pulumi_gcp/composer/outputs.py +5 -0
  350. pulumi_gcp/composer/user_workloads_config_map.py +15 -10
  351. pulumi_gcp/composer/user_workloads_secret.py +15 -10
  352. pulumi_gcp/compute/_inputs.py +14134 -145
  353. pulumi_gcp/compute/address.py +27 -29
  354. pulumi_gcp/compute/attached_disk.py +21 -16
  355. pulumi_gcp/compute/autoscaler.py +98 -93
  356. pulumi_gcp/compute/backend_bucket.py +30 -25
  357. pulumi_gcp/compute/backend_bucket_iam_binding.py +8 -3
  358. pulumi_gcp/compute/backend_bucket_iam_member.py +8 -3
  359. pulumi_gcp/compute/backend_bucket_iam_policy.py +5 -0
  360. pulumi_gcp/compute/backend_bucket_signed_url_key.py +5 -0
  361. pulumi_gcp/compute/backend_service.py +204 -213
  362. pulumi_gcp/compute/backend_service_iam_binding.py +10 -5
  363. pulumi_gcp/compute/backend_service_iam_member.py +10 -5
  364. pulumi_gcp/compute/backend_service_iam_policy.py +5 -0
  365. pulumi_gcp/compute/backend_service_signed_url_key.py +35 -30
  366. pulumi_gcp/compute/ca_external_account_key.py +5 -0
  367. pulumi_gcp/compute/disk.py +54 -49
  368. pulumi_gcp/compute/disk_async_replication.py +10 -5
  369. pulumi_gcp/compute/disk_iam_binding.py +24 -19
  370. pulumi_gcp/compute/disk_iam_member.py +24 -19
  371. pulumi_gcp/compute/disk_iam_policy.py +21 -16
  372. pulumi_gcp/compute/disk_resource_policy_attachment.py +21 -16
  373. pulumi_gcp/compute/external_vpn_gateway.py +24 -19
  374. pulumi_gcp/compute/firewall.py +42 -37
  375. pulumi_gcp/compute/firewall_policy.py +5 -0
  376. pulumi_gcp/compute/firewall_policy_association.py +5 -0
  377. pulumi_gcp/compute/firewall_policy_rule.py +44 -39
  378. pulumi_gcp/compute/forwarding_rule.py +248 -264
  379. pulumi_gcp/compute/get_address.py +5 -0
  380. pulumi_gcp/compute/get_addresses.py +5 -0
  381. pulumi_gcp/compute/get_backend_bucket.py +5 -0
  382. pulumi_gcp/compute/get_backend_bucket_iam_policy.py +5 -0
  383. pulumi_gcp/compute/get_backend_service.py +5 -0
  384. pulumi_gcp/compute/get_backend_service_iam_policy.py +5 -0
  385. pulumi_gcp/compute/get_certificate.py +5 -0
  386. pulumi_gcp/compute/get_default_service_account.py +5 -0
  387. pulumi_gcp/compute/get_disk.py +13 -8
  388. pulumi_gcp/compute/get_disk_iam_policy.py +5 -0
  389. pulumi_gcp/compute/get_forwarding_rule.py +5 -0
  390. pulumi_gcp/compute/get_forwarding_rules.py +5 -0
  391. pulumi_gcp/compute/get_global_address.py +5 -0
  392. pulumi_gcp/compute/get_global_forwarding_rule.py +5 -0
  393. pulumi_gcp/compute/get_hc_vpn_gateway.py +5 -0
  394. pulumi_gcp/compute/get_health_check.py +5 -0
  395. pulumi_gcp/compute/get_image.py +15 -10
  396. pulumi_gcp/compute/get_image_iam_policy.py +5 -0
  397. pulumi_gcp/compute/get_instance.py +5 -0
  398. pulumi_gcp/compute/get_instance_group.py +5 -0
  399. pulumi_gcp/compute/get_instance_group_manager.py +5 -0
  400. pulumi_gcp/compute/get_instance_iam_policy.py +5 -0
  401. pulumi_gcp/compute/get_instance_serial_port.py +29 -24
  402. pulumi_gcp/compute/get_instance_template.py +5 -0
  403. pulumi_gcp/compute/get_lbip_ranges.py +5 -0
  404. pulumi_gcp/compute/get_machine_image_iam_policy.py +5 -0
  405. pulumi_gcp/compute/get_machine_types.py +5 -0
  406. pulumi_gcp/compute/get_netblock_ip_ranges.py +5 -0
  407. pulumi_gcp/compute/get_network.py +5 -0
  408. pulumi_gcp/compute/get_network_endpoint_group.py +5 -0
  409. pulumi_gcp/compute/get_network_peering.py +5 -0
  410. pulumi_gcp/compute/get_networks.py +5 -0
  411. pulumi_gcp/compute/get_node_types.py +5 -0
  412. pulumi_gcp/compute/get_region_backend_service_iam_policy.py +5 -0
  413. pulumi_gcp/compute/get_region_disk.py +5 -0
  414. pulumi_gcp/compute/get_region_disk_iam_policy.py +5 -0
  415. pulumi_gcp/compute/get_region_instance_group.py +5 -0
  416. pulumi_gcp/compute/get_region_instance_template.py +5 -0
  417. pulumi_gcp/compute/get_region_network_endpoint_group.py +5 -0
  418. pulumi_gcp/compute/get_region_ssl_certificate.py +5 -0
  419. pulumi_gcp/compute/get_regions.py +5 -0
  420. pulumi_gcp/compute/get_reservation.py +5 -0
  421. pulumi_gcp/compute/get_resource_policy.py +5 -0
  422. pulumi_gcp/compute/get_router.py +5 -0
  423. pulumi_gcp/compute/get_router_nat.py +5 -0
  424. pulumi_gcp/compute/get_router_status.py +5 -0
  425. pulumi_gcp/compute/get_security_policy.py +5 -0
  426. pulumi_gcp/compute/get_snapshot.py +5 -0
  427. pulumi_gcp/compute/get_snapshot_iam_policy.py +5 -0
  428. pulumi_gcp/compute/get_ssl_policy.py +5 -0
  429. pulumi_gcp/compute/get_subnetwork.py +5 -0
  430. pulumi_gcp/compute/get_subnetwork_iam_policy.py +5 -0
  431. pulumi_gcp/compute/get_subnetworks.py +5 -0
  432. pulumi_gcp/compute/get_vpn_gateway.py +5 -0
  433. pulumi_gcp/compute/get_zones.py +5 -0
  434. pulumi_gcp/compute/global_address.py +5 -0
  435. pulumi_gcp/compute/global_forwarding_rule.py +211 -227
  436. pulumi_gcp/compute/global_network_endpoint.py +5 -0
  437. pulumi_gcp/compute/global_network_endpoint_group.py +5 -0
  438. pulumi_gcp/compute/ha_vpn_gateway.py +32 -27
  439. pulumi_gcp/compute/health_check.py +174 -169
  440. pulumi_gcp/compute/http_health_check.py +5 -0
  441. pulumi_gcp/compute/https_health_check.py +5 -0
  442. pulumi_gcp/compute/image.py +50 -45
  443. pulumi_gcp/compute/image_iam_binding.py +102 -97
  444. pulumi_gcp/compute/image_iam_member.py +102 -97
  445. pulumi_gcp/compute/image_iam_policy.py +97 -92
  446. pulumi_gcp/compute/instance.py +104 -99
  447. pulumi_gcp/compute/instance_from_machine_image.py +61 -56
  448. pulumi_gcp/compute/instance_from_template.py +88 -83
  449. pulumi_gcp/compute/instance_group.py +26 -21
  450. pulumi_gcp/compute/instance_group_manager.py +138 -133
  451. pulumi_gcp/compute/instance_group_membership.py +21 -16
  452. pulumi_gcp/compute/instance_group_named_port.py +13 -8
  453. pulumi_gcp/compute/instance_iam_binding.py +102 -97
  454. pulumi_gcp/compute/instance_iam_member.py +102 -97
  455. pulumi_gcp/compute/instance_iam_policy.py +97 -92
  456. pulumi_gcp/compute/instance_settings.py +16 -11
  457. pulumi_gcp/compute/instance_template.py +147 -142
  458. pulumi_gcp/compute/interconnect.py +14 -9
  459. pulumi_gcp/compute/interconnect_attachment.py +19 -14
  460. pulumi_gcp/compute/machine_image.py +48 -43
  461. pulumi_gcp/compute/machine_image_iam_binding.py +102 -97
  462. pulumi_gcp/compute/machine_image_iam_member.py +102 -97
  463. pulumi_gcp/compute/machine_image_iam_policy.py +97 -92
  464. pulumi_gcp/compute/managed_ssl_certificate.py +40 -42
  465. pulumi_gcp/compute/manged_ssl_certificate.py +40 -42
  466. pulumi_gcp/compute/network.py +5 -0
  467. pulumi_gcp/compute/network_attachment.py +45 -24
  468. pulumi_gcp/compute/network_edge_security_service.py +5 -0
  469. pulumi_gcp/compute/network_endpoint.py +23 -18
  470. pulumi_gcp/compute/network_endpoint_group.py +5 -0
  471. pulumi_gcp/compute/network_endpoint_list.py +66 -61
  472. pulumi_gcp/compute/network_firewall_policy.py +5 -0
  473. pulumi_gcp/compute/network_firewall_policy_association.py +5 -0
  474. pulumi_gcp/compute/network_firewall_policy_rule.py +41 -36
  475. pulumi_gcp/compute/network_peering.py +5 -0
  476. pulumi_gcp/compute/network_peering_routes_config.py +41 -36
  477. pulumi_gcp/compute/node_group.py +50 -45
  478. pulumi_gcp/compute/node_template.py +21 -16
  479. pulumi_gcp/compute/organization_security_policy.py +5 -0
  480. pulumi_gcp/compute/organization_security_policy_association.py +31 -26
  481. pulumi_gcp/compute/organization_security_policy_rule.py +36 -31
  482. pulumi_gcp/compute/outputs.py +509 -8
  483. pulumi_gcp/compute/packet_mirroring.py +83 -78
  484. pulumi_gcp/compute/per_instance_config.py +56 -51
  485. pulumi_gcp/compute/project_cloud_armor_tier.py +5 -0
  486. pulumi_gcp/compute/project_default_network_tier.py +5 -0
  487. pulumi_gcp/compute/project_metadata.py +5 -0
  488. pulumi_gcp/compute/project_metadata_item.py +5 -0
  489. pulumi_gcp/compute/public_advertised_prefix.py +5 -0
  490. pulumi_gcp/compute/public_delegated_prefix.py +5 -0
  491. pulumi_gcp/compute/region_autoscaler.py +60 -55
  492. pulumi_gcp/compute/region_backend_service.py +203 -212
  493. pulumi_gcp/compute/region_backend_service_iam_binding.py +10 -5
  494. pulumi_gcp/compute/region_backend_service_iam_member.py +10 -5
  495. pulumi_gcp/compute/region_backend_service_iam_policy.py +5 -0
  496. pulumi_gcp/compute/region_commitment.py +47 -42
  497. pulumi_gcp/compute/region_disk.py +49 -44
  498. pulumi_gcp/compute/region_disk_iam_binding.py +146 -114
  499. pulumi_gcp/compute/region_disk_iam_member.py +146 -114
  500. pulumi_gcp/compute/region_disk_iam_policy.py +136 -104
  501. pulumi_gcp/compute/region_disk_resource_policy_attachment.py +21 -16
  502. pulumi_gcp/compute/region_health_check.py +174 -169
  503. pulumi_gcp/compute/region_instance_group_manager.py +134 -129
  504. pulumi_gcp/compute/region_instance_template.py +55 -50
  505. pulumi_gcp/compute/region_network_endpoint.py +23 -18
  506. pulumi_gcp/compute/region_network_endpoint_group.py +135 -130
  507. pulumi_gcp/compute/region_network_firewall_policy.py +5 -0
  508. pulumi_gcp/compute/region_network_firewall_policy_association.py +5 -0
  509. pulumi_gcp/compute/region_network_firewall_policy_rule.py +41 -36
  510. pulumi_gcp/compute/region_per_instance_config.py +66 -61
  511. pulumi_gcp/compute/region_security_policy.py +49 -44
  512. pulumi_gcp/compute/region_security_policy_rule.py +161 -156
  513. pulumi_gcp/compute/region_ssl_certificate.py +5 -7
  514. pulumi_gcp/compute/region_ssl_policy.py +5 -0
  515. pulumi_gcp/compute/region_target_http_proxy.py +43 -38
  516. pulumi_gcp/compute/region_target_https_proxy.py +97 -92
  517. pulumi_gcp/compute/region_target_tcp_proxy.py +11 -6
  518. pulumi_gcp/compute/region_url_map.py +824 -819
  519. pulumi_gcp/compute/reservation.py +29 -24
  520. pulumi_gcp/compute/resource_policy.py +153 -148
  521. pulumi_gcp/compute/route.py +17 -12
  522. pulumi_gcp/compute/router.py +40 -35
  523. pulumi_gcp/compute/router_interface.py +5 -0
  524. pulumi_gcp/compute/router_nat.py +98 -93
  525. pulumi_gcp/compute/router_peer.py +78 -73
  526. pulumi_gcp/compute/router_status.py +5 -0
  527. pulumi_gcp/compute/security_policy.py +201 -196
  528. pulumi_gcp/compute/security_policy_rule.py +80 -75
  529. pulumi_gcp/compute/security_scan_config.py +15 -10
  530. pulumi_gcp/compute/service_attachment.py +60 -55
  531. pulumi_gcp/compute/shared_vpc_host_project.py +5 -0
  532. pulumi_gcp/compute/shared_vpc_service_project.py +5 -0
  533. pulumi_gcp/compute/snapshot.py +15 -10
  534. pulumi_gcp/compute/snapshot_iam_binding.py +24 -19
  535. pulumi_gcp/compute/snapshot_iam_member.py +24 -19
  536. pulumi_gcp/compute/snapshot_iam_policy.py +21 -16
  537. pulumi_gcp/compute/ssl_certificate.py +5 -7
  538. pulumi_gcp/compute/ssl_policy.py +5 -0
  539. pulumi_gcp/compute/subnetwork.py +33 -28
  540. pulumi_gcp/compute/subnetwork_iam_binding.py +102 -97
  541. pulumi_gcp/compute/subnetwork_iam_member.py +102 -97
  542. pulumi_gcp/compute/subnetwork_iam_policy.py +97 -92
  543. pulumi_gcp/compute/target_grpc_proxy.py +129 -124
  544. pulumi_gcp/compute/target_http_proxy.py +61 -56
  545. pulumi_gcp/compute/target_https_proxy.py +209 -129
  546. pulumi_gcp/compute/target_instance.py +63 -58
  547. pulumi_gcp/compute/target_pool.py +5 -0
  548. pulumi_gcp/compute/target_ssl_proxy.py +11 -6
  549. pulumi_gcp/compute/target_tcp_proxy.py +11 -6
  550. pulumi_gcp/compute/url_map.py +986 -726
  551. pulumi_gcp/compute/vpn_gateway.py +5 -0
  552. pulumi_gcp/compute/vpn_tunnel.py +5 -0
  553. pulumi_gcp/config/__init__.pyi +5 -0
  554. pulumi_gcp/config/outputs.py +5 -0
  555. pulumi_gcp/config/vars.py +5 -0
  556. pulumi_gcp/container/_inputs.py +5502 -823
  557. pulumi_gcp/container/attached_cluster.py +128 -123
  558. pulumi_gcp/container/aws_cluster.py +361 -356
  559. pulumi_gcp/container/aws_node_pool.py +556 -551
  560. pulumi_gcp/container/azure_client.py +7 -2
  561. pulumi_gcp/container/azure_cluster.py +135 -130
  562. pulumi_gcp/container/azure_node_pool.py +117 -112
  563. pulumi_gcp/container/cluster.py +224 -219
  564. pulumi_gcp/container/get_attached_install_manifest.py +5 -0
  565. pulumi_gcp/container/get_attached_versions.py +5 -0
  566. pulumi_gcp/container/get_aws_versions.py +5 -0
  567. pulumi_gcp/container/get_azure_versions.py +5 -0
  568. pulumi_gcp/container/get_cluster.py +5 -0
  569. pulumi_gcp/container/get_engine_versions.py +5 -0
  570. pulumi_gcp/container/get_registry_image.py +5 -0
  571. pulumi_gcp/container/get_registry_repository.py +5 -0
  572. pulumi_gcp/container/node_pool.py +78 -73
  573. pulumi_gcp/container/outputs.py +5 -0
  574. pulumi_gcp/container/registry.py +5 -0
  575. pulumi_gcp/containeranalysis/_inputs.py +121 -0
  576. pulumi_gcp/containeranalysis/get_note_iam_policy.py +5 -0
  577. pulumi_gcp/containeranalysis/note.py +49 -44
  578. pulumi_gcp/containeranalysis/note_iam_binding.py +24 -19
  579. pulumi_gcp/containeranalysis/note_iam_member.py +24 -19
  580. pulumi_gcp/containeranalysis/note_iam_policy.py +21 -16
  581. pulumi_gcp/containeranalysis/occurence.py +10 -5
  582. pulumi_gcp/containeranalysis/outputs.py +5 -0
  583. pulumi_gcp/databasemigrationservice/_inputs.py +578 -0
  584. pulumi_gcp/databasemigrationservice/connection_profile.py +188 -183
  585. pulumi_gcp/databasemigrationservice/outputs.py +5 -0
  586. pulumi_gcp/databasemigrationservice/private_connection.py +20 -15
  587. pulumi_gcp/datacatalog/_inputs.py +318 -0
  588. pulumi_gcp/datacatalog/entry.py +20 -15
  589. pulumi_gcp/datacatalog/entry_group.py +5 -0
  590. pulumi_gcp/datacatalog/entry_group_iam_binding.py +24 -19
  591. pulumi_gcp/datacatalog/entry_group_iam_member.py +24 -19
  592. pulumi_gcp/datacatalog/entry_group_iam_policy.py +21 -16
  593. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +5 -0
  594. pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +5 -0
  595. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +5 -0
  596. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +5 -0
  597. pulumi_gcp/datacatalog/outputs.py +5 -0
  598. pulumi_gcp/datacatalog/policy_tag.py +5 -0
  599. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +24 -19
  600. pulumi_gcp/datacatalog/policy_tag_iam_member.py +24 -19
  601. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +21 -16
  602. pulumi_gcp/datacatalog/tag.py +264 -259
  603. pulumi_gcp/datacatalog/tag_template.py +76 -71
  604. pulumi_gcp/datacatalog/tag_template_iam_binding.py +24 -19
  605. pulumi_gcp/datacatalog/tag_template_iam_member.py +24 -19
  606. pulumi_gcp/datacatalog/tag_template_iam_policy.py +21 -16
  607. pulumi_gcp/datacatalog/taxonomy.py +5 -0
  608. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +24 -19
  609. pulumi_gcp/datacatalog/taxonomy_iam_member.py +24 -19
  610. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +21 -16
  611. pulumi_gcp/dataflow/_inputs.py +316 -0
  612. pulumi_gcp/dataflow/flex_template_job.py +5 -0
  613. pulumi_gcp/dataflow/job.py +5 -0
  614. pulumi_gcp/dataflow/outputs.py +5 -0
  615. pulumi_gcp/dataflow/pipeline.py +75 -70
  616. pulumi_gcp/dataform/_inputs.py +251 -0
  617. pulumi_gcp/dataform/get_repository_iam_policy.py +5 -0
  618. pulumi_gcp/dataform/outputs.py +5 -0
  619. pulumi_gcp/dataform/repository.py +41 -36
  620. pulumi_gcp/dataform/repository_iam_binding.py +8 -3
  621. pulumi_gcp/dataform/repository_iam_member.py +8 -3
  622. pulumi_gcp/dataform/repository_iam_policy.py +5 -0
  623. pulumi_gcp/dataform/repository_release_config.py +58 -53
  624. pulumi_gcp/dataform/repository_workflow_config.py +94 -89
  625. pulumi_gcp/datafusion/_inputs.py +224 -8
  626. pulumi_gcp/datafusion/get_instance_iam_policy.py +5 -0
  627. pulumi_gcp/datafusion/instance.py +119 -50
  628. pulumi_gcp/datafusion/outputs.py +132 -7
  629. pulumi_gcp/dataloss/_inputs.py +6566 -114
  630. pulumi_gcp/dataloss/outputs.py +5 -0
  631. pulumi_gcp/dataloss/prevention_deidentify_template.py +226 -221
  632. pulumi_gcp/dataloss/prevention_discovery_config.py +22 -17
  633. pulumi_gcp/dataloss/prevention_inspect_template.py +442 -437
  634. pulumi_gcp/dataloss/prevention_job_trigger.py +701 -696
  635. pulumi_gcp/dataloss/prevention_stored_info_type.py +62 -57
  636. pulumi_gcp/dataplex/_inputs.py +1212 -6
  637. pulumi_gcp/dataplex/aspect_type.py +5 -0
  638. pulumi_gcp/dataplex/aspect_type_iam_binding.py +24 -19
  639. pulumi_gcp/dataplex/aspect_type_iam_member.py +24 -19
  640. pulumi_gcp/dataplex/aspect_type_iam_policy.py +21 -16
  641. pulumi_gcp/dataplex/asset.py +47 -42
  642. pulumi_gcp/dataplex/asset_iam_binding.py +24 -19
  643. pulumi_gcp/dataplex/asset_iam_member.py +24 -19
  644. pulumi_gcp/dataplex/asset_iam_policy.py +21 -16
  645. pulumi_gcp/dataplex/datascan.py +289 -284
  646. pulumi_gcp/dataplex/datascan_iam_binding.py +24 -19
  647. pulumi_gcp/dataplex/datascan_iam_member.py +24 -19
  648. pulumi_gcp/dataplex/datascan_iam_policy.py +21 -16
  649. pulumi_gcp/dataplex/entry_group.py +5 -0
  650. pulumi_gcp/dataplex/entry_group_iam_binding.py +24 -19
  651. pulumi_gcp/dataplex/entry_group_iam_member.py +24 -19
  652. pulumi_gcp/dataplex/entry_group_iam_policy.py +21 -16
  653. pulumi_gcp/dataplex/entry_type.py +16 -11
  654. pulumi_gcp/dataplex/entry_type_iam_binding.py +24 -19
  655. pulumi_gcp/dataplex/entry_type_iam_member.py +24 -19
  656. pulumi_gcp/dataplex/entry_type_iam_policy.py +21 -16
  657. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +5 -0
  658. pulumi_gcp/dataplex/get_asset_iam_policy.py +5 -0
  659. pulumi_gcp/dataplex/get_datascan_iam_policy.py +5 -0
  660. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +5 -0
  661. pulumi_gcp/dataplex/get_entry_type_iam_policy.py +5 -0
  662. pulumi_gcp/dataplex/get_lake_iam_policy.py +5 -0
  663. pulumi_gcp/dataplex/get_task_iam_policy.py +5 -0
  664. pulumi_gcp/dataplex/get_zone_iam_policy.py +5 -0
  665. pulumi_gcp/dataplex/lake.py +14 -9
  666. pulumi_gcp/dataplex/lake_iam_binding.py +24 -19
  667. pulumi_gcp/dataplex/lake_iam_member.py +24 -19
  668. pulumi_gcp/dataplex/lake_iam_policy.py +21 -16
  669. pulumi_gcp/dataplex/outputs.py +5 -0
  670. pulumi_gcp/dataplex/task.py +173 -168
  671. pulumi_gcp/dataplex/task_iam_binding.py +24 -19
  672. pulumi_gcp/dataplex/task_iam_member.py +24 -19
  673. pulumi_gcp/dataplex/task_iam_policy.py +21 -16
  674. pulumi_gcp/dataplex/zone.py +29 -24
  675. pulumi_gcp/dataplex/zone_iam_binding.py +24 -19
  676. pulumi_gcp/dataplex/zone_iam_member.py +24 -19
  677. pulumi_gcp/dataplex/zone_iam_policy.py +21 -16
  678. pulumi_gcp/dataproc/_inputs.py +3214 -39
  679. pulumi_gcp/dataproc/autoscaling_policy.py +50 -45
  680. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +24 -19
  681. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +24 -19
  682. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +21 -16
  683. pulumi_gcp/dataproc/cluster.py +109 -104
  684. pulumi_gcp/dataproc/cluster_iam_binding.py +24 -19
  685. pulumi_gcp/dataproc/cluster_iam_member.py +24 -19
  686. pulumi_gcp/dataproc/cluster_iam_policy.py +21 -16
  687. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +5 -0
  688. pulumi_gcp/dataproc/get_cluster_iam_policy.py +5 -0
  689. pulumi_gcp/dataproc/get_job_iam_policy.py +5 -0
  690. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +5 -0
  691. pulumi_gcp/dataproc/get_metastore_service.py +5 -0
  692. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +5 -0
  693. pulumi_gcp/dataproc/job.py +95 -90
  694. pulumi_gcp/dataproc/job_iam_binding.py +24 -19
  695. pulumi_gcp/dataproc/job_iam_member.py +24 -19
  696. pulumi_gcp/dataproc/job_iam_policy.py +21 -16
  697. pulumi_gcp/dataproc/metastore_federation.py +56 -51
  698. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +24 -19
  699. pulumi_gcp/dataproc/metastore_federation_iam_member.py +24 -19
  700. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +21 -16
  701. pulumi_gcp/dataproc/metastore_service.py +239 -234
  702. pulumi_gcp/dataproc/metastore_service_iam_binding.py +24 -19
  703. pulumi_gcp/dataproc/metastore_service_iam_member.py +24 -19
  704. pulumi_gcp/dataproc/metastore_service_iam_policy.py +21 -16
  705. pulumi_gcp/dataproc/outputs.py +5 -0
  706. pulumi_gcp/dataproc/workflow_template.py +112 -107
  707. pulumi_gcp/datastore/_inputs.py +22 -0
  708. pulumi_gcp/datastore/data_store_index.py +26 -21
  709. pulumi_gcp/datastore/outputs.py +5 -0
  710. pulumi_gcp/datastream/_inputs.py +1631 -35
  711. pulumi_gcp/datastream/connection_profile.py +251 -246
  712. pulumi_gcp/datastream/get_static_ips.py +5 -0
  713. pulumi_gcp/datastream/outputs.py +5 -0
  714. pulumi_gcp/datastream/private_connection.py +20 -15
  715. pulumi_gcp/datastream/stream.py +777 -772
  716. pulumi_gcp/deploymentmanager/_inputs.py +66 -0
  717. pulumi_gcp/deploymentmanager/deployment.py +33 -28
  718. pulumi_gcp/deploymentmanager/outputs.py +5 -0
  719. pulumi_gcp/diagflow/_inputs.py +2590 -41
  720. pulumi_gcp/diagflow/agent.py +5 -0
  721. pulumi_gcp/diagflow/cx_agent.py +75 -70
  722. pulumi_gcp/diagflow/cx_entity_type.py +37 -32
  723. pulumi_gcp/diagflow/cx_environment.py +22 -17
  724. pulumi_gcp/diagflow/cx_flow.py +455 -450
  725. pulumi_gcp/diagflow/cx_intent.py +55 -50
  726. pulumi_gcp/diagflow/cx_page.py +718 -713
  727. pulumi_gcp/diagflow/cx_security_settings.py +69 -64
  728. pulumi_gcp/diagflow/cx_test_case.py +197 -192
  729. pulumi_gcp/diagflow/cx_version.py +13 -8
  730. pulumi_gcp/diagflow/cx_webhook.py +27 -22
  731. pulumi_gcp/diagflow/entity_type.py +26 -21
  732. pulumi_gcp/diagflow/fulfillment.py +27 -22
  733. pulumi_gcp/diagflow/intent.py +7 -2
  734. pulumi_gcp/diagflow/outputs.py +5 -0
  735. pulumi_gcp/discoveryengine/_inputs.py +183 -0
  736. pulumi_gcp/discoveryengine/chat_engine.py +37 -32
  737. pulumi_gcp/discoveryengine/data_store.py +32 -27
  738. pulumi_gcp/discoveryengine/outputs.py +5 -0
  739. pulumi_gcp/discoveryengine/search_engine.py +17 -12
  740. pulumi_gcp/dns/_inputs.py +589 -0
  741. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +24 -19
  742. pulumi_gcp/dns/dns_managed_zone_iam_member.py +24 -19
  743. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +21 -16
  744. pulumi_gcp/dns/get_keys.py +13 -8
  745. pulumi_gcp/dns/get_managed_zone.py +5 -0
  746. pulumi_gcp/dns/get_managed_zone_iam_policy.py +5 -0
  747. pulumi_gcp/dns/get_managed_zones.py +5 -0
  748. pulumi_gcp/dns/get_record_set.py +5 -0
  749. pulumi_gcp/dns/managed_zone.py +183 -178
  750. pulumi_gcp/dns/outputs.py +5 -0
  751. pulumi_gcp/dns/policy.py +47 -42
  752. pulumi_gcp/dns/record_set.py +100 -95
  753. pulumi_gcp/dns/response_policy.py +81 -76
  754. pulumi_gcp/dns/response_policy_rule.py +38 -33
  755. pulumi_gcp/edgecontainer/_inputs.py +464 -0
  756. pulumi_gcp/edgecontainer/cluster.py +152 -147
  757. pulumi_gcp/edgecontainer/node_pool.py +109 -104
  758. pulumi_gcp/edgecontainer/outputs.py +5 -0
  759. pulumi_gcp/edgecontainer/vpn_connection.py +36 -31
  760. pulumi_gcp/edgenetwork/network.py +5 -0
  761. pulumi_gcp/edgenetwork/subnet.py +5 -0
  762. pulumi_gcp/endpoints/_inputs.py +101 -0
  763. pulumi_gcp/endpoints/consumers_iam_binding.py +8 -3
  764. pulumi_gcp/endpoints/consumers_iam_member.py +8 -3
  765. pulumi_gcp/endpoints/consumers_iam_policy.py +5 -0
  766. pulumi_gcp/endpoints/get_service_consumers_iam_policy.py +5 -0
  767. pulumi_gcp/endpoints/get_service_iam_policy.py +5 -0
  768. pulumi_gcp/endpoints/outputs.py +5 -0
  769. pulumi_gcp/endpoints/service.py +9 -4
  770. pulumi_gcp/endpoints/service_iam_binding.py +24 -19
  771. pulumi_gcp/endpoints/service_iam_member.py +24 -19
  772. pulumi_gcp/endpoints/service_iam_policy.py +21 -16
  773. pulumi_gcp/essentialcontacts/_inputs.py +313 -0
  774. pulumi_gcp/essentialcontacts/contact.py +5 -0
  775. pulumi_gcp/essentialcontacts/document_ai_processor.py +5 -0
  776. pulumi_gcp/essentialcontacts/document_ai_processor_default_version.py +5 -0
  777. pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +40 -35
  778. pulumi_gcp/essentialcontacts/document_ai_warehouse_location.py +5 -0
  779. pulumi_gcp/essentialcontacts/outputs.py +5 -0
  780. pulumi_gcp/eventarc/_inputs.py +145 -0
  781. pulumi_gcp/eventarc/channel.py +5 -0
  782. pulumi_gcp/eventarc/google_channel_config.py +5 -0
  783. pulumi_gcp/eventarc/outputs.py +5 -0
  784. pulumi_gcp/eventarc/trigger.py +78 -73
  785. pulumi_gcp/filestore/_inputs.py +108 -0
  786. pulumi_gcp/filestore/backup.py +23 -18
  787. pulumi_gcp/filestore/get_instance.py +5 -0
  788. pulumi_gcp/filestore/instance.py +107 -102
  789. pulumi_gcp/filestore/outputs.py +5 -0
  790. pulumi_gcp/filestore/snapshot.py +37 -32
  791. pulumi_gcp/firebase/_inputs.py +511 -0
  792. pulumi_gcp/firebase/android_app.py +21 -16
  793. pulumi_gcp/firebase/app_check_app_attest_config.py +5 -0
  794. pulumi_gcp/firebase/app_check_debug_token.py +5 -0
  795. pulumi_gcp/firebase/app_check_device_check_config.py +5 -0
  796. pulumi_gcp/firebase/app_check_play_integrity_config.py +5 -0
  797. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +5 -0
  798. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +5 -0
  799. pulumi_gcp/firebase/app_check_service_config.py +5 -0
  800. pulumi_gcp/firebase/apple_app.py +15 -10
  801. pulumi_gcp/firebase/database_instance.py +5 -0
  802. pulumi_gcp/firebase/extensions_instance.py +30 -25
  803. pulumi_gcp/firebase/get_android_app.py +5 -0
  804. pulumi_gcp/firebase/get_android_app_config.py +5 -0
  805. pulumi_gcp/firebase/get_apple_app.py +5 -0
  806. pulumi_gcp/firebase/get_apple_app_config.py +5 -0
  807. pulumi_gcp/firebase/get_hosting_channel.py +5 -0
  808. pulumi_gcp/firebase/get_web_app.py +5 -0
  809. pulumi_gcp/firebase/get_web_app_config.py +5 -0
  810. pulumi_gcp/firebase/hosting_channel.py +5 -0
  811. pulumi_gcp/firebase/hosting_custom_domain.py +39 -34
  812. pulumi_gcp/firebase/hosting_release.py +33 -28
  813. pulumi_gcp/firebase/hosting_site.py +5 -0
  814. pulumi_gcp/firebase/hosting_version.py +76 -71
  815. pulumi_gcp/firebase/outputs.py +5 -0
  816. pulumi_gcp/firebase/project.py +5 -0
  817. pulumi_gcp/firebase/storage_bucket.py +5 -0
  818. pulumi_gcp/firebase/web_app.py +15 -10
  819. pulumi_gcp/firebaserules/_inputs.py +51 -0
  820. pulumi_gcp/firebaserules/outputs.py +5 -0
  821. pulumi_gcp/firebaserules/release.py +5 -0
  822. pulumi_gcp/firebaserules/ruleset.py +40 -35
  823. pulumi_gcp/firestore/_inputs.py +154 -0
  824. pulumi_gcp/firestore/backup_schedule.py +23 -18
  825. pulumi_gcp/firestore/database.py +22 -17
  826. pulumi_gcp/firestore/document.py +5 -0
  827. pulumi_gcp/firestore/field.py +63 -58
  828. pulumi_gcp/firestore/index.py +72 -67
  829. pulumi_gcp/firestore/outputs.py +5 -0
  830. pulumi_gcp/folder/_inputs.py +165 -0
  831. pulumi_gcp/folder/access_approval_settings.py +28 -23
  832. pulumi_gcp/folder/get_iam_policy.py +5 -0
  833. pulumi_gcp/folder/get_organization_policy.py +5 -0
  834. pulumi_gcp/folder/iam_audit_config.py +130 -125
  835. pulumi_gcp/folder/iam_binding.py +8 -3
  836. pulumi_gcp/folder/iam_member.py +130 -125
  837. pulumi_gcp/folder/iam_policy.py +125 -120
  838. pulumi_gcp/folder/organization_policy.py +54 -49
  839. pulumi_gcp/folder/outputs.py +5 -0
  840. pulumi_gcp/gkebackup/_inputs.py +694 -0
  841. pulumi_gcp/gkebackup/backup_plan.py +436 -431
  842. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +24 -19
  843. pulumi_gcp/gkebackup/backup_plan_iam_member.py +24 -19
  844. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +21 -16
  845. pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +5 -0
  846. pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +5 -0
  847. pulumi_gcp/gkebackup/outputs.py +5 -0
  848. pulumi_gcp/gkebackup/restore_plan.py +580 -575
  849. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +336 -956
  850. pulumi_gcp/gkebackup/restore_plan_iam_member.py +336 -956
  851. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +243 -953
  852. pulumi_gcp/gkehub/_inputs.py +1204 -6
  853. pulumi_gcp/gkehub/feature.py +319 -314
  854. pulumi_gcp/gkehub/feature_iam_binding.py +24 -19
  855. pulumi_gcp/gkehub/feature_iam_member.py +24 -19
  856. pulumi_gcp/gkehub/feature_iam_policy.py +21 -16
  857. pulumi_gcp/gkehub/feature_membership.py +184 -179
  858. pulumi_gcp/gkehub/fleet.py +24 -19
  859. pulumi_gcp/gkehub/get_feature_iam_policy.py +5 -0
  860. pulumi_gcp/gkehub/get_membership_iam_policy.py +5 -0
  861. pulumi_gcp/gkehub/get_scope_iam_policy.py +5 -0
  862. pulumi_gcp/gkehub/membership.py +57 -52
  863. pulumi_gcp/gkehub/membership_binding.py +17 -12
  864. pulumi_gcp/gkehub/membership_iam_binding.py +24 -19
  865. pulumi_gcp/gkehub/membership_iam_member.py +24 -19
  866. pulumi_gcp/gkehub/membership_iam_policy.py +21 -16
  867. pulumi_gcp/gkehub/membership_rbac_role_binding.py +28 -23
  868. pulumi_gcp/gkehub/namespace.py +7 -2
  869. pulumi_gcp/gkehub/outputs.py +5 -0
  870. pulumi_gcp/gkehub/scope.py +7 -2
  871. pulumi_gcp/gkehub/scope_iam_binding.py +24 -19
  872. pulumi_gcp/gkehub/scope_iam_member.py +24 -19
  873. pulumi_gcp/gkehub/scope_iam_policy.py +21 -16
  874. pulumi_gcp/gkehub/scope_rbac_role_binding.py +18 -13
  875. pulumi_gcp/gkeonprem/_inputs.py +2318 -18
  876. pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +335 -330
  877. pulumi_gcp/gkeonprem/bare_metal_cluster.py +528 -523
  878. pulumi_gcp/gkeonprem/bare_metal_node_pool.py +262 -257
  879. pulumi_gcp/gkeonprem/outputs.py +5 -0
  880. pulumi_gcp/gkeonprem/v_mware_cluster.py +399 -394
  881. pulumi_gcp/gkeonprem/v_mware_node_pool.py +89 -84
  882. pulumi_gcp/healthcare/_inputs.py +359 -0
  883. pulumi_gcp/healthcare/consent_store.py +5 -0
  884. pulumi_gcp/healthcare/consent_store_iam_binding.py +24 -19
  885. pulumi_gcp/healthcare/consent_store_iam_member.py +24 -19
  886. pulumi_gcp/healthcare/consent_store_iam_policy.py +21 -16
  887. pulumi_gcp/healthcare/dataset.py +115 -0
  888. pulumi_gcp/healthcare/dataset_iam_binding.py +24 -19
  889. pulumi_gcp/healthcare/dataset_iam_member.py +24 -19
  890. pulumi_gcp/healthcare/dataset_iam_policy.py +21 -16
  891. pulumi_gcp/healthcare/dicom_store.py +39 -34
  892. pulumi_gcp/healthcare/dicom_store_iam_binding.py +24 -19
  893. pulumi_gcp/healthcare/dicom_store_iam_member.py +24 -19
  894. pulumi_gcp/healthcare/dicom_store_iam_policy.py +21 -16
  895. pulumi_gcp/healthcare/fhir_store.py +62 -57
  896. pulumi_gcp/healthcare/fhir_store_iam_binding.py +24 -19
  897. pulumi_gcp/healthcare/fhir_store_iam_member.py +24 -19
  898. pulumi_gcp/healthcare/fhir_store_iam_policy.py +21 -16
  899. pulumi_gcp/healthcare/get_consent_store_iam_policy.py +5 -0
  900. pulumi_gcp/healthcare/get_dataset_iam_policy.py +5 -0
  901. pulumi_gcp/healthcare/get_dicom_store_iam_policy.py +5 -0
  902. pulumi_gcp/healthcare/get_fhir_store_iam_policy.py +5 -0
  903. pulumi_gcp/healthcare/get_hl7_v2_store_iam_policy.py +5 -0
  904. pulumi_gcp/healthcare/hl7_store.py +46 -41
  905. pulumi_gcp/healthcare/hl7_store_iam_binding.py +24 -19
  906. pulumi_gcp/healthcare/hl7_store_iam_member.py +24 -19
  907. pulumi_gcp/healthcare/hl7_store_iam_policy.py +21 -16
  908. pulumi_gcp/healthcare/outputs.py +48 -0
  909. pulumi_gcp/iam/_inputs.py +433 -0
  910. pulumi_gcp/iam/access_boundary_policy.py +54 -49
  911. pulumi_gcp/iam/deny_policy.py +56 -51
  912. pulumi_gcp/iam/get_rule.py +5 -0
  913. pulumi_gcp/iam/get_testable_permissions.py +5 -0
  914. pulumi_gcp/iam/get_workload_identity_pool.py +5 -0
  915. pulumi_gcp/iam/get_workload_identity_pool_provider.py +5 -0
  916. pulumi_gcp/iam/outputs.py +5 -0
  917. pulumi_gcp/iam/workforce_pool.py +22 -17
  918. pulumi_gcp/iam/workforce_pool_provider.py +184 -179
  919. pulumi_gcp/iam/workload_identity_pool.py +5 -0
  920. pulumi_gcp/iam/workload_identity_pool_provider.py +68 -63
  921. pulumi_gcp/iap/_inputs.py +411 -0
  922. pulumi_gcp/iap/app_engine_service_iam_binding.py +102 -97
  923. pulumi_gcp/iap/app_engine_service_iam_member.py +102 -97
  924. pulumi_gcp/iap/app_engine_service_iam_policy.py +97 -92
  925. pulumi_gcp/iap/app_engine_version_iam_binding.py +102 -97
  926. pulumi_gcp/iap/app_engine_version_iam_member.py +102 -97
  927. pulumi_gcp/iap/app_engine_version_iam_policy.py +97 -92
  928. pulumi_gcp/iap/brand.py +5 -0
  929. pulumi_gcp/iap/client.py +5 -0
  930. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +5 -0
  931. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +5 -0
  932. pulumi_gcp/iap/get_client.py +5 -0
  933. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +5 -0
  934. pulumi_gcp/iap/get_tunnel_iam_policy.py +5 -0
  935. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +5 -0
  936. pulumi_gcp/iap/get_web_backend_service_iam_policy.py +5 -0
  937. pulumi_gcp/iap/get_web_iam_policy.py +5 -0
  938. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +5 -0
  939. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +5 -0
  940. pulumi_gcp/iap/get_web_type_compute_iam_policy.py +5 -0
  941. pulumi_gcp/iap/outputs.py +5 -0
  942. pulumi_gcp/iap/tunnel_dest_group.py +5 -0
  943. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +102 -97
  944. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +102 -97
  945. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +97 -92
  946. pulumi_gcp/iap/tunnel_iam_binding.py +102 -97
  947. pulumi_gcp/iap/tunnel_iam_member.py +102 -97
  948. pulumi_gcp/iap/tunnel_iam_policy.py +97 -92
  949. pulumi_gcp/iap/tunnel_instance_iam_binding.py +102 -97
  950. pulumi_gcp/iap/tunnel_instance_iam_member.py +102 -97
  951. pulumi_gcp/iap/tunnel_instance_iam_policy.py +97 -92
  952. pulumi_gcp/iap/web_backend_service_iam_binding.py +102 -97
  953. pulumi_gcp/iap/web_backend_service_iam_member.py +102 -97
  954. pulumi_gcp/iap/web_backend_service_iam_policy.py +97 -92
  955. pulumi_gcp/iap/web_iam_binding.py +102 -97
  956. pulumi_gcp/iap/web_iam_member.py +102 -97
  957. pulumi_gcp/iap/web_iam_policy.py +97 -92
  958. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +102 -97
  959. pulumi_gcp/iap/web_region_backend_service_iam_member.py +102 -97
  960. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +97 -92
  961. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +102 -97
  962. pulumi_gcp/iap/web_type_app_enging_iam_member.py +102 -97
  963. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +97 -92
  964. pulumi_gcp/iap/web_type_compute_iam_binding.py +102 -97
  965. pulumi_gcp/iap/web_type_compute_iam_member.py +102 -97
  966. pulumi_gcp/iap/web_type_compute_iam_policy.py +97 -92
  967. pulumi_gcp/identityplatform/_inputs.py +576 -0
  968. pulumi_gcp/identityplatform/config.py +120 -115
  969. pulumi_gcp/identityplatform/default_supported_idp_config.py +5 -0
  970. pulumi_gcp/identityplatform/inbound_saml_config.py +39 -34
  971. pulumi_gcp/identityplatform/oauth_idp_config.py +5 -0
  972. pulumi_gcp/identityplatform/outputs.py +5 -0
  973. pulumi_gcp/identityplatform/project_default_config.py +38 -33
  974. pulumi_gcp/identityplatform/tenant.py +5 -0
  975. pulumi_gcp/identityplatform/tenant_default_supported_idp_config.py +5 -0
  976. pulumi_gcp/identityplatform/tenant_inbound_saml_config.py +39 -34
  977. pulumi_gcp/identityplatform/tenant_oauth_idp_config.py +5 -0
  978. pulumi_gcp/integrationconnectors/_inputs.py +868 -0
  979. pulumi_gcp/integrationconnectors/connection.py +465 -460
  980. pulumi_gcp/integrationconnectors/endpoint_attachment.py +5 -0
  981. pulumi_gcp/integrationconnectors/managed_zone.py +15 -10
  982. pulumi_gcp/integrationconnectors/outputs.py +5 -0
  983. pulumi_gcp/kms/_inputs.py +303 -0
  984. pulumi_gcp/kms/autokey_config.py +5 -0
  985. pulumi_gcp/kms/crypto_key.py +18 -13
  986. pulumi_gcp/kms/crypto_key_iam_binding.py +56 -51
  987. pulumi_gcp/kms/crypto_key_iam_member.py +56 -51
  988. pulumi_gcp/kms/crypto_key_iam_policy.py +51 -46
  989. pulumi_gcp/kms/crypto_key_version.py +12 -7
  990. pulumi_gcp/kms/ekm_connection.py +24 -19
  991. pulumi_gcp/kms/get_crypto_key_iam_policy.py +5 -0
  992. pulumi_gcp/kms/get_key_ring_iam_policy.py +5 -0
  993. pulumi_gcp/kms/get_kms_crypto_key.py +5 -0
  994. pulumi_gcp/kms/get_kms_crypto_key_version.py +5 -0
  995. pulumi_gcp/kms/get_kms_key_ring.py +5 -0
  996. pulumi_gcp/kms/get_kms_secret.py +11 -6
  997. pulumi_gcp/kms/get_kms_secret_asymmetric.py +17 -12
  998. pulumi_gcp/kms/get_kms_secret_ciphertext.py +23 -18
  999. pulumi_gcp/kms/key_handle.py +5 -0
  1000. pulumi_gcp/kms/key_ring.py +5 -0
  1001. pulumi_gcp/kms/key_ring_iam_binding.py +102 -97
  1002. pulumi_gcp/kms/key_ring_iam_member.py +102 -97
  1003. pulumi_gcp/kms/key_ring_iam_policy.py +97 -92
  1004. pulumi_gcp/kms/key_ring_import_job.py +9 -4
  1005. pulumi_gcp/kms/outputs.py +5 -0
  1006. pulumi_gcp/kms/secret_ciphertext.py +23 -18
  1007. pulumi_gcp/logging/_inputs.py +520 -0
  1008. pulumi_gcp/logging/billing_account_bucket_config.py +16 -11
  1009. pulumi_gcp/logging/billing_account_exclusion.py +5 -0
  1010. pulumi_gcp/logging/billing_account_sink.py +15 -10
  1011. pulumi_gcp/logging/folder_bucket_config.py +16 -11
  1012. pulumi_gcp/logging/folder_exclusion.py +5 -0
  1013. pulumi_gcp/logging/folder_settings.py +5 -0
  1014. pulumi_gcp/logging/folder_sink.py +15 -10
  1015. pulumi_gcp/logging/get_folder_settings.py +5 -0
  1016. pulumi_gcp/logging/get_log_view_iam_policy.py +5 -0
  1017. pulumi_gcp/logging/get_organization_settings.py +5 -0
  1018. pulumi_gcp/logging/get_project_cmek_settings.py +5 -0
  1019. pulumi_gcp/logging/get_project_settings.py +5 -0
  1020. pulumi_gcp/logging/get_sink.py +5 -0
  1021. pulumi_gcp/logging/linked_dataset.py +10 -5
  1022. pulumi_gcp/logging/log_view.py +5 -0
  1023. pulumi_gcp/logging/log_view_iam_binding.py +10 -5
  1024. pulumi_gcp/logging/log_view_iam_member.py +10 -5
  1025. pulumi_gcp/logging/log_view_iam_policy.py +5 -0
  1026. pulumi_gcp/logging/metric.py +97 -92
  1027. pulumi_gcp/logging/organization_bucket_config.py +16 -11
  1028. pulumi_gcp/logging/organization_exclusion.py +5 -0
  1029. pulumi_gcp/logging/organization_settings.py +5 -0
  1030. pulumi_gcp/logging/organization_sink.py +15 -10
  1031. pulumi_gcp/logging/outputs.py +5 -0
  1032. pulumi_gcp/logging/project_bucket_config.py +21 -16
  1033. pulumi_gcp/logging/project_exclusion.py +5 -0
  1034. pulumi_gcp/logging/project_sink.py +15 -10
  1035. pulumi_gcp/looker/_inputs.py +211 -0
  1036. pulumi_gcp/looker/instance.py +204 -199
  1037. pulumi_gcp/looker/outputs.py +5 -0
  1038. pulumi_gcp/managedkafka/_inputs.py +69 -0
  1039. pulumi_gcp/managedkafka/cluster.py +72 -67
  1040. pulumi_gcp/managedkafka/outputs.py +5 -0
  1041. pulumi_gcp/managedkafka/topic.py +27 -22
  1042. pulumi_gcp/memcache/_inputs.py +184 -0
  1043. pulumi_gcp/memcache/instance.py +56 -51
  1044. pulumi_gcp/memcache/outputs.py +5 -0
  1045. pulumi_gcp/migrationcenter/_inputs.py +182 -0
  1046. pulumi_gcp/migrationcenter/group.py +5 -0
  1047. pulumi_gcp/migrationcenter/outputs.py +5 -0
  1048. pulumi_gcp/migrationcenter/preference_set.py +82 -77
  1049. pulumi_gcp/ml/_inputs.py +17 -0
  1050. pulumi_gcp/ml/engine_model.py +10 -5
  1051. pulumi_gcp/ml/outputs.py +5 -0
  1052. pulumi_gcp/monitoring/_inputs.py +1778 -62
  1053. pulumi_gcp/monitoring/alert_policy.py +128 -123
  1054. pulumi_gcp/monitoring/custom_service.py +16 -11
  1055. pulumi_gcp/monitoring/dashboard.py +5 -0
  1056. pulumi_gcp/monitoring/generic_service.py +20 -15
  1057. pulumi_gcp/monitoring/get_app_engine_service.py +21 -16
  1058. pulumi_gcp/monitoring/get_cluster_istio_service.py +5 -0
  1059. pulumi_gcp/monitoring/get_istio_canonical_service.py +5 -0
  1060. pulumi_gcp/monitoring/get_mesh_istio_service.py +5 -0
  1061. pulumi_gcp/monitoring/get_notification_channel.py +29 -24
  1062. pulumi_gcp/monitoring/get_secret_version.py +5 -0
  1063. pulumi_gcp/monitoring/get_uptime_check_i_ps.py +5 -0
  1064. pulumi_gcp/monitoring/group.py +5 -0
  1065. pulumi_gcp/monitoring/metric_descriptor.py +49 -44
  1066. pulumi_gcp/monitoring/monitored_project.py +5 -0
  1067. pulumi_gcp/monitoring/notification_channel.py +16 -11
  1068. pulumi_gcp/monitoring/outputs.py +68 -0
  1069. pulumi_gcp/monitoring/slo.py +120 -115
  1070. pulumi_gcp/monitoring/uptime_check_config.py +241 -236
  1071. pulumi_gcp/netapp/_inputs.py +311 -0
  1072. pulumi_gcp/netapp/active_directory.py +5 -0
  1073. pulumi_gcp/netapp/backup.py +11 -6
  1074. pulumi_gcp/netapp/backup_policy.py +5 -0
  1075. pulumi_gcp/netapp/backup_vault.py +5 -0
  1076. pulumi_gcp/netapp/kmsconfig.py +5 -0
  1077. pulumi_gcp/netapp/outputs.py +5 -0
  1078. pulumi_gcp/netapp/storage_pool.py +5 -0
  1079. pulumi_gcp/netapp/volume.py +27 -22
  1080. pulumi_gcp/netapp/volume_replication.py +24 -19
  1081. pulumi_gcp/netapp/volume_snapshot.py +5 -0
  1082. pulumi_gcp/networkconnectivity/_inputs.py +253 -0
  1083. pulumi_gcp/networkconnectivity/hub.py +7 -2
  1084. pulumi_gcp/networkconnectivity/internal_range.py +5 -0
  1085. pulumi_gcp/networkconnectivity/outputs.py +5 -0
  1086. pulumi_gcp/networkconnectivity/policy_based_route.py +46 -41
  1087. pulumi_gcp/networkconnectivity/regional_endpoint.py +5 -0
  1088. pulumi_gcp/networkconnectivity/service_connection_policy.py +20 -15
  1089. pulumi_gcp/networkconnectivity/spoke.py +71 -66
  1090. pulumi_gcp/networkmanagement/_inputs.py +87 -0
  1091. pulumi_gcp/networkmanagement/connectivity_test.py +85 -80
  1092. pulumi_gcp/networkmanagement/outputs.py +5 -0
  1093. pulumi_gcp/networksecurity/_inputs.py +321 -0
  1094. pulumi_gcp/networksecurity/address_group.py +5 -0
  1095. pulumi_gcp/networksecurity/address_group_iam_binding.py +297 -5
  1096. pulumi_gcp/networksecurity/address_group_iam_member.py +297 -5
  1097. pulumi_gcp/networksecurity/address_group_iam_policy.py +5 -0
  1098. pulumi_gcp/networksecurity/authorization_policy.py +52 -47
  1099. pulumi_gcp/networksecurity/client_tls_policy.py +45 -40
  1100. pulumi_gcp/networksecurity/firewall_endpoint.py +5 -0
  1101. pulumi_gcp/networksecurity/firewall_endpoint_association.py +5 -0
  1102. pulumi_gcp/networksecurity/gateway_security_policy.py +91 -86
  1103. pulumi_gcp/networksecurity/gateway_security_policy_rule.py +5 -0
  1104. pulumi_gcp/networksecurity/get_address_group_iam_policy.py +5 -0
  1105. pulumi_gcp/networksecurity/outputs.py +5 -0
  1106. pulumi_gcp/networksecurity/security_profile.py +40 -35
  1107. pulumi_gcp/networksecurity/security_profile_group.py +5 -0
  1108. pulumi_gcp/networksecurity/server_tls_policy.py +101 -96
  1109. pulumi_gcp/networksecurity/tls_inspection_policy.py +193 -188
  1110. pulumi_gcp/networksecurity/url_list.py +5 -0
  1111. pulumi_gcp/networkservices/_inputs.py +1781 -29
  1112. pulumi_gcp/networkservices/edge_cache_keyset.py +51 -46
  1113. pulumi_gcp/networkservices/edge_cache_origin.py +89 -84
  1114. pulumi_gcp/networkservices/edge_cache_service.py +567 -562
  1115. pulumi_gcp/networkservices/endpoint_policy.py +55 -50
  1116. pulumi_gcp/networkservices/gateway.py +21 -16
  1117. pulumi_gcp/networkservices/grpc_route.py +146 -141
  1118. pulumi_gcp/networkservices/http_route.py +294 -289
  1119. pulumi_gcp/networkservices/lb_route_extension.py +10 -5
  1120. pulumi_gcp/networkservices/lb_traffic_extension.py +10 -5
  1121. pulumi_gcp/networkservices/mesh.py +5 -0
  1122. pulumi_gcp/networkservices/outputs.py +5 -0
  1123. pulumi_gcp/networkservices/service_binding.py +5 -0
  1124. pulumi_gcp/networkservices/service_lb_policies.py +27 -22
  1125. pulumi_gcp/networkservices/tcp_route.py +106 -101
  1126. pulumi_gcp/networkservices/tls_route.py +82 -77
  1127. pulumi_gcp/notebooks/_inputs.py +615 -0
  1128. pulumi_gcp/notebooks/environment.py +21 -16
  1129. pulumi_gcp/notebooks/get_instance_iam_policy.py +5 -0
  1130. pulumi_gcp/notebooks/get_runtime_iam_policy.py +5 -0
  1131. pulumi_gcp/notebooks/instance.py +78 -73
  1132. pulumi_gcp/notebooks/instance_iam_binding.py +24 -19
  1133. pulumi_gcp/notebooks/instance_iam_member.py +24 -19
  1134. pulumi_gcp/notebooks/instance_iam_policy.py +21 -16
  1135. pulumi_gcp/notebooks/location.py +5 -0
  1136. pulumi_gcp/notebooks/outputs.py +5 -0
  1137. pulumi_gcp/notebooks/runtime.py +222 -217
  1138. pulumi_gcp/notebooks/runtime_iam_binding.py +24 -19
  1139. pulumi_gcp/notebooks/runtime_iam_member.py +24 -19
  1140. pulumi_gcp/notebooks/runtime_iam_policy.py +21 -16
  1141. pulumi_gcp/organizations/_inputs.py +231 -0
  1142. pulumi_gcp/organizations/access_approval_settings.py +36 -31
  1143. pulumi_gcp/organizations/folder.py +5 -0
  1144. pulumi_gcp/organizations/get_active_folder.py +5 -0
  1145. pulumi_gcp/organizations/get_billing_account.py +5 -0
  1146. pulumi_gcp/organizations/get_client_config.py +5 -0
  1147. pulumi_gcp/organizations/get_client_open_id_user_info.py +5 -0
  1148. pulumi_gcp/organizations/get_folder.py +5 -0
  1149. pulumi_gcp/organizations/get_folders.py +5 -0
  1150. pulumi_gcp/organizations/get_iam_policy.py +13 -8
  1151. pulumi_gcp/organizations/get_organization.py +5 -0
  1152. pulumi_gcp/organizations/get_project.py +5 -0
  1153. pulumi_gcp/organizations/iam_audit_config.py +18 -13
  1154. pulumi_gcp/organizations/iam_binding.py +8 -3
  1155. pulumi_gcp/organizations/iam_custom_role.py +5 -0
  1156. pulumi_gcp/organizations/iam_member.py +130 -125
  1157. pulumi_gcp/organizations/iam_policy.py +125 -120
  1158. pulumi_gcp/organizations/outputs.py +5 -0
  1159. pulumi_gcp/organizations/policy.py +54 -49
  1160. pulumi_gcp/organizations/project.py +5 -0
  1161. pulumi_gcp/orgpolicy/_inputs.py +183 -0
  1162. pulumi_gcp/orgpolicy/custom_constraint.py +15 -10
  1163. pulumi_gcp/orgpolicy/outputs.py +5 -0
  1164. pulumi_gcp/orgpolicy/policy.py +103 -98
  1165. pulumi_gcp/osconfig/_inputs.py +2235 -30
  1166. pulumi_gcp/osconfig/guest_policies.py +171 -166
  1167. pulumi_gcp/osconfig/os_policy_assignment.py +158 -153
  1168. pulumi_gcp/osconfig/outputs.py +5 -0
  1169. pulumi_gcp/osconfig/patch_deployment.py +326 -321
  1170. pulumi_gcp/oslogin/ssh_public_key.py +5 -0
  1171. pulumi_gcp/parallelstore/instance.py +5 -0
  1172. pulumi_gcp/privilegedaccessmanager/_inputs.py +170 -0
  1173. pulumi_gcp/privilegedaccessmanager/entitlement.py +94 -89
  1174. pulumi_gcp/privilegedaccessmanager/outputs.py +5 -0
  1175. pulumi_gcp/projects/_inputs.py +262 -0
  1176. pulumi_gcp/projects/access_approval_settings.py +30 -25
  1177. pulumi_gcp/projects/api_key.py +88 -83
  1178. pulumi_gcp/projects/default_service_accounts.py +5 -0
  1179. pulumi_gcp/projects/get_iam_policy.py +5 -0
  1180. pulumi_gcp/projects/get_organization_policy.py +5 -0
  1181. pulumi_gcp/projects/get_project.py +5 -0
  1182. pulumi_gcp/projects/get_project_service.py +5 -0
  1183. pulumi_gcp/projects/iam_audit_config.py +130 -125
  1184. pulumi_gcp/projects/iam_binding.py +130 -125
  1185. pulumi_gcp/projects/iam_custom_role.py +5 -0
  1186. pulumi_gcp/projects/iam_member.py +130 -125
  1187. pulumi_gcp/projects/iam_member_remove.py +5 -0
  1188. pulumi_gcp/projects/iam_policy.py +125 -120
  1189. pulumi_gcp/projects/organization_policy.py +54 -49
  1190. pulumi_gcp/projects/outputs.py +5 -0
  1191. pulumi_gcp/projects/service.py +5 -0
  1192. pulumi_gcp/projects/service_identity.py +5 -0
  1193. pulumi_gcp/projects/usage_export_bucket.py +5 -0
  1194. pulumi_gcp/provider.py +7 -2
  1195. pulumi_gcp/pubsub/_inputs.py +438 -0
  1196. pulumi_gcp/pubsub/get_schema_iam_policy.py +5 -0
  1197. pulumi_gcp/pubsub/get_subscription.py +5 -0
  1198. pulumi_gcp/pubsub/get_subscription_iam_policy.py +5 -0
  1199. pulumi_gcp/pubsub/get_topic.py +5 -0
  1200. pulumi_gcp/pubsub/get_topic_iam_policy.py +5 -0
  1201. pulumi_gcp/pubsub/lite_reservation.py +5 -0
  1202. pulumi_gcp/pubsub/lite_subscription.py +36 -31
  1203. pulumi_gcp/pubsub/lite_topic.py +46 -41
  1204. pulumi_gcp/pubsub/outputs.py +5 -0
  1205. pulumi_gcp/pubsub/schema.py +13 -8
  1206. pulumi_gcp/pubsub/schema_iam_binding.py +24 -19
  1207. pulumi_gcp/pubsub/schema_iam_member.py +24 -19
  1208. pulumi_gcp/pubsub/schema_iam_policy.py +21 -16
  1209. pulumi_gcp/pubsub/subscription.py +141 -136
  1210. pulumi_gcp/pubsub/subscription_iam_binding.py +24 -19
  1211. pulumi_gcp/pubsub/subscription_iam_member.py +24 -19
  1212. pulumi_gcp/pubsub/subscription_iam_policy.py +21 -16
  1213. pulumi_gcp/pubsub/topic.py +50 -45
  1214. pulumi_gcp/pubsub/topic_iam_binding.py +24 -19
  1215. pulumi_gcp/pubsub/topic_iam_member.py +24 -19
  1216. pulumi_gcp/pubsub/topic_iam_policy.py +21 -16
  1217. pulumi_gcp/pulumi-plugin.json +1 -1
  1218. pulumi_gcp/recaptcha/_inputs.py +89 -0
  1219. pulumi_gcp/recaptcha/enterprise_key.py +132 -127
  1220. pulumi_gcp/recaptcha/outputs.py +5 -0
  1221. pulumi_gcp/redis/_inputs.py +321 -0
  1222. pulumi_gcp/redis/cluster.py +59 -54
  1223. pulumi_gcp/redis/get_instance.py +5 -0
  1224. pulumi_gcp/redis/instance.py +51 -46
  1225. pulumi_gcp/redis/outputs.py +5 -0
  1226. pulumi_gcp/resourcemanager/lien.py +5 -0
  1227. pulumi_gcp/runtimeconfig/_inputs.py +25 -0
  1228. pulumi_gcp/runtimeconfig/config.py +5 -0
  1229. pulumi_gcp/runtimeconfig/config_iam_binding.py +8 -3
  1230. pulumi_gcp/runtimeconfig/config_iam_member.py +8 -3
  1231. pulumi_gcp/runtimeconfig/config_iam_policy.py +5 -0
  1232. pulumi_gcp/runtimeconfig/get_config.py +5 -0
  1233. pulumi_gcp/runtimeconfig/get_config_iam_policy.py +5 -0
  1234. pulumi_gcp/runtimeconfig/get_variable.py +5 -0
  1235. pulumi_gcp/runtimeconfig/outputs.py +5 -0
  1236. pulumi_gcp/runtimeconfig/variable.py +5 -0
  1237. pulumi_gcp/secretmanager/_inputs.py +143 -0
  1238. pulumi_gcp/secretmanager/get_secret.py +5 -0
  1239. pulumi_gcp/secretmanager/get_secret_iam_policy.py +5 -0
  1240. pulumi_gcp/secretmanager/get_secret_version.py +5 -0
  1241. pulumi_gcp/secretmanager/get_secret_version_access.py +5 -0
  1242. pulumi_gcp/secretmanager/get_secrets.py +5 -0
  1243. pulumi_gcp/secretmanager/outputs.py +5 -0
  1244. pulumi_gcp/secretmanager/secret.py +68 -63
  1245. pulumi_gcp/secretmanager/secret_iam_binding.py +102 -97
  1246. pulumi_gcp/secretmanager/secret_iam_member.py +102 -97
  1247. pulumi_gcp/secretmanager/secret_iam_policy.py +97 -92
  1248. pulumi_gcp/secretmanager/secret_version.py +53 -48
  1249. pulumi_gcp/securesourcemanager/_inputs.py +75 -0
  1250. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +5 -0
  1251. pulumi_gcp/securesourcemanager/instance.py +78 -73
  1252. pulumi_gcp/securesourcemanager/instance_iam_binding.py +8 -3
  1253. pulumi_gcp/securesourcemanager/instance_iam_member.py +8 -3
  1254. pulumi_gcp/securesourcemanager/instance_iam_policy.py +5 -0
  1255. pulumi_gcp/securesourcemanager/outputs.py +5 -0
  1256. pulumi_gcp/securitycenter/_inputs.py +860 -7
  1257. pulumi_gcp/securitycenter/event_threat_detection_custom_module.py +5 -0
  1258. pulumi_gcp/securitycenter/folder_custom_module.py +82 -77
  1259. pulumi_gcp/securitycenter/get_source_iam_policy.py +5 -0
  1260. pulumi_gcp/securitycenter/instance_iam_binding.py +102 -33
  1261. pulumi_gcp/securitycenter/instance_iam_member.py +102 -33
  1262. pulumi_gcp/securitycenter/instance_iam_policy.py +99 -30
  1263. pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +82 -77
  1264. pulumi_gcp/securitycenter/management_organization_event_threat_detection_custom_module.py +5 -0
  1265. pulumi_gcp/securitycenter/management_organization_security_health_analytics_custom_module.py +82 -77
  1266. pulumi_gcp/securitycenter/management_project_security_health_analytics_custom_module.py +82 -77
  1267. pulumi_gcp/securitycenter/mute_config.py +5 -0
  1268. pulumi_gcp/securitycenter/notification_config.py +16 -11
  1269. pulumi_gcp/securitycenter/organization_custom_module.py +82 -77
  1270. pulumi_gcp/securitycenter/outputs.py +5 -0
  1271. pulumi_gcp/securitycenter/project_custom_module.py +82 -77
  1272. pulumi_gcp/securitycenter/source.py +5 -0
  1273. pulumi_gcp/securitycenter/source_iam_binding.py +8 -3
  1274. pulumi_gcp/securitycenter/source_iam_member.py +8 -3
  1275. pulumi_gcp/securitycenter/source_iam_policy.py +5 -0
  1276. pulumi_gcp/securityposture/_inputs.py +457 -0
  1277. pulumi_gcp/securityposture/outputs.py +5 -0
  1278. pulumi_gcp/securityposture/posture.py +186 -181
  1279. pulumi_gcp/securityposture/posture_deployment.py +35 -30
  1280. pulumi_gcp/serviceaccount/_inputs.py +51 -0
  1281. pulumi_gcp/serviceaccount/account.py +5 -0
  1282. pulumi_gcp/serviceaccount/get_account.py +5 -0
  1283. pulumi_gcp/serviceaccount/get_account_access_token.py +5 -0
  1284. pulumi_gcp/serviceaccount/get_account_id_token.py +5 -0
  1285. pulumi_gcp/serviceaccount/get_account_jwt.py +5 -0
  1286. pulumi_gcp/serviceaccount/get_account_key.py +5 -0
  1287. pulumi_gcp/serviceaccount/get_iam_policy.py +5 -0
  1288. pulumi_gcp/serviceaccount/iam_binding.py +66 -61
  1289. pulumi_gcp/serviceaccount/iam_member.py +66 -61
  1290. pulumi_gcp/serviceaccount/iam_policy.py +61 -56
  1291. pulumi_gcp/serviceaccount/key.py +5 -0
  1292. pulumi_gcp/serviceaccount/outputs.py +5 -0
  1293. pulumi_gcp/servicedirectory/_inputs.py +43 -0
  1294. pulumi_gcp/servicedirectory/endpoint.py +5 -0
  1295. pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +5 -0
  1296. pulumi_gcp/servicedirectory/get_service_iam_policy.py +5 -0
  1297. pulumi_gcp/servicedirectory/namespace.py +5 -0
  1298. pulumi_gcp/servicedirectory/namespace_iam_binding.py +24 -19
  1299. pulumi_gcp/servicedirectory/namespace_iam_member.py +24 -19
  1300. pulumi_gcp/servicedirectory/namespace_iam_policy.py +21 -16
  1301. pulumi_gcp/servicedirectory/outputs.py +5 -0
  1302. pulumi_gcp/servicedirectory/service.py +5 -0
  1303. pulumi_gcp/servicedirectory/service_iam_binding.py +24 -19
  1304. pulumi_gcp/servicedirectory/service_iam_member.py +24 -19
  1305. pulumi_gcp/servicedirectory/service_iam_policy.py +21 -16
  1306. pulumi_gcp/servicenetworking/connection.py +5 -0
  1307. pulumi_gcp/servicenetworking/get_peered_dns_domain.py +5 -0
  1308. pulumi_gcp/servicenetworking/peered_dns_domain.py +5 -0
  1309. pulumi_gcp/servicenetworking/vpc_service_controls.py +5 -0
  1310. pulumi_gcp/serviceusage/consumer_quota_override.py +5 -0
  1311. pulumi_gcp/sourcerepo/_inputs.py +49 -0
  1312. pulumi_gcp/sourcerepo/get_repository.py +5 -0
  1313. pulumi_gcp/sourcerepo/get_repository_iam_policy.py +5 -0
  1314. pulumi_gcp/sourcerepo/outputs.py +5 -0
  1315. pulumi_gcp/sourcerepo/repository.py +20 -15
  1316. pulumi_gcp/sourcerepo/repository_iam_binding.py +116 -102
  1317. pulumi_gcp/sourcerepo/repository_iam_member.py +116 -102
  1318. pulumi_gcp/sourcerepo/repository_iam_policy.py +106 -92
  1319. pulumi_gcp/spanner/_inputs.py +157 -0
  1320. pulumi_gcp/spanner/database.py +10 -5
  1321. pulumi_gcp/spanner/database_iam_binding.py +102 -97
  1322. pulumi_gcp/spanner/database_iam_member.py +102 -97
  1323. pulumi_gcp/spanner/database_iam_policy.py +97 -92
  1324. pulumi_gcp/spanner/get_database_iam_policy.py +5 -0
  1325. pulumi_gcp/spanner/get_instance.py +5 -0
  1326. pulumi_gcp/spanner/get_instance_iam_policy.py +5 -0
  1327. pulumi_gcp/spanner/instance.py +30 -25
  1328. pulumi_gcp/spanner/instance_config.py +10 -5
  1329. pulumi_gcp/spanner/instance_iam_binding.py +24 -19
  1330. pulumi_gcp/spanner/instance_iam_member.py +24 -19
  1331. pulumi_gcp/spanner/instance_iam_policy.py +21 -16
  1332. pulumi_gcp/spanner/outputs.py +5 -0
  1333. pulumi_gcp/sql/_inputs.py +616 -0
  1334. pulumi_gcp/sql/database.py +17 -12
  1335. pulumi_gcp/sql/database_instance.py +93 -88
  1336. pulumi_gcp/sql/get_backup_run.py +5 -0
  1337. pulumi_gcp/sql/get_ca_certs.py +5 -0
  1338. pulumi_gcp/sql/get_database.py +5 -0
  1339. pulumi_gcp/sql/get_database_instance.py +5 -0
  1340. pulumi_gcp/sql/get_database_instance_latest_recovery_time.py +5 -0
  1341. pulumi_gcp/sql/get_database_instances.py +5 -0
  1342. pulumi_gcp/sql/get_databases.py +5 -0
  1343. pulumi_gcp/sql/get_tiers.py +5 -0
  1344. pulumi_gcp/sql/outputs.py +5 -0
  1345. pulumi_gcp/sql/source_representation_instance.py +5 -0
  1346. pulumi_gcp/sql/ssl_cert.py +11 -6
  1347. pulumi_gcp/sql/user.py +43 -38
  1348. pulumi_gcp/storage/__init__.py +5 -0
  1349. pulumi_gcp/storage/_inputs.py +960 -2
  1350. pulumi_gcp/storage/bucket.py +125 -120
  1351. pulumi_gcp/storage/bucket_access_control.py +5 -0
  1352. pulumi_gcp/storage/bucket_acl.py +5 -0
  1353. pulumi_gcp/storage/bucket_iam_binding.py +102 -97
  1354. pulumi_gcp/storage/bucket_iam_member.py +102 -97
  1355. pulumi_gcp/storage/bucket_iam_policy.py +97 -92
  1356. pulumi_gcp/storage/bucket_object.py +15 -10
  1357. pulumi_gcp/storage/default_object_access_control.py +7 -2
  1358. pulumi_gcp/storage/default_object_acl.py +5 -0
  1359. pulumi_gcp/storage/get_bucket.py +5 -0
  1360. pulumi_gcp/storage/get_bucket_iam_policy.py +5 -0
  1361. pulumi_gcp/storage/get_bucket_object.py +5 -0
  1362. pulumi_gcp/storage/get_bucket_object_content.py +5 -0
  1363. pulumi_gcp/storage/get_bucket_objects.py +5 -0
  1364. pulumi_gcp/storage/get_buckets.py +5 -0
  1365. pulumi_gcp/storage/get_managed_folder_iam_policy.py +115 -0
  1366. pulumi_gcp/storage/get_object_signed_url.py +5 -0
  1367. pulumi_gcp/storage/get_project_service_account.py +11 -6
  1368. pulumi_gcp/storage/get_transfer_project_service_account.py +5 -0
  1369. pulumi_gcp/storage/get_transfer_project_servie_account.py +5 -0
  1370. pulumi_gcp/storage/hmac_key.py +5 -0
  1371. pulumi_gcp/storage/insights_report_config.py +76 -71
  1372. pulumi_gcp/storage/managed_folder.py +440 -0
  1373. pulumi_gcp/storage/managed_folder_iam_binding.py +947 -0
  1374. pulumi_gcp/storage/managed_folder_iam_member.py +947 -0
  1375. pulumi_gcp/storage/managed_folder_iam_policy.py +766 -0
  1376. pulumi_gcp/storage/notification.py +5 -0
  1377. pulumi_gcp/storage/object_access_control.py +7 -2
  1378. pulumi_gcp/storage/object_acl.py +5 -0
  1379. pulumi_gcp/storage/outputs.py +81 -0
  1380. pulumi_gcp/storage/transfer_agent_pool.py +16 -11
  1381. pulumi_gcp/storage/transfer_job.py +113 -108
  1382. pulumi_gcp/tags/_inputs.py +43 -0
  1383. pulumi_gcp/tags/get_tag_key.py +5 -0
  1384. pulumi_gcp/tags/get_tag_key_iam_policy.py +5 -0
  1385. pulumi_gcp/tags/get_tag_keys.py +5 -0
  1386. pulumi_gcp/tags/get_tag_value.py +5 -0
  1387. pulumi_gcp/tags/get_tag_value_iam_policy.py +5 -0
  1388. pulumi_gcp/tags/get_tag_values.py +5 -0
  1389. pulumi_gcp/tags/location_tag_binding.py +5 -0
  1390. pulumi_gcp/tags/outputs.py +5 -0
  1391. pulumi_gcp/tags/tag_binding.py +5 -0
  1392. pulumi_gcp/tags/tag_key.py +5 -0
  1393. pulumi_gcp/tags/tag_key_iam_binding.py +24 -19
  1394. pulumi_gcp/tags/tag_key_iam_member.py +24 -19
  1395. pulumi_gcp/tags/tag_key_iam_policy.py +21 -16
  1396. pulumi_gcp/tags/tag_value.py +5 -0
  1397. pulumi_gcp/tags/tag_value_iam_binding.py +24 -19
  1398. pulumi_gcp/tags/tag_value_iam_member.py +24 -19
  1399. pulumi_gcp/tags/tag_value_iam_policy.py +21 -16
  1400. pulumi_gcp/tpu/_inputs.py +194 -0
  1401. pulumi_gcp/tpu/get_tensorflow_versions.py +5 -0
  1402. pulumi_gcp/tpu/get_v2_accelerator_types.py +5 -0
  1403. pulumi_gcp/tpu/get_v2_runtime_versions.py +5 -0
  1404. pulumi_gcp/tpu/node.py +18 -13
  1405. pulumi_gcp/tpu/outputs.py +5 -0
  1406. pulumi_gcp/tpu/v2_vm.py +87 -82
  1407. pulumi_gcp/vertex/_inputs.py +843 -2
  1408. pulumi_gcp/vertex/ai_dataset.py +10 -5
  1409. pulumi_gcp/vertex/ai_deployment_resource_pool.py +36 -31
  1410. pulumi_gcp/vertex/ai_endpoint.py +18 -13
  1411. pulumi_gcp/vertex/ai_endpoint_iam_binding.py +8 -3
  1412. pulumi_gcp/vertex/ai_endpoint_iam_member.py +8 -3
  1413. pulumi_gcp/vertex/ai_endpoint_iam_policy.py +5 -0
  1414. pulumi_gcp/vertex/ai_feature_group.py +22 -17
  1415. pulumi_gcp/vertex/ai_feature_group_feature.py +17 -12
  1416. pulumi_gcp/vertex/ai_feature_online_store.py +80 -75
  1417. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +151 -146
  1418. pulumi_gcp/vertex/ai_feature_store.py +57 -52
  1419. pulumi_gcp/vertex/ai_feature_store_entity_type.py +92 -87
  1420. pulumi_gcp/vertex/ai_feature_store_entity_type_feature.py +41 -36
  1421. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +8 -3
  1422. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +8 -3
  1423. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +5 -0
  1424. pulumi_gcp/vertex/ai_feature_store_iam_binding.py +8 -3
  1425. pulumi_gcp/vertex/ai_feature_store_iam_member.py +8 -3
  1426. pulumi_gcp/vertex/ai_feature_store_iam_policy.py +5 -0
  1427. pulumi_gcp/vertex/ai_index.py +68 -63
  1428. pulumi_gcp/vertex/ai_index_endpoint.py +18 -13
  1429. pulumi_gcp/vertex/ai_metadata_store.py +12 -7
  1430. pulumi_gcp/vertex/ai_tensorboard.py +16 -11
  1431. pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +5 -0
  1432. pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +5 -0
  1433. pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +5 -0
  1434. pulumi_gcp/vertex/get_ai_index.py +5 -0
  1435. pulumi_gcp/vertex/outputs.py +7 -2
  1436. pulumi_gcp/vmwareengine/_inputs.py +290 -0
  1437. pulumi_gcp/vmwareengine/cluster.py +74 -69
  1438. pulumi_gcp/vmwareengine/external_access_rule.py +61 -56
  1439. pulumi_gcp/vmwareengine/external_address.py +27 -22
  1440. pulumi_gcp/vmwareengine/get_cluster.py +5 -0
  1441. pulumi_gcp/vmwareengine/get_external_access_rule.py +5 -0
  1442. pulumi_gcp/vmwareengine/get_external_address.py +5 -0
  1443. pulumi_gcp/vmwareengine/get_network.py +5 -0
  1444. pulumi_gcp/vmwareengine/get_network_peering.py +5 -0
  1445. pulumi_gcp/vmwareengine/get_network_policy.py +5 -0
  1446. pulumi_gcp/vmwareengine/get_nsx_credentials.py +5 -0
  1447. pulumi_gcp/vmwareengine/get_private_cloud.py +5 -0
  1448. pulumi_gcp/vmwareengine/get_subnet.py +5 -0
  1449. pulumi_gcp/vmwareengine/get_vcenter_credentials.py +5 -0
  1450. pulumi_gcp/vmwareengine/network.py +7 -2
  1451. pulumi_gcp/vmwareengine/network_peering.py +5 -0
  1452. pulumi_gcp/vmwareengine/network_policy.py +27 -22
  1453. pulumi_gcp/vmwareengine/outputs.py +5 -0
  1454. pulumi_gcp/vmwareengine/private_cloud.py +67 -62
  1455. pulumi_gcp/vmwareengine/subnet.py +29 -24
  1456. pulumi_gcp/vpcaccess/_inputs.py +22 -0
  1457. pulumi_gcp/vpcaccess/connector.py +16 -11
  1458. pulumi_gcp/vpcaccess/get_connector.py +5 -0
  1459. pulumi_gcp/vpcaccess/outputs.py +5 -0
  1460. pulumi_gcp/workbench/_inputs.py +319 -0
  1461. pulumi_gcp/workbench/get_instance_iam_policy.py +5 -0
  1462. pulumi_gcp/workbench/instance.py +144 -139
  1463. pulumi_gcp/workbench/instance_iam_binding.py +8 -3
  1464. pulumi_gcp/workbench/instance_iam_member.py +8 -3
  1465. pulumi_gcp/workbench/instance_iam_policy.py +5 -0
  1466. pulumi_gcp/workbench/outputs.py +5 -0
  1467. pulumi_gcp/workflows/workflow.py +5 -0
  1468. pulumi_gcp/workstations/_inputs.py +433 -0
  1469. pulumi_gcp/workstations/get_workstation_config_iam_policy.py +5 -0
  1470. pulumi_gcp/workstations/get_workstation_iam_policy.py +5 -0
  1471. pulumi_gcp/workstations/outputs.py +5 -0
  1472. pulumi_gcp/workstations/workstation.py +19 -14
  1473. pulumi_gcp/workstations/workstation_cluster.py +35 -30
  1474. pulumi_gcp/workstations/workstation_config.py +251 -246
  1475. pulumi_gcp/workstations/workstation_config_iam_binding.py +8 -3
  1476. pulumi_gcp/workstations/workstation_config_iam_member.py +8 -3
  1477. pulumi_gcp/workstations/workstation_config_iam_policy.py +5 -0
  1478. pulumi_gcp/workstations/workstation_iam_binding.py +8 -3
  1479. pulumi_gcp/workstations/workstation_iam_member.py +8 -3
  1480. pulumi_gcp/workstations/workstation_iam_policy.py +5 -0
  1481. {pulumi_gcp-7.29.0a1719416802.dist-info → pulumi_gcp-7.30.0.dist-info}/METADATA +2 -1
  1482. pulumi_gcp-7.30.0.dist-info/RECORD +1605 -0
  1483. {pulumi_gcp-7.29.0a1719416802.dist-info → pulumi_gcp-7.30.0.dist-info}/WHEEL +1 -1
  1484. pulumi_gcp-7.29.0a1719416802.dist-info/RECORD +0 -1600
  1485. {pulumi_gcp-7.29.0a1719416802.dist-info → pulumi_gcp-7.30.0.dist-info}/top_level.txt +0 -0
@@ -4,104 +4,221 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from .. import _utilities
11
16
 
12
17
  __all__ = [
13
18
  'AccessLevelBasicArgs',
19
+ 'AccessLevelBasicArgsDict',
14
20
  'AccessLevelBasicConditionArgs',
21
+ 'AccessLevelBasicConditionArgsDict',
15
22
  'AccessLevelBasicConditionDevicePolicyArgs',
23
+ 'AccessLevelBasicConditionDevicePolicyArgsDict',
16
24
  'AccessLevelBasicConditionDevicePolicyOsConstraintArgs',
25
+ 'AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict',
17
26
  'AccessLevelBasicConditionVpcNetworkSourceArgs',
27
+ 'AccessLevelBasicConditionVpcNetworkSourceArgsDict',
18
28
  'AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs',
29
+ 'AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict',
19
30
  'AccessLevelConditionDevicePolicyArgs',
31
+ 'AccessLevelConditionDevicePolicyArgsDict',
20
32
  'AccessLevelConditionDevicePolicyOsConstraintArgs',
33
+ 'AccessLevelConditionDevicePolicyOsConstraintArgsDict',
21
34
  'AccessLevelConditionVpcNetworkSourceArgs',
35
+ 'AccessLevelConditionVpcNetworkSourceArgsDict',
22
36
  'AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs',
37
+ 'AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict',
23
38
  'AccessLevelCustomArgs',
39
+ 'AccessLevelCustomArgsDict',
24
40
  'AccessLevelCustomExprArgs',
41
+ 'AccessLevelCustomExprArgsDict',
25
42
  'AccessLevelsAccessLevelArgs',
43
+ 'AccessLevelsAccessLevelArgsDict',
26
44
  'AccessLevelsAccessLevelBasicArgs',
45
+ 'AccessLevelsAccessLevelBasicArgsDict',
27
46
  'AccessLevelsAccessLevelBasicConditionArgs',
47
+ 'AccessLevelsAccessLevelBasicConditionArgsDict',
28
48
  'AccessLevelsAccessLevelBasicConditionDevicePolicyArgs',
49
+ 'AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict',
29
50
  'AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs',
51
+ 'AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict',
30
52
  'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs',
53
+ 'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict',
31
54
  'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs',
55
+ 'AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict',
32
56
  'AccessLevelsAccessLevelCustomArgs',
57
+ 'AccessLevelsAccessLevelCustomArgsDict',
33
58
  'AccessLevelsAccessLevelCustomExprArgs',
59
+ 'AccessLevelsAccessLevelCustomExprArgsDict',
34
60
  'AccessPolicyIamBindingConditionArgs',
61
+ 'AccessPolicyIamBindingConditionArgsDict',
35
62
  'AccessPolicyIamMemberConditionArgs',
63
+ 'AccessPolicyIamMemberConditionArgsDict',
36
64
  'ServicePerimeterEgressPolicyEgressFromArgs',
65
+ 'ServicePerimeterEgressPolicyEgressFromArgsDict',
37
66
  'ServicePerimeterEgressPolicyEgressFromSourceArgs',
67
+ 'ServicePerimeterEgressPolicyEgressFromSourceArgsDict',
38
68
  'ServicePerimeterEgressPolicyEgressToArgs',
69
+ 'ServicePerimeterEgressPolicyEgressToArgsDict',
39
70
  'ServicePerimeterEgressPolicyEgressToOperationArgs',
71
+ 'ServicePerimeterEgressPolicyEgressToOperationArgsDict',
40
72
  'ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs',
73
+ 'ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict',
41
74
  'ServicePerimeterIngressPolicyIngressFromArgs',
75
+ 'ServicePerimeterIngressPolicyIngressFromArgsDict',
42
76
  'ServicePerimeterIngressPolicyIngressFromSourceArgs',
77
+ 'ServicePerimeterIngressPolicyIngressFromSourceArgsDict',
43
78
  'ServicePerimeterIngressPolicyIngressToArgs',
79
+ 'ServicePerimeterIngressPolicyIngressToArgsDict',
44
80
  'ServicePerimeterIngressPolicyIngressToOperationArgs',
81
+ 'ServicePerimeterIngressPolicyIngressToOperationArgsDict',
45
82
  'ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs',
83
+ 'ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict',
46
84
  'ServicePerimeterSpecArgs',
85
+ 'ServicePerimeterSpecArgsDict',
47
86
  'ServicePerimeterSpecEgressPolicyArgs',
87
+ 'ServicePerimeterSpecEgressPolicyArgsDict',
48
88
  'ServicePerimeterSpecEgressPolicyEgressFromArgs',
89
+ 'ServicePerimeterSpecEgressPolicyEgressFromArgsDict',
49
90
  'ServicePerimeterSpecEgressPolicyEgressFromSourceArgs',
91
+ 'ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict',
50
92
  'ServicePerimeterSpecEgressPolicyEgressToArgs',
93
+ 'ServicePerimeterSpecEgressPolicyEgressToArgsDict',
51
94
  'ServicePerimeterSpecEgressPolicyEgressToOperationArgs',
95
+ 'ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict',
52
96
  'ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs',
97
+ 'ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict',
53
98
  'ServicePerimeterSpecIngressPolicyArgs',
99
+ 'ServicePerimeterSpecIngressPolicyArgsDict',
54
100
  'ServicePerimeterSpecIngressPolicyIngressFromArgs',
101
+ 'ServicePerimeterSpecIngressPolicyIngressFromArgsDict',
55
102
  'ServicePerimeterSpecIngressPolicyIngressFromSourceArgs',
103
+ 'ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict',
56
104
  'ServicePerimeterSpecIngressPolicyIngressToArgs',
105
+ 'ServicePerimeterSpecIngressPolicyIngressToArgsDict',
57
106
  'ServicePerimeterSpecIngressPolicyIngressToOperationArgs',
107
+ 'ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict',
58
108
  'ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs',
109
+ 'ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict',
59
110
  'ServicePerimeterSpecVpcAccessibleServicesArgs',
111
+ 'ServicePerimeterSpecVpcAccessibleServicesArgsDict',
60
112
  'ServicePerimeterStatusArgs',
113
+ 'ServicePerimeterStatusArgsDict',
61
114
  'ServicePerimeterStatusEgressPolicyArgs',
115
+ 'ServicePerimeterStatusEgressPolicyArgsDict',
62
116
  'ServicePerimeterStatusEgressPolicyEgressFromArgs',
117
+ 'ServicePerimeterStatusEgressPolicyEgressFromArgsDict',
63
118
  'ServicePerimeterStatusEgressPolicyEgressFromSourceArgs',
119
+ 'ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict',
64
120
  'ServicePerimeterStatusEgressPolicyEgressToArgs',
121
+ 'ServicePerimeterStatusEgressPolicyEgressToArgsDict',
65
122
  'ServicePerimeterStatusEgressPolicyEgressToOperationArgs',
123
+ 'ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict',
66
124
  'ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs',
125
+ 'ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict',
67
126
  'ServicePerimeterStatusIngressPolicyArgs',
127
+ 'ServicePerimeterStatusIngressPolicyArgsDict',
68
128
  'ServicePerimeterStatusIngressPolicyIngressFromArgs',
129
+ 'ServicePerimeterStatusIngressPolicyIngressFromArgsDict',
69
130
  'ServicePerimeterStatusIngressPolicyIngressFromSourceArgs',
131
+ 'ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict',
70
132
  'ServicePerimeterStatusIngressPolicyIngressToArgs',
133
+ 'ServicePerimeterStatusIngressPolicyIngressToArgsDict',
71
134
  'ServicePerimeterStatusIngressPolicyIngressToOperationArgs',
135
+ 'ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict',
72
136
  'ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs',
137
+ 'ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict',
73
138
  'ServicePerimeterStatusVpcAccessibleServicesArgs',
139
+ 'ServicePerimeterStatusVpcAccessibleServicesArgsDict',
74
140
  'ServicePerimetersServicePerimeterArgs',
141
+ 'ServicePerimetersServicePerimeterArgsDict',
75
142
  'ServicePerimetersServicePerimeterSpecArgs',
143
+ 'ServicePerimetersServicePerimeterSpecArgsDict',
76
144
  'ServicePerimetersServicePerimeterSpecEgressPolicyArgs',
145
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict',
77
146
  'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs',
147
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict',
78
148
  'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs',
149
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict',
79
150
  'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs',
151
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict',
80
152
  'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs',
153
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict',
81
154
  'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs',
155
+ 'ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict',
82
156
  'ServicePerimetersServicePerimeterSpecIngressPolicyArgs',
157
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict',
83
158
  'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs',
159
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict',
84
160
  'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs',
161
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict',
85
162
  'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs',
163
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict',
86
164
  'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs',
165
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict',
87
166
  'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs',
167
+ 'ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict',
88
168
  'ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs',
169
+ 'ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict',
89
170
  'ServicePerimetersServicePerimeterStatusArgs',
171
+ 'ServicePerimetersServicePerimeterStatusArgsDict',
90
172
  'ServicePerimetersServicePerimeterStatusEgressPolicyArgs',
173
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict',
91
174
  'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs',
175
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict',
92
176
  'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs',
177
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict',
93
178
  'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs',
179
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict',
94
180
  'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs',
181
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict',
95
182
  'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs',
183
+ 'ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict',
96
184
  'ServicePerimetersServicePerimeterStatusIngressPolicyArgs',
185
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict',
97
186
  'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs',
187
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict',
98
188
  'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs',
189
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict',
99
190
  'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs',
191
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict',
100
192
  'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs',
193
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict',
101
194
  'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs',
195
+ 'ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict',
102
196
  'ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgs',
197
+ 'ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict',
103
198
  ]
104
199
 
200
+ MYPY = False
201
+
202
+ if not MYPY:
203
+ class AccessLevelBasicArgsDict(TypedDict):
204
+ conditions: pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionArgsDict']]]
205
+ """
206
+ A set of requirements for the AccessLevel to be granted.
207
+ Structure is documented below.
208
+ """
209
+ combining_function: NotRequired[pulumi.Input[str]]
210
+ """
211
+ How the conditions list should be combined to determine if a request
212
+ is granted this AccessLevel. If AND is used, each Condition in
213
+ conditions must be satisfied for the AccessLevel to be applied. If
214
+ OR is used, at least one Condition in conditions must be satisfied
215
+ for the AccessLevel to be applied.
216
+ Default value is `AND`.
217
+ Possible values are: `AND`, `OR`.
218
+ """
219
+ elif False:
220
+ AccessLevelBasicArgsDict: TypeAlias = Mapping[str, Any]
221
+
105
222
  @pulumi.input_type
106
223
  class AccessLevelBasicArgs:
107
224
  def __init__(__self__, *,
@@ -154,6 +271,66 @@ class AccessLevelBasicArgs:
154
271
  pulumi.set(self, "combining_function", value)
155
272
 
156
273
 
274
+ if not MYPY:
275
+ class AccessLevelBasicConditionArgsDict(TypedDict):
276
+ device_policy: NotRequired[pulumi.Input['AccessLevelBasicConditionDevicePolicyArgsDict']]
277
+ """
278
+ Device specific restrictions, all restrictions must hold for
279
+ the Condition to be true. If not specified, all devices are
280
+ allowed.
281
+ Structure is documented below.
282
+ """
283
+ ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
284
+ """
285
+ A list of CIDR block IP subnetwork specification. May be IPv4
286
+ or IPv6.
287
+ Note that for a CIDR IP address block, the specified IP address
288
+ portion must be properly truncated (i.e. all the host bits must
289
+ be zero) or the input is considered malformed. For example,
290
+ "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly,
291
+ for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32"
292
+ is not. The originating IP of a request must be in one of the
293
+ listed subnets in order for this Condition to be true.
294
+ If empty, all IP addresses are allowed.
295
+ """
296
+ members: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
297
+ """
298
+ An allowed list of members (users, service accounts).
299
+ Using groups is not supported yet.
300
+ The signed-in user originating the request must be a part of one
301
+ of the provided members. If not specified, a request may come
302
+ from any user (logged in/not logged in, not present in any
303
+ groups, etc.).
304
+ Formats: `user:{emailid}`, `serviceAccount:{emailid}`
305
+ """
306
+ negate: NotRequired[pulumi.Input[bool]]
307
+ """
308
+ Whether to negate the Condition. If true, the Condition becomes
309
+ a NAND over its non-empty fields, each field must be false for
310
+ the Condition overall to be satisfied. Defaults to false.
311
+ """
312
+ regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
313
+ """
314
+ The request must originate from one of the provided
315
+ countries/regions.
316
+ Format: A valid ISO 3166-1 alpha-2 code.
317
+ """
318
+ required_access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
319
+ """
320
+ A list of other access levels defined in the same Policy,
321
+ referenced by resource name. Referencing an AccessLevel which
322
+ does not exist is an error. All access levels listed must be
323
+ granted for the Condition to be true.
324
+ Format: accessPolicies/{policy_id}/accessLevels/{short_name}
325
+ """
326
+ vpc_network_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionVpcNetworkSourceArgsDict']]]]
327
+ """
328
+ The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.
329
+ Structure is documented below.
330
+ """
331
+ elif False:
332
+ AccessLevelBasicConditionArgsDict: TypeAlias = Mapping[str, Any]
333
+
157
334
  @pulumi.input_type
158
335
  class AccessLevelBasicConditionArgs:
159
336
  def __init__(__self__, *,
@@ -327,6 +504,42 @@ class AccessLevelBasicConditionArgs:
327
504
  pulumi.set(self, "vpc_network_sources", value)
328
505
 
329
506
 
507
+ if not MYPY:
508
+ class AccessLevelBasicConditionDevicePolicyArgsDict(TypedDict):
509
+ allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
510
+ """
511
+ A list of allowed device management levels.
512
+ An empty list allows all management levels.
513
+ Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
514
+ """
515
+ allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
516
+ """
517
+ A list of allowed encryptions statuses.
518
+ An empty list allows all statuses.
519
+ Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
520
+ """
521
+ os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict']]]]
522
+ """
523
+ A list of allowed OS versions.
524
+ An empty list allows all types and all versions.
525
+ Structure is documented below.
526
+ """
527
+ require_admin_approval: NotRequired[pulumi.Input[bool]]
528
+ """
529
+ Whether the device needs to be approved by the customer admin.
530
+ """
531
+ require_corp_owned: NotRequired[pulumi.Input[bool]]
532
+ """
533
+ Whether the device needs to be corp owned.
534
+ """
535
+ require_screen_lock: NotRequired[pulumi.Input[bool]]
536
+ """
537
+ Whether or not screenlock is required for the DevicePolicy
538
+ to be true. Defaults to false.
539
+ """
540
+ elif False:
541
+ AccessLevelBasicConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
542
+
330
543
  @pulumi.input_type
331
544
  class AccessLevelBasicConditionDevicePolicyArgs:
332
545
  def __init__(__self__, *,
@@ -444,6 +657,26 @@ class AccessLevelBasicConditionDevicePolicyArgs:
444
657
  pulumi.set(self, "require_screen_lock", value)
445
658
 
446
659
 
660
+ if not MYPY:
661
+ class AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict(TypedDict):
662
+ os_type: pulumi.Input[str]
663
+ """
664
+ The operating system type of the device.
665
+ Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
666
+ """
667
+ minimum_version: NotRequired[pulumi.Input[str]]
668
+ """
669
+ The minimum allowed OS version. If not set, any version
670
+ of this OS satisfies the constraint.
671
+ Format: "major.minor.patch" such as "10.5.301", "9.2.1".
672
+ """
673
+ require_verified_chrome_os: NotRequired[pulumi.Input[bool]]
674
+ """
675
+ If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.
676
+ """
677
+ elif False:
678
+ AccessLevelBasicConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
679
+
447
680
  @pulumi.input_type
448
681
  class AccessLevelBasicConditionDevicePolicyOsConstraintArgs:
449
682
  def __init__(__self__, *,
@@ -504,6 +737,16 @@ class AccessLevelBasicConditionDevicePolicyOsConstraintArgs:
504
737
  pulumi.set(self, "require_verified_chrome_os", value)
505
738
 
506
739
 
740
+ if not MYPY:
741
+ class AccessLevelBasicConditionVpcNetworkSourceArgsDict(TypedDict):
742
+ vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
743
+ """
744
+ Sub networks within a VPC network.
745
+ Structure is documented below.
746
+ """
747
+ elif False:
748
+ AccessLevelBasicConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
749
+
507
750
  @pulumi.input_type
508
751
  class AccessLevelBasicConditionVpcNetworkSourceArgs:
509
752
  def __init__(__self__, *,
@@ -529,6 +772,19 @@ class AccessLevelBasicConditionVpcNetworkSourceArgs:
529
772
  pulumi.set(self, "vpc_subnetwork", value)
530
773
 
531
774
 
775
+ if not MYPY:
776
+ class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
777
+ network: pulumi.Input[str]
778
+ """
779
+ Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
780
+ """
781
+ vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
782
+ """
783
+ CIDR block IP subnetwork specification. Must be IPv4.
784
+ """
785
+ elif False:
786
+ AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
787
+
532
788
  @pulumi.input_type
533
789
  class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
534
790
  def __init__(__self__, *,
@@ -567,6 +823,42 @@ class AccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
567
823
  pulumi.set(self, "vpc_ip_subnetworks", value)
568
824
 
569
825
 
826
+ if not MYPY:
827
+ class AccessLevelConditionDevicePolicyArgsDict(TypedDict):
828
+ allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
829
+ """
830
+ A list of allowed device management levels.
831
+ An empty list allows all management levels.
832
+ Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
833
+ """
834
+ allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
835
+ """
836
+ A list of allowed encryptions statuses.
837
+ An empty list allows all statuses.
838
+ Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
839
+ """
840
+ os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelConditionDevicePolicyOsConstraintArgsDict']]]]
841
+ """
842
+ A list of allowed OS versions.
843
+ An empty list allows all types and all versions.
844
+ Structure is documented below.
845
+ """
846
+ require_admin_approval: NotRequired[pulumi.Input[bool]]
847
+ """
848
+ Whether the device needs to be approved by the customer admin.
849
+ """
850
+ require_corp_owned: NotRequired[pulumi.Input[bool]]
851
+ """
852
+ Whether the device needs to be corp owned.
853
+ """
854
+ require_screen_lock: NotRequired[pulumi.Input[bool]]
855
+ """
856
+ Whether or not screenlock is required for the DevicePolicy
857
+ to be true. Defaults to false.
858
+ """
859
+ elif False:
860
+ AccessLevelConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
861
+
570
862
  @pulumi.input_type
571
863
  class AccessLevelConditionDevicePolicyArgs:
572
864
  def __init__(__self__, *,
@@ -684,6 +976,22 @@ class AccessLevelConditionDevicePolicyArgs:
684
976
  pulumi.set(self, "require_screen_lock", value)
685
977
 
686
978
 
979
+ if not MYPY:
980
+ class AccessLevelConditionDevicePolicyOsConstraintArgsDict(TypedDict):
981
+ os_type: pulumi.Input[str]
982
+ """
983
+ The operating system type of the device.
984
+ Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
985
+ """
986
+ minimum_version: NotRequired[pulumi.Input[str]]
987
+ """
988
+ The minimum allowed OS version. If not set, any version
989
+ of this OS satisfies the constraint.
990
+ Format: "major.minor.patch" such as "10.5.301", "9.2.1".
991
+ """
992
+ elif False:
993
+ AccessLevelConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
994
+
687
995
  @pulumi.input_type
688
996
  class AccessLevelConditionDevicePolicyOsConstraintArgs:
689
997
  def __init__(__self__, *,
@@ -728,6 +1036,16 @@ class AccessLevelConditionDevicePolicyOsConstraintArgs:
728
1036
  pulumi.set(self, "minimum_version", value)
729
1037
 
730
1038
 
1039
+ if not MYPY:
1040
+ class AccessLevelConditionVpcNetworkSourceArgsDict(TypedDict):
1041
+ vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
1042
+ """
1043
+ Sub networks within a VPC network.
1044
+ Structure is documented below.
1045
+ """
1046
+ elif False:
1047
+ AccessLevelConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
1048
+
731
1049
  @pulumi.input_type
732
1050
  class AccessLevelConditionVpcNetworkSourceArgs:
733
1051
  def __init__(__self__, *,
@@ -753,6 +1071,19 @@ class AccessLevelConditionVpcNetworkSourceArgs:
753
1071
  pulumi.set(self, "vpc_subnetwork", value)
754
1072
 
755
1073
 
1074
+ if not MYPY:
1075
+ class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
1076
+ network: pulumi.Input[str]
1077
+ """
1078
+ Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
1079
+ """
1080
+ vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1081
+ """
1082
+ CIDR block IP subnetwork specification. Must be IPv4.
1083
+ """
1084
+ elif False:
1085
+ AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
1086
+
756
1087
  @pulumi.input_type
757
1088
  class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs:
758
1089
  def __init__(__self__, *,
@@ -791,6 +1122,18 @@ class AccessLevelConditionVpcNetworkSourceVpcSubnetworkArgs:
791
1122
  pulumi.set(self, "vpc_ip_subnetworks", value)
792
1123
 
793
1124
 
1125
+ if not MYPY:
1126
+ class AccessLevelCustomArgsDict(TypedDict):
1127
+ expr: pulumi.Input['AccessLevelCustomExprArgsDict']
1128
+ """
1129
+ Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
1130
+ This page details the objects and attributes that are used to the build the CEL expressions for
1131
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
1132
+ Structure is documented below.
1133
+ """
1134
+ elif False:
1135
+ AccessLevelCustomArgsDict: TypeAlias = Mapping[str, Any]
1136
+
794
1137
  @pulumi.input_type
795
1138
  class AccessLevelCustomArgs:
796
1139
  def __init__(__self__, *,
@@ -819,6 +1162,27 @@ class AccessLevelCustomArgs:
819
1162
  pulumi.set(self, "expr", value)
820
1163
 
821
1164
 
1165
+ if not MYPY:
1166
+ class AccessLevelCustomExprArgsDict(TypedDict):
1167
+ expression: pulumi.Input[str]
1168
+ """
1169
+ Textual representation of an expression in Common Expression Language syntax.
1170
+ """
1171
+ description: NotRequired[pulumi.Input[str]]
1172
+ """
1173
+ Description of the expression
1174
+ """
1175
+ location: NotRequired[pulumi.Input[str]]
1176
+ """
1177
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
1178
+ """
1179
+ title: NotRequired[pulumi.Input[str]]
1180
+ """
1181
+ Title for the expression, i.e. a short string describing its purpose.
1182
+ """
1183
+ elif False:
1184
+ AccessLevelCustomExprArgsDict: TypeAlias = Mapping[str, Any]
1185
+
822
1186
  @pulumi.input_type
823
1187
  class AccessLevelCustomExprArgs:
824
1188
  def __init__(__self__, *,
@@ -889,6 +1253,36 @@ class AccessLevelCustomExprArgs:
889
1253
  pulumi.set(self, "title", value)
890
1254
 
891
1255
 
1256
+ if not MYPY:
1257
+ class AccessLevelsAccessLevelArgsDict(TypedDict):
1258
+ name: pulumi.Input[str]
1259
+ """
1260
+ Resource name for the Access Level. The short_name component must begin
1261
+ with a letter and only include alphanumeric and '_'.
1262
+ Format: accessPolicies/{policy_id}/accessLevels/{short_name}
1263
+ """
1264
+ title: pulumi.Input[str]
1265
+ """
1266
+ Human readable title. Must be unique within the Policy.
1267
+ """
1268
+ basic: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicArgsDict']]
1269
+ """
1270
+ A set of predefined conditions for the access level and a combining function.
1271
+ Structure is documented below.
1272
+ """
1273
+ custom: NotRequired[pulumi.Input['AccessLevelsAccessLevelCustomArgsDict']]
1274
+ """
1275
+ Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request.
1276
+ See CEL spec at: https://github.com/google/cel-spec.
1277
+ Structure is documented below.
1278
+ """
1279
+ description: NotRequired[pulumi.Input[str]]
1280
+ """
1281
+ Description of the AccessLevel and its use. Does not affect behavior.
1282
+ """
1283
+ elif False:
1284
+ AccessLevelsAccessLevelArgsDict: TypeAlias = Mapping[str, Any]
1285
+
892
1286
  @pulumi.input_type
893
1287
  class AccessLevelsAccessLevelArgs:
894
1288
  def __init__(__self__, *,
@@ -984,6 +1378,26 @@ class AccessLevelsAccessLevelArgs:
984
1378
  pulumi.set(self, "description", value)
985
1379
 
986
1380
 
1381
+ if not MYPY:
1382
+ class AccessLevelsAccessLevelBasicArgsDict(TypedDict):
1383
+ conditions: pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionArgsDict']]]
1384
+ """
1385
+ A set of requirements for the AccessLevel to be granted.
1386
+ Structure is documented below.
1387
+ """
1388
+ combining_function: NotRequired[pulumi.Input[str]]
1389
+ """
1390
+ How the conditions list should be combined to determine if a request
1391
+ is granted this AccessLevel. If AND is used, each Condition in
1392
+ conditions must be satisfied for the AccessLevel to be applied. If
1393
+ OR is used, at least one Condition in conditions must be satisfied
1394
+ for the AccessLevel to be applied.
1395
+ Default value is `AND`.
1396
+ Possible values are: `AND`, `OR`.
1397
+ """
1398
+ elif False:
1399
+ AccessLevelsAccessLevelBasicArgsDict: TypeAlias = Mapping[str, Any]
1400
+
987
1401
  @pulumi.input_type
988
1402
  class AccessLevelsAccessLevelBasicArgs:
989
1403
  def __init__(__self__, *,
@@ -1036,6 +1450,66 @@ class AccessLevelsAccessLevelBasicArgs:
1036
1450
  pulumi.set(self, "combining_function", value)
1037
1451
 
1038
1452
 
1453
+ if not MYPY:
1454
+ class AccessLevelsAccessLevelBasicConditionArgsDict(TypedDict):
1455
+ device_policy: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict']]
1456
+ """
1457
+ Device specific restrictions, all restrictions must hold for
1458
+ the Condition to be true. If not specified, all devices are
1459
+ allowed.
1460
+ Structure is documented below.
1461
+ """
1462
+ ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1463
+ """
1464
+ A list of CIDR block IP subnetwork specification. May be IPv4
1465
+ or IPv6.
1466
+ Note that for a CIDR IP address block, the specified IP address
1467
+ portion must be properly truncated (i.e. all the host bits must
1468
+ be zero) or the input is considered malformed. For example,
1469
+ "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly,
1470
+ for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32"
1471
+ is not. The originating IP of a request must be in one of the
1472
+ listed subnets in order for this Condition to be true.
1473
+ If empty, all IP addresses are allowed.
1474
+ """
1475
+ members: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1476
+ """
1477
+ An allowed list of members (users, service accounts).
1478
+ Using groups is not supported yet.
1479
+ The signed-in user originating the request must be a part of one
1480
+ of the provided members. If not specified, a request may come
1481
+ from any user (logged in/not logged in, not present in any
1482
+ groups, etc.).
1483
+ Formats: `user:{emailid}`, `serviceAccount:{emailid}`
1484
+ """
1485
+ negate: NotRequired[pulumi.Input[bool]]
1486
+ """
1487
+ Whether to negate the Condition. If true, the Condition becomes
1488
+ a NAND over its non-empty fields, each field must be false for
1489
+ the Condition overall to be satisfied. Defaults to false.
1490
+ """
1491
+ regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1492
+ """
1493
+ The request must originate from one of the provided
1494
+ countries/regions.
1495
+ Format: A valid ISO 3166-1 alpha-2 code.
1496
+ """
1497
+ required_access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1498
+ """
1499
+ A list of other access levels defined in the same Policy,
1500
+ referenced by resource name. Referencing an AccessLevel which
1501
+ does not exist is an error. All access levels listed must be
1502
+ granted for the Condition to be true.
1503
+ Format: accessPolicies/{policy_id}/accessLevels/{short_name}
1504
+ """
1505
+ vpc_network_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict']]]]
1506
+ """
1507
+ The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with `ip_subnetworks`.
1508
+ Structure is documented below.
1509
+ """
1510
+ elif False:
1511
+ AccessLevelsAccessLevelBasicConditionArgsDict: TypeAlias = Mapping[str, Any]
1512
+
1039
1513
  @pulumi.input_type
1040
1514
  class AccessLevelsAccessLevelBasicConditionArgs:
1041
1515
  def __init__(__self__, *,
@@ -1209,6 +1683,42 @@ class AccessLevelsAccessLevelBasicConditionArgs:
1209
1683
  pulumi.set(self, "vpc_network_sources", value)
1210
1684
 
1211
1685
 
1686
+ if not MYPY:
1687
+ class AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict(TypedDict):
1688
+ allowed_device_management_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1689
+ """
1690
+ A list of allowed device management levels.
1691
+ An empty list allows all management levels.
1692
+ Each value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.
1693
+ """
1694
+ allowed_encryption_statuses: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1695
+ """
1696
+ A list of allowed encryptions statuses.
1697
+ An empty list allows all statuses.
1698
+ Each value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.
1699
+ """
1700
+ os_constraints: NotRequired[pulumi.Input[Sequence[pulumi.Input['AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict']]]]
1701
+ """
1702
+ A list of allowed OS versions.
1703
+ An empty list allows all types and all versions.
1704
+ Structure is documented below.
1705
+ """
1706
+ require_admin_approval: NotRequired[pulumi.Input[bool]]
1707
+ """
1708
+ Whether the device needs to be approved by the customer admin.
1709
+ """
1710
+ require_corp_owned: NotRequired[pulumi.Input[bool]]
1711
+ """
1712
+ Whether the device needs to be corp owned.
1713
+ """
1714
+ require_screen_lock: NotRequired[pulumi.Input[bool]]
1715
+ """
1716
+ Whether or not screenlock is required for the DevicePolicy
1717
+ to be true. Defaults to false.
1718
+ """
1719
+ elif False:
1720
+ AccessLevelsAccessLevelBasicConditionDevicePolicyArgsDict: TypeAlias = Mapping[str, Any]
1721
+
1212
1722
  @pulumi.input_type
1213
1723
  class AccessLevelsAccessLevelBasicConditionDevicePolicyArgs:
1214
1724
  def __init__(__self__, *,
@@ -1326,6 +1836,22 @@ class AccessLevelsAccessLevelBasicConditionDevicePolicyArgs:
1326
1836
  pulumi.set(self, "require_screen_lock", value)
1327
1837
 
1328
1838
 
1839
+ if not MYPY:
1840
+ class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict(TypedDict):
1841
+ os_type: pulumi.Input[str]
1842
+ """
1843
+ The operating system type of the device.
1844
+ Possible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.
1845
+ """
1846
+ minimum_version: NotRequired[pulumi.Input[str]]
1847
+ """
1848
+ The minimum allowed OS version. If not set, any version
1849
+ of this OS satisfies the constraint.
1850
+ Format: "major.minor.patch" such as "10.5.301", "9.2.1".
1851
+ """
1852
+ elif False:
1853
+ AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgsDict: TypeAlias = Mapping[str, Any]
1854
+
1329
1855
  @pulumi.input_type
1330
1856
  class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs:
1331
1857
  def __init__(__self__, *,
@@ -1370,6 +1896,16 @@ class AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraintArgs:
1370
1896
  pulumi.set(self, "minimum_version", value)
1371
1897
 
1372
1898
 
1899
+ if not MYPY:
1900
+ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict(TypedDict):
1901
+ vpc_subnetwork: NotRequired[pulumi.Input['AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict']]
1902
+ """
1903
+ Sub networks within a VPC network.
1904
+ Structure is documented below.
1905
+ """
1906
+ elif False:
1907
+ AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgsDict: TypeAlias = Mapping[str, Any]
1908
+
1373
1909
  @pulumi.input_type
1374
1910
  class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs:
1375
1911
  def __init__(__self__, *,
@@ -1395,6 +1931,19 @@ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceArgs:
1395
1931
  pulumi.set(self, "vpc_subnetwork", value)
1396
1932
 
1397
1933
 
1934
+ if not MYPY:
1935
+ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict(TypedDict):
1936
+ network: pulumi.Input[str]
1937
+ """
1938
+ Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.
1939
+ """
1940
+ vpc_ip_subnetworks: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1941
+ """
1942
+ CIDR block IP subnetwork specification. Must be IPv4.
1943
+ """
1944
+ elif False:
1945
+ AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgsDict: TypeAlias = Mapping[str, Any]
1946
+
1398
1947
  @pulumi.input_type
1399
1948
  class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
1400
1949
  def __init__(__self__, *,
@@ -1433,6 +1982,18 @@ class AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetworkArgs:
1433
1982
  pulumi.set(self, "vpc_ip_subnetworks", value)
1434
1983
 
1435
1984
 
1985
+ if not MYPY:
1986
+ class AccessLevelsAccessLevelCustomArgsDict(TypedDict):
1987
+ expr: pulumi.Input['AccessLevelsAccessLevelCustomExprArgsDict']
1988
+ """
1989
+ Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.
1990
+ This page details the objects and attributes that are used to the build the CEL expressions for
1991
+ custom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.
1992
+ Structure is documented below.
1993
+ """
1994
+ elif False:
1995
+ AccessLevelsAccessLevelCustomArgsDict: TypeAlias = Mapping[str, Any]
1996
+
1436
1997
  @pulumi.input_type
1437
1998
  class AccessLevelsAccessLevelCustomArgs:
1438
1999
  def __init__(__self__, *,
@@ -1461,6 +2022,27 @@ class AccessLevelsAccessLevelCustomArgs:
1461
2022
  pulumi.set(self, "expr", value)
1462
2023
 
1463
2024
 
2025
+ if not MYPY:
2026
+ class AccessLevelsAccessLevelCustomExprArgsDict(TypedDict):
2027
+ expression: pulumi.Input[str]
2028
+ """
2029
+ Textual representation of an expression in Common Expression Language syntax.
2030
+ """
2031
+ description: NotRequired[pulumi.Input[str]]
2032
+ """
2033
+ Description of the expression
2034
+ """
2035
+ location: NotRequired[pulumi.Input[str]]
2036
+ """
2037
+ String indicating the location of the expression for error reporting, e.g. a file name and a position in the file
2038
+ """
2039
+ title: NotRequired[pulumi.Input[str]]
2040
+ """
2041
+ Title for the expression, i.e. a short string describing its purpose.
2042
+ """
2043
+ elif False:
2044
+ AccessLevelsAccessLevelCustomExprArgsDict: TypeAlias = Mapping[str, Any]
2045
+
1464
2046
  @pulumi.input_type
1465
2047
  class AccessLevelsAccessLevelCustomExprArgs:
1466
2048
  def __init__(__self__, *,
@@ -1531,6 +2113,14 @@ class AccessLevelsAccessLevelCustomExprArgs:
1531
2113
  pulumi.set(self, "title", value)
1532
2114
 
1533
2115
 
2116
+ if not MYPY:
2117
+ class AccessPolicyIamBindingConditionArgsDict(TypedDict):
2118
+ expression: pulumi.Input[str]
2119
+ title: pulumi.Input[str]
2120
+ description: NotRequired[pulumi.Input[str]]
2121
+ elif False:
2122
+ AccessPolicyIamBindingConditionArgsDict: TypeAlias = Mapping[str, Any]
2123
+
1534
2124
  @pulumi.input_type
1535
2125
  class AccessPolicyIamBindingConditionArgs:
1536
2126
  def __init__(__self__, *,
@@ -1570,6 +2160,14 @@ class AccessPolicyIamBindingConditionArgs:
1570
2160
  pulumi.set(self, "description", value)
1571
2161
 
1572
2162
 
2163
+ if not MYPY:
2164
+ class AccessPolicyIamMemberConditionArgsDict(TypedDict):
2165
+ expression: pulumi.Input[str]
2166
+ title: pulumi.Input[str]
2167
+ description: NotRequired[pulumi.Input[str]]
2168
+ elif False:
2169
+ AccessPolicyIamMemberConditionArgsDict: TypeAlias = Mapping[str, Any]
2170
+
1573
2171
  @pulumi.input_type
1574
2172
  class AccessPolicyIamMemberConditionArgs:
1575
2173
  def __init__(__self__, *,
@@ -1609,6 +2207,34 @@ class AccessPolicyIamMemberConditionArgs:
1609
2207
  pulumi.set(self, "description", value)
1610
2208
 
1611
2209
 
2210
+ if not MYPY:
2211
+ class ServicePerimeterEgressPolicyEgressFromArgsDict(TypedDict):
2212
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2213
+ """
2214
+ A list of identities that are allowed access through this `EgressPolicy`.
2215
+ Should be in the format of email address. The email address should
2216
+ represent individual user or service account only.
2217
+ """
2218
+ identity_type: NotRequired[pulumi.Input[str]]
2219
+ """
2220
+ Specifies the type of identities that are allowed access to outside the
2221
+ perimeter. If left unspecified, then members of `identities` field will
2222
+ be allowed access.
2223
+ Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
2224
+ """
2225
+ source_restriction: NotRequired[pulumi.Input[str]]
2226
+ """
2227
+ Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
2228
+ Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
2229
+ """
2230
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressFromSourceArgsDict']]]]
2231
+ """
2232
+ Sources that this EgressPolicy authorizes access from.
2233
+ Structure is documented below.
2234
+ """
2235
+ elif False:
2236
+ ServicePerimeterEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
2237
+
1612
2238
  @pulumi.input_type
1613
2239
  class ServicePerimeterEgressPolicyEgressFromArgs:
1614
2240
  def __init__(__self__, *,
@@ -1694,6 +2320,15 @@ class ServicePerimeterEgressPolicyEgressFromArgs:
1694
2320
  pulumi.set(self, "sources", value)
1695
2321
 
1696
2322
 
2323
+ if not MYPY:
2324
+ class ServicePerimeterEgressPolicyEgressFromSourceArgsDict(TypedDict):
2325
+ access_level: NotRequired[pulumi.Input[str]]
2326
+ """
2327
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
2328
+ """
2329
+ elif False:
2330
+ ServicePerimeterEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
2331
+
1697
2332
  @pulumi.input_type
1698
2333
  class ServicePerimeterEgressPolicyEgressFromSourceArgs:
1699
2334
  def __init__(__self__, *,
@@ -1717,6 +2352,31 @@ class ServicePerimeterEgressPolicyEgressFromSourceArgs:
1717
2352
  pulumi.set(self, "access_level", value)
1718
2353
 
1719
2354
 
2355
+ if not MYPY:
2356
+ class ServicePerimeterEgressPolicyEgressToArgsDict(TypedDict):
2357
+ external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2358
+ """
2359
+ A list of external resources that are allowed to be accessed. A request
2360
+ matches if it contains an external resource in this list (Example:
2361
+ s3://bucket/path). Currently '*' is not allowed.
2362
+ """
2363
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressToOperationArgsDict']]]]
2364
+ """
2365
+ A list of `ApiOperations` that this egress rule applies to. A request matches
2366
+ if it contains an operation/service in this list.
2367
+ Structure is documented below.
2368
+ """
2369
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2370
+ """
2371
+ A list of resources, currently only projects in the form
2372
+ `projects/<projectnumber>`, that match this to stanza. A request matches
2373
+ if it contains a resource in this list. If * is specified for resources,
2374
+ then this `EgressTo` rule will authorize access to all resources outside
2375
+ the perimeter.
2376
+ """
2377
+ elif False:
2378
+ ServicePerimeterEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
2379
+
1720
2380
  @pulumi.input_type
1721
2381
  class ServicePerimeterEgressPolicyEgressToArgs:
1722
2382
  def __init__(__self__, *,
@@ -1788,6 +2448,25 @@ class ServicePerimeterEgressPolicyEgressToArgs:
1788
2448
  pulumi.set(self, "resources", value)
1789
2449
 
1790
2450
 
2451
+ if not MYPY:
2452
+ class ServicePerimeterEgressPolicyEgressToOperationArgsDict(TypedDict):
2453
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
2454
+ """
2455
+ API methods or permissions to allow. Method or permission must belong
2456
+ to the service specified by `serviceName` field. A single MethodSelector
2457
+ entry with `*` specified for the `method` field will allow all methods
2458
+ AND permissions for the service specified in `serviceName`.
2459
+ Structure is documented below.
2460
+ """
2461
+ service_name: NotRequired[pulumi.Input[str]]
2462
+ """
2463
+ The name of the API whose methods or permissions the `IngressPolicy` or
2464
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
2465
+ field set to `*` will allow all methods AND permissions for all services.
2466
+ """
2467
+ elif False:
2468
+ ServicePerimeterEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
2469
+
1791
2470
  @pulumi.input_type
1792
2471
  class ServicePerimeterEgressPolicyEgressToOperationArgs:
1793
2472
  def __init__(__self__, *,
@@ -1839,6 +2518,22 @@ class ServicePerimeterEgressPolicyEgressToOperationArgs:
1839
2518
  pulumi.set(self, "service_name", value)
1840
2519
 
1841
2520
 
2521
+ if not MYPY:
2522
+ class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
2523
+ method: NotRequired[pulumi.Input[str]]
2524
+ """
2525
+ Value for `method` should be a valid method name for the corresponding
2526
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
2527
+ then ALL methods and permissions are allowed.
2528
+ """
2529
+ permission: NotRequired[pulumi.Input[str]]
2530
+ """
2531
+ Value for permission should be a valid Cloud IAM permission for the
2532
+ corresponding `serviceName` in `ApiOperation`.
2533
+ """
2534
+ elif False:
2535
+ ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
2536
+
1842
2537
  @pulumi.input_type
1843
2538
  class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs:
1844
2539
  def __init__(__self__, *,
@@ -1884,6 +2579,29 @@ class ServicePerimeterEgressPolicyEgressToOperationMethodSelectorArgs:
1884
2579
  pulumi.set(self, "permission", value)
1885
2580
 
1886
2581
 
2582
+ if not MYPY:
2583
+ class ServicePerimeterIngressPolicyIngressFromArgsDict(TypedDict):
2584
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2585
+ """
2586
+ A list of identities that are allowed access through this ingress policy.
2587
+ Should be in the format of email address. The email address should represent
2588
+ individual user or service account only.
2589
+ """
2590
+ identity_type: NotRequired[pulumi.Input[str]]
2591
+ """
2592
+ Specifies the type of identities that are allowed access from outside the
2593
+ perimeter. If left unspecified, then members of `identities` field will be
2594
+ allowed access.
2595
+ Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
2596
+ """
2597
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressFromSourceArgsDict']]]]
2598
+ """
2599
+ Sources that this `IngressPolicy` authorizes access from.
2600
+ Structure is documented below.
2601
+ """
2602
+ elif False:
2603
+ ServicePerimeterIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
2604
+
1887
2605
  @pulumi.input_type
1888
2606
  class ServicePerimeterIngressPolicyIngressFromArgs:
1889
2607
  def __init__(__self__, *,
@@ -1951,6 +2669,31 @@ class ServicePerimeterIngressPolicyIngressFromArgs:
1951
2669
  pulumi.set(self, "sources", value)
1952
2670
 
1953
2671
 
2672
+ if not MYPY:
2673
+ class ServicePerimeterIngressPolicyIngressFromSourceArgsDict(TypedDict):
2674
+ access_level: NotRequired[pulumi.Input[str]]
2675
+ """
2676
+ An `AccessLevel` resource name that allow resources within the
2677
+ `ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
2678
+ must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
2679
+ `AccessLevel` will cause an error. If no `AccessLevel` names are listed,
2680
+ resources within the perimeter can only be accessed via Google Cloud calls
2681
+ with request origins within the perimeter.
2682
+ Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
2683
+ If * is specified, then all IngressSources will be allowed.
2684
+ """
2685
+ resource: NotRequired[pulumi.Input[str]]
2686
+ """
2687
+ A Google Cloud resource that is allowed to ingress the perimeter.
2688
+ Requests from these resources will be allowed to access perimeter data.
2689
+ Currently only projects are allowed. Format `projects/{project_number}`
2690
+ The project may be in any Google Cloud organization, not just the
2691
+ organization that the perimeter is defined in. `*` is not allowed, the case
2692
+ of allowing all Google Cloud resources only is not supported.
2693
+ """
2694
+ elif False:
2695
+ ServicePerimeterIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
2696
+
1954
2697
  @pulumi.input_type
1955
2698
  class ServicePerimeterIngressPolicyIngressFromSourceArgs:
1956
2699
  def __init__(__self__, *,
@@ -2014,6 +2757,28 @@ class ServicePerimeterIngressPolicyIngressFromSourceArgs:
2014
2757
  pulumi.set(self, "resource", value)
2015
2758
 
2016
2759
 
2760
+ if not MYPY:
2761
+ class ServicePerimeterIngressPolicyIngressToArgsDict(TypedDict):
2762
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressToOperationArgsDict']]]]
2763
+ """
2764
+ A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
2765
+ are allowed to perform in this `ServicePerimeter`.
2766
+ Structure is documented below.
2767
+ """
2768
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2769
+ """
2770
+ A list of resources, currently only projects in the form
2771
+ `projects/<projectnumber>`, protected by this `ServicePerimeter`
2772
+ that are allowed to be accessed by sources defined in the
2773
+ corresponding `IngressFrom`. A request matches if it contains
2774
+ a resource in this list. If `*` is specified for resources,
2775
+ then this `IngressTo` rule will authorize access to all
2776
+ resources inside the perimeter, provided that the request
2777
+ also matches the `operations` field.
2778
+ """
2779
+ elif False:
2780
+ ServicePerimeterIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
2781
+
2017
2782
  @pulumi.input_type
2018
2783
  class ServicePerimeterIngressPolicyIngressToArgs:
2019
2784
  def __init__(__self__, *,
@@ -2071,6 +2836,25 @@ class ServicePerimeterIngressPolicyIngressToArgs:
2071
2836
  pulumi.set(self, "resources", value)
2072
2837
 
2073
2838
 
2839
+ if not MYPY:
2840
+ class ServicePerimeterIngressPolicyIngressToOperationArgsDict(TypedDict):
2841
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
2842
+ """
2843
+ API methods or permissions to allow. Method or permission must belong to
2844
+ the service specified by serviceName field. A single `MethodSelector` entry
2845
+ with `*` specified for the method field will allow all methods AND
2846
+ permissions for the service specified in `serviceName`.
2847
+ Structure is documented below.
2848
+ """
2849
+ service_name: NotRequired[pulumi.Input[str]]
2850
+ """
2851
+ The name of the API whose methods or permissions the `IngressPolicy` or
2852
+ `EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
2853
+ field set to `*` will allow all methods AND permissions for all services.
2854
+ """
2855
+ elif False:
2856
+ ServicePerimeterIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
2857
+
2074
2858
  @pulumi.input_type
2075
2859
  class ServicePerimeterIngressPolicyIngressToOperationArgs:
2076
2860
  def __init__(__self__, *,
@@ -2122,6 +2906,22 @@ class ServicePerimeterIngressPolicyIngressToOperationArgs:
2122
2906
  pulumi.set(self, "service_name", value)
2123
2907
 
2124
2908
 
2909
+ if not MYPY:
2910
+ class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
2911
+ method: NotRequired[pulumi.Input[str]]
2912
+ """
2913
+ Value for method should be a valid method name for the corresponding
2914
+ serviceName in `ApiOperation`. If `*` used as value for `method`, then
2915
+ ALL methods and permissions are allowed.
2916
+ """
2917
+ permission: NotRequired[pulumi.Input[str]]
2918
+ """
2919
+ Value for permission should be a valid Cloud IAM permission for the
2920
+ corresponding `serviceName` in `ApiOperation`.
2921
+ """
2922
+ elif False:
2923
+ ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
2924
+
2125
2925
  @pulumi.input_type
2126
2926
  class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs:
2127
2927
  def __init__(__self__, *,
@@ -2167,6 +2967,59 @@ class ServicePerimeterIngressPolicyIngressToOperationMethodSelectorArgs:
2167
2967
  pulumi.set(self, "permission", value)
2168
2968
 
2169
2969
 
2970
+ if not MYPY:
2971
+ class ServicePerimeterSpecArgsDict(TypedDict):
2972
+ access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2973
+ """
2974
+ A list of AccessLevel resource names that allow resources within
2975
+ the ServicePerimeter to be accessed from the internet.
2976
+ AccessLevels listed must be in the same policy as this
2977
+ ServicePerimeter. Referencing a nonexistent AccessLevel is a
2978
+ syntax error. If no AccessLevel names are listed, resources within
2979
+ the perimeter can only be accessed via GCP calls with request
2980
+ origins within the perimeter. For Service Perimeter Bridge, must
2981
+ be empty.
2982
+ Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
2983
+ """
2984
+ egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyArgsDict']]]]
2985
+ """
2986
+ List of EgressPolicies to apply to the perimeter. A perimeter may
2987
+ have multiple EgressPolicies, each of which is evaluated separately.
2988
+ Access is granted if any EgressPolicy grants it. Must be empty for
2989
+ a perimeter bridge.
2990
+ Structure is documented below.
2991
+ """
2992
+ ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyArgsDict']]]]
2993
+ """
2994
+ List of `IngressPolicies` to apply to the perimeter. A perimeter may
2995
+ have multiple `IngressPolicies`, each of which is evaluated
2996
+ separately. Access is granted if any `Ingress Policy` grants it.
2997
+ Must be empty for a perimeter bridge.
2998
+ Structure is documented below.
2999
+ """
3000
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3001
+ """
3002
+ A list of GCP resources that are inside of the service perimeter.
3003
+ Currently only projects are allowed.
3004
+ Format: projects/{project_number}
3005
+ """
3006
+ restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3007
+ """
3008
+ GCP services that are subject to the Service Perimeter
3009
+ restrictions. Must contain a list of services. For example, if
3010
+ `storage.googleapis.com` is specified, access to the storage
3011
+ buckets inside the perimeter must meet the perimeter's access
3012
+ restrictions.
3013
+ """
3014
+ vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimeterSpecVpcAccessibleServicesArgsDict']]
3015
+ """
3016
+ Specifies how APIs are allowed to communicate within the Service
3017
+ Perimeter.
3018
+ Structure is documented below.
3019
+ """
3020
+ elif False:
3021
+ ServicePerimeterSpecArgsDict: TypeAlias = Mapping[str, Any]
3022
+
2170
3023
  @pulumi.input_type
2171
3024
  class ServicePerimeterSpecArgs:
2172
3025
  def __init__(__self__, *,
@@ -2318,6 +3171,22 @@ class ServicePerimeterSpecArgs:
2318
3171
  pulumi.set(self, "vpc_accessible_services", value)
2319
3172
 
2320
3173
 
3174
+ if not MYPY:
3175
+ class ServicePerimeterSpecEgressPolicyArgsDict(TypedDict):
3176
+ egress_from: NotRequired[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressFromArgsDict']]
3177
+ """
3178
+ Defines conditions on the source of a request causing this `EgressPolicy` to apply.
3179
+ Structure is documented below.
3180
+ """
3181
+ egress_to: NotRequired[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToArgsDict']]
3182
+ """
3183
+ Defines the conditions on the `ApiOperation` and destination resources that
3184
+ cause this `EgressPolicy` to apply.
3185
+ Structure is documented below.
3186
+ """
3187
+ elif False:
3188
+ ServicePerimeterSpecEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
3189
+
2321
3190
  @pulumi.input_type
2322
3191
  class ServicePerimeterSpecEgressPolicyArgs:
2323
3192
  def __init__(__self__, *,
@@ -2363,6 +3232,34 @@ class ServicePerimeterSpecEgressPolicyArgs:
2363
3232
  pulumi.set(self, "egress_to", value)
2364
3233
 
2365
3234
 
3235
+ if not MYPY:
3236
+ class ServicePerimeterSpecEgressPolicyEgressFromArgsDict(TypedDict):
3237
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3238
+ """
3239
+ A list of identities that are allowed access through this `EgressPolicy`.
3240
+ Should be in the format of email address. The email address should
3241
+ represent individual user or service account only.
3242
+ """
3243
+ identity_type: NotRequired[pulumi.Input[str]]
3244
+ """
3245
+ Specifies the type of identities that are allowed access to outside the
3246
+ perimeter. If left unspecified, then members of `identities` field will
3247
+ be allowed access.
3248
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
3249
+ """
3250
+ source_restriction: NotRequired[pulumi.Input[str]]
3251
+ """
3252
+ Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
3253
+ Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
3254
+ """
3255
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict']]]]
3256
+ """
3257
+ Sources that this EgressPolicy authorizes access from.
3258
+ Structure is documented below.
3259
+ """
3260
+ elif False:
3261
+ ServicePerimeterSpecEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
3262
+
2366
3263
  @pulumi.input_type
2367
3264
  class ServicePerimeterSpecEgressPolicyEgressFromArgs:
2368
3265
  def __init__(__self__, *,
@@ -2448,6 +3345,15 @@ class ServicePerimeterSpecEgressPolicyEgressFromArgs:
2448
3345
  pulumi.set(self, "sources", value)
2449
3346
 
2450
3347
 
3348
+ if not MYPY:
3349
+ class ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict(TypedDict):
3350
+ access_level: NotRequired[pulumi.Input[str]]
3351
+ """
3352
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
3353
+ """
3354
+ elif False:
3355
+ ServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
3356
+
2451
3357
  @pulumi.input_type
2452
3358
  class ServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
2453
3359
  def __init__(__self__, *,
@@ -2471,6 +3377,31 @@ class ServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
2471
3377
  pulumi.set(self, "access_level", value)
2472
3378
 
2473
3379
 
3380
+ if not MYPY:
3381
+ class ServicePerimeterSpecEgressPolicyEgressToArgsDict(TypedDict):
3382
+ external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3383
+ """
3384
+ A list of external resources that are allowed to be accessed. A request
3385
+ matches if it contains an external resource in this list (Example:
3386
+ s3://bucket/path). Currently '*' is not allowed.
3387
+ """
3388
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict']]]]
3389
+ """
3390
+ A list of `ApiOperations` that this egress rule applies to. A request matches
3391
+ if it contains an operation/service in this list.
3392
+ Structure is documented below.
3393
+ """
3394
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3395
+ """
3396
+ A list of resources, currently only projects in the form
3397
+ `projects/<projectnumber>`, that match this to stanza. A request matches
3398
+ if it contains a resource in this list. If * is specified for resources,
3399
+ then this `EgressTo` rule will authorize access to all resources outside
3400
+ the perimeter.
3401
+ """
3402
+ elif False:
3403
+ ServicePerimeterSpecEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
3404
+
2474
3405
  @pulumi.input_type
2475
3406
  class ServicePerimeterSpecEgressPolicyEgressToArgs:
2476
3407
  def __init__(__self__, *,
@@ -2542,6 +3473,25 @@ class ServicePerimeterSpecEgressPolicyEgressToArgs:
2542
3473
  pulumi.set(self, "resources", value)
2543
3474
 
2544
3475
 
3476
+ if not MYPY:
3477
+ class ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict(TypedDict):
3478
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
3479
+ """
3480
+ API methods or permissions to allow. Method or permission must belong
3481
+ to the service specified by `serviceName` field. A single MethodSelector
3482
+ entry with `*` specified for the `method` field will allow all methods
3483
+ AND permissions for the service specified in `serviceName`.
3484
+ Structure is documented below.
3485
+ """
3486
+ service_name: NotRequired[pulumi.Input[str]]
3487
+ """
3488
+ The name of the API whose methods or permissions the `IngressPolicy` or
3489
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
3490
+ field set to `*` will allow all methods AND permissions for all services.
3491
+ """
3492
+ elif False:
3493
+ ServicePerimeterSpecEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
3494
+
2545
3495
  @pulumi.input_type
2546
3496
  class ServicePerimeterSpecEgressPolicyEgressToOperationArgs:
2547
3497
  def __init__(__self__, *,
@@ -2593,6 +3543,22 @@ class ServicePerimeterSpecEgressPolicyEgressToOperationArgs:
2593
3543
  pulumi.set(self, "service_name", value)
2594
3544
 
2595
3545
 
3546
+ if not MYPY:
3547
+ class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
3548
+ method: NotRequired[pulumi.Input[str]]
3549
+ """
3550
+ Value for `method` should be a valid method name for the corresponding
3551
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
3552
+ then ALL methods and permissions are allowed.
3553
+ """
3554
+ permission: NotRequired[pulumi.Input[str]]
3555
+ """
3556
+ Value for permission should be a valid Cloud IAM permission for the
3557
+ corresponding `serviceName` in `ApiOperation`.
3558
+ """
3559
+ elif False:
3560
+ ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
3561
+
2596
3562
  @pulumi.input_type
2597
3563
  class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
2598
3564
  def __init__(__self__, *,
@@ -2638,6 +3604,23 @@ class ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
2638
3604
  pulumi.set(self, "permission", value)
2639
3605
 
2640
3606
 
3607
+ if not MYPY:
3608
+ class ServicePerimeterSpecIngressPolicyArgsDict(TypedDict):
3609
+ ingress_from: NotRequired[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressFromArgsDict']]
3610
+ """
3611
+ Defines the conditions on the source of a request causing this `IngressPolicy`
3612
+ to apply.
3613
+ Structure is documented below.
3614
+ """
3615
+ ingress_to: NotRequired[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToArgsDict']]
3616
+ """
3617
+ Defines the conditions on the `ApiOperation` and request destination that cause
3618
+ this `IngressPolicy` to apply.
3619
+ Structure is documented below.
3620
+ """
3621
+ elif False:
3622
+ ServicePerimeterSpecIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
3623
+
2641
3624
  @pulumi.input_type
2642
3625
  class ServicePerimeterSpecIngressPolicyArgs:
2643
3626
  def __init__(__self__, *,
@@ -2685,6 +3668,29 @@ class ServicePerimeterSpecIngressPolicyArgs:
2685
3668
  pulumi.set(self, "ingress_to", value)
2686
3669
 
2687
3670
 
3671
+ if not MYPY:
3672
+ class ServicePerimeterSpecIngressPolicyIngressFromArgsDict(TypedDict):
3673
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3674
+ """
3675
+ A list of identities that are allowed access through this ingress policy.
3676
+ Should be in the format of email address. The email address should represent
3677
+ individual user or service account only.
3678
+ """
3679
+ identity_type: NotRequired[pulumi.Input[str]]
3680
+ """
3681
+ Specifies the type of identities that are allowed access from outside the
3682
+ perimeter. If left unspecified, then members of `identities` field will be
3683
+ allowed access.
3684
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
3685
+ """
3686
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict']]]]
3687
+ """
3688
+ Sources that this `IngressPolicy` authorizes access from.
3689
+ Structure is documented below.
3690
+ """
3691
+ elif False:
3692
+ ServicePerimeterSpecIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
3693
+
2688
3694
  @pulumi.input_type
2689
3695
  class ServicePerimeterSpecIngressPolicyIngressFromArgs:
2690
3696
  def __init__(__self__, *,
@@ -2752,6 +3758,24 @@ class ServicePerimeterSpecIngressPolicyIngressFromArgs:
2752
3758
  pulumi.set(self, "sources", value)
2753
3759
 
2754
3760
 
3761
+ if not MYPY:
3762
+ class ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict(TypedDict):
3763
+ access_level: NotRequired[pulumi.Input[str]]
3764
+ """
3765
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
3766
+ """
3767
+ resource: NotRequired[pulumi.Input[str]]
3768
+ """
3769
+ A Google Cloud resource that is allowed to ingress the perimeter.
3770
+ Requests from these resources will be allowed to access perimeter data.
3771
+ Currently only projects are allowed. Format `projects/{project_number}`
3772
+ The project may be in any Google Cloud organization, not just the
3773
+ organization that the perimeter is defined in. `*` is not allowed, the case
3774
+ of allowing all Google Cloud resources only is not supported.
3775
+ """
3776
+ elif False:
3777
+ ServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
3778
+
2755
3779
  @pulumi.input_type
2756
3780
  class ServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
2757
3781
  def __init__(__self__, *,
@@ -2801,6 +3825,28 @@ class ServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
2801
3825
  pulumi.set(self, "resource", value)
2802
3826
 
2803
3827
 
3828
+ if not MYPY:
3829
+ class ServicePerimeterSpecIngressPolicyIngressToArgsDict(TypedDict):
3830
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict']]]]
3831
+ """
3832
+ A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
3833
+ are allowed to perform in this `ServicePerimeter`.
3834
+ Structure is documented below.
3835
+ """
3836
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3837
+ """
3838
+ A list of resources, currently only projects in the form
3839
+ `projects/<projectnumber>`, protected by this `ServicePerimeter`
3840
+ that are allowed to be accessed by sources defined in the
3841
+ corresponding `IngressFrom`. A request matches if it contains
3842
+ a resource in this list. If `*` is specified for resources,
3843
+ then this `IngressTo` rule will authorize access to all
3844
+ resources inside the perimeter, provided that the request
3845
+ also matches the `operations` field.
3846
+ """
3847
+ elif False:
3848
+ ServicePerimeterSpecIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
3849
+
2804
3850
  @pulumi.input_type
2805
3851
  class ServicePerimeterSpecIngressPolicyIngressToArgs:
2806
3852
  def __init__(__self__, *,
@@ -2858,6 +3904,25 @@ class ServicePerimeterSpecIngressPolicyIngressToArgs:
2858
3904
  pulumi.set(self, "resources", value)
2859
3905
 
2860
3906
 
3907
+ if not MYPY:
3908
+ class ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict(TypedDict):
3909
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
3910
+ """
3911
+ API methods or permissions to allow. Method or permission must belong
3912
+ to the service specified by `serviceName` field. A single MethodSelector
3913
+ entry with `*` specified for the `method` field will allow all methods
3914
+ AND permissions for the service specified in `serviceName`.
3915
+ Structure is documented below.
3916
+ """
3917
+ service_name: NotRequired[pulumi.Input[str]]
3918
+ """
3919
+ The name of the API whose methods or permissions the `IngressPolicy` or
3920
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
3921
+ field set to `*` will allow all methods AND permissions for all services.
3922
+ """
3923
+ elif False:
3924
+ ServicePerimeterSpecIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
3925
+
2861
3926
  @pulumi.input_type
2862
3927
  class ServicePerimeterSpecIngressPolicyIngressToOperationArgs:
2863
3928
  def __init__(__self__, *,
@@ -2909,6 +3974,22 @@ class ServicePerimeterSpecIngressPolicyIngressToOperationArgs:
2909
3974
  pulumi.set(self, "service_name", value)
2910
3975
 
2911
3976
 
3977
+ if not MYPY:
3978
+ class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
3979
+ method: NotRequired[pulumi.Input[str]]
3980
+ """
3981
+ Value for `method` should be a valid method name for the corresponding
3982
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
3983
+ then ALL methods and permissions are allowed.
3984
+ """
3985
+ permission: NotRequired[pulumi.Input[str]]
3986
+ """
3987
+ Value for permission should be a valid Cloud IAM permission for the
3988
+ corresponding `serviceName` in `ApiOperation`.
3989
+ """
3990
+ elif False:
3991
+ ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
3992
+
2912
3993
  @pulumi.input_type
2913
3994
  class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
2914
3995
  def __init__(__self__, *,
@@ -2954,6 +4035,21 @@ class ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
2954
4035
  pulumi.set(self, "permission", value)
2955
4036
 
2956
4037
 
4038
+ if not MYPY:
4039
+ class ServicePerimeterSpecVpcAccessibleServicesArgsDict(TypedDict):
4040
+ allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4041
+ """
4042
+ The list of APIs usable within the Service Perimeter.
4043
+ Must be empty unless `enableRestriction` is True.
4044
+ """
4045
+ enable_restriction: NotRequired[pulumi.Input[bool]]
4046
+ """
4047
+ Whether to restrict API calls within the Service Perimeter to the
4048
+ list of APIs specified in 'allowedServices'.
4049
+ """
4050
+ elif False:
4051
+ ServicePerimeterSpecVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
4052
+
2957
4053
  @pulumi.input_type
2958
4054
  class ServicePerimeterSpecVpcAccessibleServicesArgs:
2959
4055
  def __init__(__self__, *,
@@ -2997,6 +4093,59 @@ class ServicePerimeterSpecVpcAccessibleServicesArgs:
2997
4093
  pulumi.set(self, "enable_restriction", value)
2998
4094
 
2999
4095
 
4096
+ if not MYPY:
4097
+ class ServicePerimeterStatusArgsDict(TypedDict):
4098
+ access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4099
+ """
4100
+ A list of AccessLevel resource names that allow resources within
4101
+ the ServicePerimeter to be accessed from the internet.
4102
+ AccessLevels listed must be in the same policy as this
4103
+ ServicePerimeter. Referencing a nonexistent AccessLevel is a
4104
+ syntax error. If no AccessLevel names are listed, resources within
4105
+ the perimeter can only be accessed via GCP calls with request
4106
+ origins within the perimeter. For Service Perimeter Bridge, must
4107
+ be empty.
4108
+ Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
4109
+ """
4110
+ egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyArgsDict']]]]
4111
+ """
4112
+ List of EgressPolicies to apply to the perimeter. A perimeter may
4113
+ have multiple EgressPolicies, each of which is evaluated separately.
4114
+ Access is granted if any EgressPolicy grants it. Must be empty for
4115
+ a perimeter bridge.
4116
+ Structure is documented below.
4117
+ """
4118
+ ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyArgsDict']]]]
4119
+ """
4120
+ List of `IngressPolicies` to apply to the perimeter. A perimeter may
4121
+ have multiple `IngressPolicies`, each of which is evaluated
4122
+ separately. Access is granted if any `Ingress Policy` grants it.
4123
+ Must be empty for a perimeter bridge.
4124
+ Structure is documented below.
4125
+ """
4126
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4127
+ """
4128
+ A list of GCP resources that are inside of the service perimeter.
4129
+ Currently only projects are allowed.
4130
+ Format: projects/{project_number}
4131
+ """
4132
+ restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4133
+ """
4134
+ GCP services that are subject to the Service Perimeter
4135
+ restrictions. Must contain a list of services. For example, if
4136
+ `storage.googleapis.com` is specified, access to the storage
4137
+ buckets inside the perimeter must meet the perimeter's access
4138
+ restrictions.
4139
+ """
4140
+ vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimeterStatusVpcAccessibleServicesArgsDict']]
4141
+ """
4142
+ Specifies how APIs are allowed to communicate within the Service
4143
+ Perimeter.
4144
+ Structure is documented below.
4145
+ """
4146
+ elif False:
4147
+ ServicePerimeterStatusArgsDict: TypeAlias = Mapping[str, Any]
4148
+
3000
4149
  @pulumi.input_type
3001
4150
  class ServicePerimeterStatusArgs:
3002
4151
  def __init__(__self__, *,
@@ -3148,6 +4297,22 @@ class ServicePerimeterStatusArgs:
3148
4297
  pulumi.set(self, "vpc_accessible_services", value)
3149
4298
 
3150
4299
 
4300
+ if not MYPY:
4301
+ class ServicePerimeterStatusEgressPolicyArgsDict(TypedDict):
4302
+ egress_from: NotRequired[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressFromArgsDict']]
4303
+ """
4304
+ Defines conditions on the source of a request causing this `EgressPolicy` to apply.
4305
+ Structure is documented below.
4306
+ """
4307
+ egress_to: NotRequired[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToArgsDict']]
4308
+ """
4309
+ Defines the conditions on the `ApiOperation` and destination resources that
4310
+ cause this `EgressPolicy` to apply.
4311
+ Structure is documented below.
4312
+ """
4313
+ elif False:
4314
+ ServicePerimeterStatusEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
4315
+
3151
4316
  @pulumi.input_type
3152
4317
  class ServicePerimeterStatusEgressPolicyArgs:
3153
4318
  def __init__(__self__, *,
@@ -3193,6 +4358,34 @@ class ServicePerimeterStatusEgressPolicyArgs:
3193
4358
  pulumi.set(self, "egress_to", value)
3194
4359
 
3195
4360
 
4361
+ if not MYPY:
4362
+ class ServicePerimeterStatusEgressPolicyEgressFromArgsDict(TypedDict):
4363
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4364
+ """
4365
+ A list of identities that are allowed access through this `EgressPolicy`.
4366
+ Should be in the format of email address. The email address should
4367
+ represent individual user or service account only.
4368
+ """
4369
+ identity_type: NotRequired[pulumi.Input[str]]
4370
+ """
4371
+ Specifies the type of identities that are allowed access to outside the
4372
+ perimeter. If left unspecified, then members of `identities` field will
4373
+ be allowed access.
4374
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
4375
+ """
4376
+ source_restriction: NotRequired[pulumi.Input[str]]
4377
+ """
4378
+ Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
4379
+ Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
4380
+ """
4381
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict']]]]
4382
+ """
4383
+ Sources that this EgressPolicy authorizes access from.
4384
+ Structure is documented below.
4385
+ """
4386
+ elif False:
4387
+ ServicePerimeterStatusEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
4388
+
3196
4389
  @pulumi.input_type
3197
4390
  class ServicePerimeterStatusEgressPolicyEgressFromArgs:
3198
4391
  def __init__(__self__, *,
@@ -3278,6 +4471,15 @@ class ServicePerimeterStatusEgressPolicyEgressFromArgs:
3278
4471
  pulumi.set(self, "sources", value)
3279
4472
 
3280
4473
 
4474
+ if not MYPY:
4475
+ class ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict(TypedDict):
4476
+ access_level: NotRequired[pulumi.Input[str]]
4477
+ """
4478
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
4479
+ """
4480
+ elif False:
4481
+ ServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
4482
+
3281
4483
  @pulumi.input_type
3282
4484
  class ServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
3283
4485
  def __init__(__self__, *,
@@ -3301,6 +4503,31 @@ class ServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
3301
4503
  pulumi.set(self, "access_level", value)
3302
4504
 
3303
4505
 
4506
+ if not MYPY:
4507
+ class ServicePerimeterStatusEgressPolicyEgressToArgsDict(TypedDict):
4508
+ external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4509
+ """
4510
+ A list of external resources that are allowed to be accessed. A request
4511
+ matches if it contains an external resource in this list (Example:
4512
+ s3://bucket/path). Currently '*' is not allowed.
4513
+ """
4514
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict']]]]
4515
+ """
4516
+ A list of `ApiOperations` that this egress rule applies to. A request matches
4517
+ if it contains an operation/service in this list.
4518
+ Structure is documented below.
4519
+ """
4520
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4521
+ """
4522
+ A list of resources, currently only projects in the form
4523
+ `projects/<projectnumber>`, that match this to stanza. A request matches
4524
+ if it contains a resource in this list. If * is specified for resources,
4525
+ then this `EgressTo` rule will authorize access to all resources outside
4526
+ the perimeter.
4527
+ """
4528
+ elif False:
4529
+ ServicePerimeterStatusEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
4530
+
3304
4531
  @pulumi.input_type
3305
4532
  class ServicePerimeterStatusEgressPolicyEgressToArgs:
3306
4533
  def __init__(__self__, *,
@@ -3372,6 +4599,25 @@ class ServicePerimeterStatusEgressPolicyEgressToArgs:
3372
4599
  pulumi.set(self, "resources", value)
3373
4600
 
3374
4601
 
4602
+ if not MYPY:
4603
+ class ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict(TypedDict):
4604
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
4605
+ """
4606
+ API methods or permissions to allow. Method or permission must belong
4607
+ to the service specified by `serviceName` field. A single MethodSelector
4608
+ entry with `*` specified for the `method` field will allow all methods
4609
+ AND permissions for the service specified in `serviceName`.
4610
+ Structure is documented below.
4611
+ """
4612
+ service_name: NotRequired[pulumi.Input[str]]
4613
+ """
4614
+ The name of the API whose methods or permissions the `IngressPolicy` or
4615
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
4616
+ field set to `*` will allow all methods AND permissions for all services.
4617
+ """
4618
+ elif False:
4619
+ ServicePerimeterStatusEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
4620
+
3375
4621
  @pulumi.input_type
3376
4622
  class ServicePerimeterStatusEgressPolicyEgressToOperationArgs:
3377
4623
  def __init__(__self__, *,
@@ -3423,6 +4669,22 @@ class ServicePerimeterStatusEgressPolicyEgressToOperationArgs:
3423
4669
  pulumi.set(self, "service_name", value)
3424
4670
 
3425
4671
 
4672
+ if not MYPY:
4673
+ class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
4674
+ method: NotRequired[pulumi.Input[str]]
4675
+ """
4676
+ Value for `method` should be a valid method name for the corresponding
4677
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
4678
+ then ALL methods and permissions are allowed.
4679
+ """
4680
+ permission: NotRequired[pulumi.Input[str]]
4681
+ """
4682
+ Value for permission should be a valid Cloud IAM permission for the
4683
+ corresponding `serviceName` in `ApiOperation`.
4684
+ """
4685
+ elif False:
4686
+ ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
4687
+
3426
4688
  @pulumi.input_type
3427
4689
  class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
3428
4690
  def __init__(__self__, *,
@@ -3468,6 +4730,23 @@ class ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
3468
4730
  pulumi.set(self, "permission", value)
3469
4731
 
3470
4732
 
4733
+ if not MYPY:
4734
+ class ServicePerimeterStatusIngressPolicyArgsDict(TypedDict):
4735
+ ingress_from: NotRequired[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressFromArgsDict']]
4736
+ """
4737
+ Defines the conditions on the source of a request causing this `IngressPolicy`
4738
+ to apply.
4739
+ Structure is documented below.
4740
+ """
4741
+ ingress_to: NotRequired[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToArgsDict']]
4742
+ """
4743
+ Defines the conditions on the `ApiOperation` and request destination that cause
4744
+ this `IngressPolicy` to apply.
4745
+ Structure is documented below.
4746
+ """
4747
+ elif False:
4748
+ ServicePerimeterStatusIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
4749
+
3471
4750
  @pulumi.input_type
3472
4751
  class ServicePerimeterStatusIngressPolicyArgs:
3473
4752
  def __init__(__self__, *,
@@ -3515,6 +4794,29 @@ class ServicePerimeterStatusIngressPolicyArgs:
3515
4794
  pulumi.set(self, "ingress_to", value)
3516
4795
 
3517
4796
 
4797
+ if not MYPY:
4798
+ class ServicePerimeterStatusIngressPolicyIngressFromArgsDict(TypedDict):
4799
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4800
+ """
4801
+ A list of identities that are allowed access through this ingress policy.
4802
+ Should be in the format of email address. The email address should represent
4803
+ individual user or service account only.
4804
+ """
4805
+ identity_type: NotRequired[pulumi.Input[str]]
4806
+ """
4807
+ Specifies the type of identities that are allowed access from outside the
4808
+ perimeter. If left unspecified, then members of `identities` field will be
4809
+ allowed access.
4810
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
4811
+ """
4812
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict']]]]
4813
+ """
4814
+ Sources that this `IngressPolicy` authorizes access from.
4815
+ Structure is documented below.
4816
+ """
4817
+ elif False:
4818
+ ServicePerimeterStatusIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
4819
+
3518
4820
  @pulumi.input_type
3519
4821
  class ServicePerimeterStatusIngressPolicyIngressFromArgs:
3520
4822
  def __init__(__self__, *,
@@ -3582,6 +4884,24 @@ class ServicePerimeterStatusIngressPolicyIngressFromArgs:
3582
4884
  pulumi.set(self, "sources", value)
3583
4885
 
3584
4886
 
4887
+ if not MYPY:
4888
+ class ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict(TypedDict):
4889
+ access_level: NotRequired[pulumi.Input[str]]
4890
+ """
4891
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
4892
+ """
4893
+ resource: NotRequired[pulumi.Input[str]]
4894
+ """
4895
+ A Google Cloud resource that is allowed to ingress the perimeter.
4896
+ Requests from these resources will be allowed to access perimeter data.
4897
+ Currently only projects are allowed. Format `projects/{project_number}`
4898
+ The project may be in any Google Cloud organization, not just the
4899
+ organization that the perimeter is defined in. `*` is not allowed, the case
4900
+ of allowing all Google Cloud resources only is not supported.
4901
+ """
4902
+ elif False:
4903
+ ServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
4904
+
3585
4905
  @pulumi.input_type
3586
4906
  class ServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
3587
4907
  def __init__(__self__, *,
@@ -3624,12 +4944,34 @@ class ServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
3624
4944
  organization that the perimeter is defined in. `*` is not allowed, the case
3625
4945
  of allowing all Google Cloud resources only is not supported.
3626
4946
  """
3627
- return pulumi.get(self, "resource")
3628
-
3629
- @resource.setter
3630
- def resource(self, value: Optional[pulumi.Input[str]]):
3631
- pulumi.set(self, "resource", value)
3632
-
4947
+ return pulumi.get(self, "resource")
4948
+
4949
+ @resource.setter
4950
+ def resource(self, value: Optional[pulumi.Input[str]]):
4951
+ pulumi.set(self, "resource", value)
4952
+
4953
+
4954
+ if not MYPY:
4955
+ class ServicePerimeterStatusIngressPolicyIngressToArgsDict(TypedDict):
4956
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict']]]]
4957
+ """
4958
+ A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
4959
+ are allowed to perform in this `ServicePerimeter`.
4960
+ Structure is documented below.
4961
+ """
4962
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
4963
+ """
4964
+ A list of resources, currently only projects in the form
4965
+ `projects/<projectnumber>`, protected by this `ServicePerimeter`
4966
+ that are allowed to be accessed by sources defined in the
4967
+ corresponding `IngressFrom`. A request matches if it contains
4968
+ a resource in this list. If `*` is specified for resources,
4969
+ then this `IngressTo` rule will authorize access to all
4970
+ resources inside the perimeter, provided that the request
4971
+ also matches the `operations` field.
4972
+ """
4973
+ elif False:
4974
+ ServicePerimeterStatusIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
3633
4975
 
3634
4976
  @pulumi.input_type
3635
4977
  class ServicePerimeterStatusIngressPolicyIngressToArgs:
@@ -3688,6 +5030,25 @@ class ServicePerimeterStatusIngressPolicyIngressToArgs:
3688
5030
  pulumi.set(self, "resources", value)
3689
5031
 
3690
5032
 
5033
+ if not MYPY:
5034
+ class ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict(TypedDict):
5035
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
5036
+ """
5037
+ API methods or permissions to allow. Method or permission must belong
5038
+ to the service specified by `serviceName` field. A single MethodSelector
5039
+ entry with `*` specified for the `method` field will allow all methods
5040
+ AND permissions for the service specified in `serviceName`.
5041
+ Structure is documented below.
5042
+ """
5043
+ service_name: NotRequired[pulumi.Input[str]]
5044
+ """
5045
+ The name of the API whose methods or permissions the `IngressPolicy` or
5046
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
5047
+ field set to `*` will allow all methods AND permissions for all services.
5048
+ """
5049
+ elif False:
5050
+ ServicePerimeterStatusIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
5051
+
3691
5052
  @pulumi.input_type
3692
5053
  class ServicePerimeterStatusIngressPolicyIngressToOperationArgs:
3693
5054
  def __init__(__self__, *,
@@ -3739,6 +5100,22 @@ class ServicePerimeterStatusIngressPolicyIngressToOperationArgs:
3739
5100
  pulumi.set(self, "service_name", value)
3740
5101
 
3741
5102
 
5103
+ if not MYPY:
5104
+ class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
5105
+ method: NotRequired[pulumi.Input[str]]
5106
+ """
5107
+ Value for `method` should be a valid method name for the corresponding
5108
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
5109
+ then ALL methods and permissions are allowed.
5110
+ """
5111
+ permission: NotRequired[pulumi.Input[str]]
5112
+ """
5113
+ Value for permission should be a valid Cloud IAM permission for the
5114
+ corresponding `serviceName` in `ApiOperation`.
5115
+ """
5116
+ elif False:
5117
+ ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
5118
+
3742
5119
  @pulumi.input_type
3743
5120
  class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
3744
5121
  def __init__(__self__, *,
@@ -3784,6 +5161,21 @@ class ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
3784
5161
  pulumi.set(self, "permission", value)
3785
5162
 
3786
5163
 
5164
+ if not MYPY:
5165
+ class ServicePerimeterStatusVpcAccessibleServicesArgsDict(TypedDict):
5166
+ allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5167
+ """
5168
+ The list of APIs usable within the Service Perimeter.
5169
+ Must be empty unless `enableRestriction` is True.
5170
+ """
5171
+ enable_restriction: NotRequired[pulumi.Input[bool]]
5172
+ """
5173
+ Whether to restrict API calls within the Service Perimeter to the
5174
+ list of APIs specified in 'allowedServices'.
5175
+ """
5176
+ elif False:
5177
+ ServicePerimeterStatusVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
5178
+
3787
5179
  @pulumi.input_type
3788
5180
  class ServicePerimeterStatusVpcAccessibleServicesArgs:
3789
5181
  def __init__(__self__, *,
@@ -3827,6 +5219,82 @@ class ServicePerimeterStatusVpcAccessibleServicesArgs:
3827
5219
  pulumi.set(self, "enable_restriction", value)
3828
5220
 
3829
5221
 
5222
+ if not MYPY:
5223
+ class ServicePerimetersServicePerimeterArgsDict(TypedDict):
5224
+ name: pulumi.Input[str]
5225
+ """
5226
+ Resource name for the ServicePerimeter. The short_name component must
5227
+ begin with a letter and only include alphanumeric and '_'.
5228
+ Format: accessPolicies/{policy_id}/servicePerimeters/{short_name}
5229
+ """
5230
+ title: pulumi.Input[str]
5231
+ """
5232
+ Human readable title. Must be unique within the Policy.
5233
+ """
5234
+ create_time: NotRequired[pulumi.Input[str]]
5235
+ """
5236
+ (Output)
5237
+ Time the AccessPolicy was created in UTC.
5238
+ """
5239
+ description: NotRequired[pulumi.Input[str]]
5240
+ """
5241
+ Description of the ServicePerimeter and its use. Does not affect
5242
+ behavior.
5243
+ """
5244
+ perimeter_type: NotRequired[pulumi.Input[str]]
5245
+ """
5246
+ Specifies the type of the Perimeter. There are two types: regular and
5247
+ bridge. Regular Service Perimeter contains resources, access levels,
5248
+ and restricted services. Every resource can be in at most
5249
+ ONE regular Service Perimeter.
5250
+ In addition to being in a regular service perimeter, a resource can also
5251
+ be in zero or more perimeter bridges. A perimeter bridge only contains
5252
+ resources. Cross project operations are permitted if all effected
5253
+ resources share some perimeter (whether bridge or regular). Perimeter
5254
+ Bridge does not contain access levels or services: those are governed
5255
+ entirely by the regular perimeter that resource is in.
5256
+ Perimeter Bridges are typically useful when building more complex
5257
+ topologies with many independent perimeters that need to share some data
5258
+ with a common perimeter, but should not be able to share data among
5259
+ themselves.
5260
+ Default value is `PERIMETER_TYPE_REGULAR`.
5261
+ Possible values are: `PERIMETER_TYPE_REGULAR`, `PERIMETER_TYPE_BRIDGE`.
5262
+ """
5263
+ spec: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecArgsDict']]
5264
+ """
5265
+ Proposed (or dry run) ServicePerimeter configuration.
5266
+ This configuration allows to specify and test ServicePerimeter configuration
5267
+ without enforcing actual access restrictions. Only allowed to be set when
5268
+ the `useExplicitDryRunSpec` flag is set.
5269
+ Structure is documented below.
5270
+ """
5271
+ status: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusArgsDict']]
5272
+ """
5273
+ ServicePerimeter configuration. Specifies sets of resources,
5274
+ restricted services and access levels that determine
5275
+ perimeter content and boundaries.
5276
+ Structure is documented below.
5277
+ """
5278
+ update_time: NotRequired[pulumi.Input[str]]
5279
+ """
5280
+ (Output)
5281
+ Time the AccessPolicy was updated in UTC.
5282
+ """
5283
+ use_explicit_dry_run_spec: NotRequired[pulumi.Input[bool]]
5284
+ """
5285
+ Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists
5286
+ for all Service Perimeters, and that spec is identical to the status for those
5287
+ Service Perimeters. When this flag is set, it inhibits the generation of the
5288
+ implicit spec, thereby allowing the user to explicitly provide a
5289
+ configuration ("spec") to use in a dry-run version of the Service Perimeter.
5290
+ This allows the user to test changes to the enforced config ("status") without
5291
+ actually enforcing them. This testing is done through analyzing the differences
5292
+ between currently enforced and suggested restrictions. useExplicitDryRunSpec must
5293
+ bet set to True if any of the fields in the spec are set to non-default values.
5294
+ """
5295
+ elif False:
5296
+ ServicePerimetersServicePerimeterArgsDict: TypeAlias = Mapping[str, Any]
5297
+
3830
5298
  @pulumi.input_type
3831
5299
  class ServicePerimetersServicePerimeterArgs:
3832
5300
  def __init__(__self__, *,
@@ -4046,6 +5514,59 @@ class ServicePerimetersServicePerimeterArgs:
4046
5514
  pulumi.set(self, "use_explicit_dry_run_spec", value)
4047
5515
 
4048
5516
 
5517
+ if not MYPY:
5518
+ class ServicePerimetersServicePerimeterSpecArgsDict(TypedDict):
5519
+ access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5520
+ """
5521
+ A list of AccessLevel resource names that allow resources within
5522
+ the ServicePerimeter to be accessed from the internet.
5523
+ AccessLevels listed must be in the same policy as this
5524
+ ServicePerimeter. Referencing a nonexistent AccessLevel is a
5525
+ syntax error. If no AccessLevel names are listed, resources within
5526
+ the perimeter can only be accessed via GCP calls with request
5527
+ origins within the perimeter. For Service Perimeter Bridge, must
5528
+ be empty.
5529
+ Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
5530
+ """
5531
+ egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict']]]]
5532
+ """
5533
+ List of EgressPolicies to apply to the perimeter. A perimeter may
5534
+ have multiple EgressPolicies, each of which is evaluated separately.
5535
+ Access is granted if any EgressPolicy grants it. Must be empty for
5536
+ a perimeter bridge.
5537
+ Structure is documented below.
5538
+ """
5539
+ ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict']]]]
5540
+ """
5541
+ List of `IngressPolicies` to apply to the perimeter. A perimeter may
5542
+ have multiple `IngressPolicies`, each of which is evaluated
5543
+ separately. Access is granted if any `Ingress Policy` grants it.
5544
+ Must be empty for a perimeter bridge.
5545
+ Structure is documented below.
5546
+ """
5547
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5548
+ """
5549
+ A list of GCP resources that are inside of the service perimeter.
5550
+ Currently only projects are allowed.
5551
+ Format: projects/{project_number}
5552
+ """
5553
+ restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5554
+ """
5555
+ GCP services that are subject to the Service Perimeter
5556
+ restrictions. Must contain a list of services. For example, if
5557
+ `storage.googleapis.com` is specified, access to the storage
5558
+ buckets inside the perimeter must meet the perimeter's access
5559
+ restrictions.
5560
+ """
5561
+ vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict']]
5562
+ """
5563
+ Specifies how APIs are allowed to communicate within the Service
5564
+ Perimeter.
5565
+ Structure is documented below.
5566
+ """
5567
+ elif False:
5568
+ ServicePerimetersServicePerimeterSpecArgsDict: TypeAlias = Mapping[str, Any]
5569
+
4049
5570
  @pulumi.input_type
4050
5571
  class ServicePerimetersServicePerimeterSpecArgs:
4051
5572
  def __init__(__self__, *,
@@ -4197,6 +5718,22 @@ class ServicePerimetersServicePerimeterSpecArgs:
4197
5718
  pulumi.set(self, "vpc_accessible_services", value)
4198
5719
 
4199
5720
 
5721
+ if not MYPY:
5722
+ class ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict(TypedDict):
5723
+ egress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict']]
5724
+ """
5725
+ Defines conditions on the source of a request causing this `EgressPolicy` to apply.
5726
+ Structure is documented below.
5727
+ """
5728
+ egress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict']]
5729
+ """
5730
+ Defines the conditions on the `ApiOperation` and destination resources that
5731
+ cause this `EgressPolicy` to apply.
5732
+ Structure is documented below.
5733
+ """
5734
+ elif False:
5735
+ ServicePerimetersServicePerimeterSpecEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
5736
+
4200
5737
  @pulumi.input_type
4201
5738
  class ServicePerimetersServicePerimeterSpecEgressPolicyArgs:
4202
5739
  def __init__(__self__, *,
@@ -4242,6 +5779,34 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyArgs:
4242
5779
  pulumi.set(self, "egress_to", value)
4243
5780
 
4244
5781
 
5782
+ if not MYPY:
5783
+ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict(TypedDict):
5784
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5785
+ """
5786
+ A list of identities that are allowed access through this `EgressPolicy`.
5787
+ Should be in the format of email address. The email address should
5788
+ represent individual user or service account only.
5789
+ """
5790
+ identity_type: NotRequired[pulumi.Input[str]]
5791
+ """
5792
+ Specifies the type of identities that are allowed access to outside the
5793
+ perimeter. If left unspecified, then members of `identities` field will
5794
+ be allowed access.
5795
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
5796
+ """
5797
+ source_restriction: NotRequired[pulumi.Input[str]]
5798
+ """
5799
+ Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
5800
+ Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
5801
+ """
5802
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict']]]]
5803
+ """
5804
+ Sources that this EgressPolicy authorizes access from.
5805
+ Structure is documented below.
5806
+ """
5807
+ elif False:
5808
+ ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
5809
+
4245
5810
  @pulumi.input_type
4246
5811
  class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs:
4247
5812
  def __init__(__self__, *,
@@ -4327,6 +5892,15 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromArgs:
4327
5892
  pulumi.set(self, "sources", value)
4328
5893
 
4329
5894
 
5895
+ if not MYPY:
5896
+ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict(TypedDict):
5897
+ access_level: NotRequired[pulumi.Input[str]]
5898
+ """
5899
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
5900
+ """
5901
+ elif False:
5902
+ ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
5903
+
4330
5904
  @pulumi.input_type
4331
5905
  class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
4332
5906
  def __init__(__self__, *,
@@ -4350,6 +5924,31 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSourceArgs:
4350
5924
  pulumi.set(self, "access_level", value)
4351
5925
 
4352
5926
 
5927
+ if not MYPY:
5928
+ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict(TypedDict):
5929
+ external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5930
+ """
5931
+ A list of external resources that are allowed to be accessed. A request
5932
+ matches if it contains an external resource in this list (Example:
5933
+ s3://bucket/path). Currently '*' is not allowed.
5934
+ """
5935
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict']]]]
5936
+ """
5937
+ A list of `ApiOperations` that this egress rule applies to. A request matches
5938
+ if it contains an operation/service in this list.
5939
+ Structure is documented below.
5940
+ """
5941
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
5942
+ """
5943
+ A list of resources, currently only projects in the form
5944
+ `projects/<projectnumber>`, that match this to stanza. A request matches
5945
+ if it contains a resource in this list. If * is specified for resources,
5946
+ then this `EgressTo` rule will authorize access to all resources outside
5947
+ the perimeter.
5948
+ """
5949
+ elif False:
5950
+ ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
5951
+
4353
5952
  @pulumi.input_type
4354
5953
  class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs:
4355
5954
  def __init__(__self__, *,
@@ -4421,6 +6020,25 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToArgs:
4421
6020
  pulumi.set(self, "resources", value)
4422
6021
 
4423
6022
 
6023
+ if not MYPY:
6024
+ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict(TypedDict):
6025
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
6026
+ """
6027
+ API methods or permissions to allow. Method or permission must belong
6028
+ to the service specified by `serviceName` field. A single MethodSelector
6029
+ entry with `*` specified for the `method` field will allow all methods
6030
+ AND permissions for the service specified in `serviceName`.
6031
+ Structure is documented below.
6032
+ """
6033
+ service_name: NotRequired[pulumi.Input[str]]
6034
+ """
6035
+ The name of the API whose methods or permissions the `IngressPolicy` or
6036
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
6037
+ field set to `*` will allow all methods AND permissions for all services.
6038
+ """
6039
+ elif False:
6040
+ ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
6041
+
4424
6042
  @pulumi.input_type
4425
6043
  class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs:
4426
6044
  def __init__(__self__, *,
@@ -4472,6 +6090,22 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationArgs:
4472
6090
  pulumi.set(self, "service_name", value)
4473
6091
 
4474
6092
 
6093
+ if not MYPY:
6094
+ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
6095
+ method: NotRequired[pulumi.Input[str]]
6096
+ """
6097
+ Value for `method` should be a valid method name for the corresponding
6098
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
6099
+ then ALL methods and permissions are allowed.
6100
+ """
6101
+ permission: NotRequired[pulumi.Input[str]]
6102
+ """
6103
+ Value for permission should be a valid Cloud IAM permission for the
6104
+ corresponding `serviceName` in `ApiOperation`.
6105
+ """
6106
+ elif False:
6107
+ ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
6108
+
4475
6109
  @pulumi.input_type
4476
6110
  class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelectorArgs:
4477
6111
  def __init__(__self__, *,
@@ -4517,6 +6151,23 @@ class ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSe
4517
6151
  pulumi.set(self, "permission", value)
4518
6152
 
4519
6153
 
6154
+ if not MYPY:
6155
+ class ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict(TypedDict):
6156
+ ingress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict']]
6157
+ """
6158
+ Defines the conditions on the source of a request causing this `IngressPolicy`
6159
+ to apply.
6160
+ Structure is documented below.
6161
+ """
6162
+ ingress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict']]
6163
+ """
6164
+ Defines the conditions on the `ApiOperation` and request destination that cause
6165
+ this `IngressPolicy` to apply.
6166
+ Structure is documented below.
6167
+ """
6168
+ elif False:
6169
+ ServicePerimetersServicePerimeterSpecIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
6170
+
4520
6171
  @pulumi.input_type
4521
6172
  class ServicePerimetersServicePerimeterSpecIngressPolicyArgs:
4522
6173
  def __init__(__self__, *,
@@ -4564,6 +6215,29 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyArgs:
4564
6215
  pulumi.set(self, "ingress_to", value)
4565
6216
 
4566
6217
 
6218
+ if not MYPY:
6219
+ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict(TypedDict):
6220
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6221
+ """
6222
+ A list of identities that are allowed access through this ingress policy.
6223
+ Should be in the format of email address. The email address should represent
6224
+ individual user or service account only.
6225
+ """
6226
+ identity_type: NotRequired[pulumi.Input[str]]
6227
+ """
6228
+ Specifies the type of identities that are allowed access from outside the
6229
+ perimeter. If left unspecified, then members of `identities` field will be
6230
+ allowed access.
6231
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
6232
+ """
6233
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict']]]]
6234
+ """
6235
+ Sources that this `IngressPolicy` authorizes access from.
6236
+ Structure is documented below.
6237
+ """
6238
+ elif False:
6239
+ ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
6240
+
4567
6241
  @pulumi.input_type
4568
6242
  class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs:
4569
6243
  def __init__(__self__, *,
@@ -4631,6 +6305,24 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromArgs:
4631
6305
  pulumi.set(self, "sources", value)
4632
6306
 
4633
6307
 
6308
+ if not MYPY:
6309
+ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict(TypedDict):
6310
+ access_level: NotRequired[pulumi.Input[str]]
6311
+ """
6312
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
6313
+ """
6314
+ resource: NotRequired[pulumi.Input[str]]
6315
+ """
6316
+ A Google Cloud resource that is allowed to ingress the perimeter.
6317
+ Requests from these resources will be allowed to access perimeter data.
6318
+ Currently only projects are allowed. Format `projects/{project_number}`
6319
+ The project may be in any Google Cloud organization, not just the
6320
+ organization that the perimeter is defined in. `*` is not allowed, the case
6321
+ of allowing all Google Cloud resources only is not supported.
6322
+ """
6323
+ elif False:
6324
+ ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
6325
+
4634
6326
  @pulumi.input_type
4635
6327
  class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
4636
6328
  def __init__(__self__, *,
@@ -4680,6 +6372,28 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSourceArgs:
4680
6372
  pulumi.set(self, "resource", value)
4681
6373
 
4682
6374
 
6375
+ if not MYPY:
6376
+ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict(TypedDict):
6377
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict']]]]
6378
+ """
6379
+ A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
6380
+ are allowed to perform in this `ServicePerimeter`.
6381
+ Structure is documented below.
6382
+ """
6383
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6384
+ """
6385
+ A list of resources, currently only projects in the form
6386
+ `projects/<projectnumber>`, protected by this `ServicePerimeter`
6387
+ that are allowed to be accessed by sources defined in the
6388
+ corresponding `IngressFrom`. A request matches if it contains
6389
+ a resource in this list. If `*` is specified for resources,
6390
+ then this `IngressTo` rule will authorize access to all
6391
+ resources inside the perimeter, provided that the request
6392
+ also matches the `operations` field.
6393
+ """
6394
+ elif False:
6395
+ ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
6396
+
4683
6397
  @pulumi.input_type
4684
6398
  class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs:
4685
6399
  def __init__(__self__, *,
@@ -4737,6 +6451,25 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToArgs:
4737
6451
  pulumi.set(self, "resources", value)
4738
6452
 
4739
6453
 
6454
+ if not MYPY:
6455
+ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict(TypedDict):
6456
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
6457
+ """
6458
+ API methods or permissions to allow. Method or permission must belong
6459
+ to the service specified by `serviceName` field. A single MethodSelector
6460
+ entry with `*` specified for the `method` field will allow all methods
6461
+ AND permissions for the service specified in `serviceName`.
6462
+ Structure is documented below.
6463
+ """
6464
+ service_name: NotRequired[pulumi.Input[str]]
6465
+ """
6466
+ The name of the API whose methods or permissions the `IngressPolicy` or
6467
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
6468
+ field set to `*` will allow all methods AND permissions for all services.
6469
+ """
6470
+ elif False:
6471
+ ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
6472
+
4740
6473
  @pulumi.input_type
4741
6474
  class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs:
4742
6475
  def __init__(__self__, *,
@@ -4788,6 +6521,22 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationArgs:
4788
6521
  pulumi.set(self, "service_name", value)
4789
6522
 
4790
6523
 
6524
+ if not MYPY:
6525
+ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
6526
+ method: NotRequired[pulumi.Input[str]]
6527
+ """
6528
+ Value for `method` should be a valid method name for the corresponding
6529
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
6530
+ then ALL methods and permissions are allowed.
6531
+ """
6532
+ permission: NotRequired[pulumi.Input[str]]
6533
+ """
6534
+ Value for permission should be a valid Cloud IAM permission for the
6535
+ corresponding `serviceName` in `ApiOperation`.
6536
+ """
6537
+ elif False:
6538
+ ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
6539
+
4791
6540
  @pulumi.input_type
4792
6541
  class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelectorArgs:
4793
6542
  def __init__(__self__, *,
@@ -4833,6 +6582,21 @@ class ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethod
4833
6582
  pulumi.set(self, "permission", value)
4834
6583
 
4835
6584
 
6585
+ if not MYPY:
6586
+ class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict(TypedDict):
6587
+ allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6588
+ """
6589
+ The list of APIs usable within the Service Perimeter.
6590
+ Must be empty unless `enableRestriction` is True.
6591
+ """
6592
+ enable_restriction: NotRequired[pulumi.Input[bool]]
6593
+ """
6594
+ Whether to restrict API calls within the Service Perimeter to the
6595
+ list of APIs specified in 'allowedServices'.
6596
+ """
6597
+ elif False:
6598
+ ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
6599
+
4836
6600
  @pulumi.input_type
4837
6601
  class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs:
4838
6602
  def __init__(__self__, *,
@@ -4876,6 +6640,59 @@ class ServicePerimetersServicePerimeterSpecVpcAccessibleServicesArgs:
4876
6640
  pulumi.set(self, "enable_restriction", value)
4877
6641
 
4878
6642
 
6643
+ if not MYPY:
6644
+ class ServicePerimetersServicePerimeterStatusArgsDict(TypedDict):
6645
+ access_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6646
+ """
6647
+ A list of AccessLevel resource names that allow resources within
6648
+ the ServicePerimeter to be accessed from the internet.
6649
+ AccessLevels listed must be in the same policy as this
6650
+ ServicePerimeter. Referencing a nonexistent AccessLevel is a
6651
+ syntax error. If no AccessLevel names are listed, resources within
6652
+ the perimeter can only be accessed via GCP calls with request
6653
+ origins within the perimeter. For Service Perimeter Bridge, must
6654
+ be empty.
6655
+ Format: accessPolicies/{policy_id}/accessLevels/{access_level_name}
6656
+ """
6657
+ egress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict']]]]
6658
+ """
6659
+ List of EgressPolicies to apply to the perimeter. A perimeter may
6660
+ have multiple EgressPolicies, each of which is evaluated separately.
6661
+ Access is granted if any EgressPolicy grants it. Must be empty for
6662
+ a perimeter bridge.
6663
+ Structure is documented below.
6664
+ """
6665
+ ingress_policies: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict']]]]
6666
+ """
6667
+ List of `IngressPolicies` to apply to the perimeter. A perimeter may
6668
+ have multiple `IngressPolicies`, each of which is evaluated
6669
+ separately. Access is granted if any `Ingress Policy` grants it.
6670
+ Must be empty for a perimeter bridge.
6671
+ Structure is documented below.
6672
+ """
6673
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6674
+ """
6675
+ A list of GCP resources that are inside of the service perimeter.
6676
+ Currently only projects are allowed.
6677
+ Format: projects/{project_number}
6678
+ """
6679
+ restricted_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6680
+ """
6681
+ GCP services that are subject to the Service Perimeter
6682
+ restrictions. Must contain a list of services. For example, if
6683
+ `storage.googleapis.com` is specified, access to the storage
6684
+ buckets inside the perimeter must meet the perimeter's access
6685
+ restrictions.
6686
+ """
6687
+ vpc_accessible_services: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict']]
6688
+ """
6689
+ Specifies how APIs are allowed to communicate within the Service
6690
+ Perimeter.
6691
+ Structure is documented below.
6692
+ """
6693
+ elif False:
6694
+ ServicePerimetersServicePerimeterStatusArgsDict: TypeAlias = Mapping[str, Any]
6695
+
4879
6696
  @pulumi.input_type
4880
6697
  class ServicePerimetersServicePerimeterStatusArgs:
4881
6698
  def __init__(__self__, *,
@@ -5027,6 +6844,22 @@ class ServicePerimetersServicePerimeterStatusArgs:
5027
6844
  pulumi.set(self, "vpc_accessible_services", value)
5028
6845
 
5029
6846
 
6847
+ if not MYPY:
6848
+ class ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict(TypedDict):
6849
+ egress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict']]
6850
+ """
6851
+ Defines conditions on the source of a request causing this `EgressPolicy` to apply.
6852
+ Structure is documented below.
6853
+ """
6854
+ egress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict']]
6855
+ """
6856
+ Defines the conditions on the `ApiOperation` and destination resources that
6857
+ cause this `EgressPolicy` to apply.
6858
+ Structure is documented below.
6859
+ """
6860
+ elif False:
6861
+ ServicePerimetersServicePerimeterStatusEgressPolicyArgsDict: TypeAlias = Mapping[str, Any]
6862
+
5030
6863
  @pulumi.input_type
5031
6864
  class ServicePerimetersServicePerimeterStatusEgressPolicyArgs:
5032
6865
  def __init__(__self__, *,
@@ -5072,6 +6905,34 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyArgs:
5072
6905
  pulumi.set(self, "egress_to", value)
5073
6906
 
5074
6907
 
6908
+ if not MYPY:
6909
+ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict(TypedDict):
6910
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6911
+ """
6912
+ A list of identities that are allowed access through this `EgressPolicy`.
6913
+ Should be in the format of email address. The email address should
6914
+ represent individual user or service account only.
6915
+ """
6916
+ identity_type: NotRequired[pulumi.Input[str]]
6917
+ """
6918
+ Specifies the type of identities that are allowed access to outside the
6919
+ perimeter. If left unspecified, then members of `identities` field will
6920
+ be allowed access.
6921
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
6922
+ """
6923
+ source_restriction: NotRequired[pulumi.Input[str]]
6924
+ """
6925
+ Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
6926
+ Possible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
6927
+ """
6928
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict']]]]
6929
+ """
6930
+ Sources that this EgressPolicy authorizes access from.
6931
+ Structure is documented below.
6932
+ """
6933
+ elif False:
6934
+ ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
6935
+
5075
6936
  @pulumi.input_type
5076
6937
  class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs:
5077
6938
  def __init__(__self__, *,
@@ -5157,6 +7018,15 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromArgs:
5157
7018
  pulumi.set(self, "sources", value)
5158
7019
 
5159
7020
 
7021
+ if not MYPY:
7022
+ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict(TypedDict):
7023
+ access_level: NotRequired[pulumi.Input[str]]
7024
+ """
7025
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
7026
+ """
7027
+ elif False:
7028
+ ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
7029
+
5160
7030
  @pulumi.input_type
5161
7031
  class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
5162
7032
  def __init__(__self__, *,
@@ -5180,6 +7050,31 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSourceArgs:
5180
7050
  pulumi.set(self, "access_level", value)
5181
7051
 
5182
7052
 
7053
+ if not MYPY:
7054
+ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict(TypedDict):
7055
+ external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7056
+ """
7057
+ A list of external resources that are allowed to be accessed. A request
7058
+ matches if it contains an external resource in this list (Example:
7059
+ s3://bucket/path). Currently '*' is not allowed.
7060
+ """
7061
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict']]]]
7062
+ """
7063
+ A list of `ApiOperations` that this egress rule applies to. A request matches
7064
+ if it contains an operation/service in this list.
7065
+ Structure is documented below.
7066
+ """
7067
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7068
+ """
7069
+ A list of resources, currently only projects in the form
7070
+ `projects/<projectnumber>`, that match this to stanza. A request matches
7071
+ if it contains a resource in this list. If * is specified for resources,
7072
+ then this `EgressTo` rule will authorize access to all resources outside
7073
+ the perimeter.
7074
+ """
7075
+ elif False:
7076
+ ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
7077
+
5183
7078
  @pulumi.input_type
5184
7079
  class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs:
5185
7080
  def __init__(__self__, *,
@@ -5251,6 +7146,25 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToArgs:
5251
7146
  pulumi.set(self, "resources", value)
5252
7147
 
5253
7148
 
7149
+ if not MYPY:
7150
+ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict(TypedDict):
7151
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
7152
+ """
7153
+ API methods or permissions to allow. Method or permission must belong
7154
+ to the service specified by `serviceName` field. A single MethodSelector
7155
+ entry with `*` specified for the `method` field will allow all methods
7156
+ AND permissions for the service specified in `serviceName`.
7157
+ Structure is documented below.
7158
+ """
7159
+ service_name: NotRequired[pulumi.Input[str]]
7160
+ """
7161
+ The name of the API whose methods or permissions the `IngressPolicy` or
7162
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
7163
+ field set to `*` will allow all methods AND permissions for all services.
7164
+ """
7165
+ elif False:
7166
+ ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
7167
+
5254
7168
  @pulumi.input_type
5255
7169
  class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs:
5256
7170
  def __init__(__self__, *,
@@ -5302,6 +7216,22 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationArgs:
5302
7216
  pulumi.set(self, "service_name", value)
5303
7217
 
5304
7218
 
7219
+ if not MYPY:
7220
+ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
7221
+ method: NotRequired[pulumi.Input[str]]
7222
+ """
7223
+ Value for `method` should be a valid method name for the corresponding
7224
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
7225
+ then ALL methods and permissions are allowed.
7226
+ """
7227
+ permission: NotRequired[pulumi.Input[str]]
7228
+ """
7229
+ Value for permission should be a valid Cloud IAM permission for the
7230
+ corresponding `serviceName` in `ApiOperation`.
7231
+ """
7232
+ elif False:
7233
+ ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
7234
+
5305
7235
  @pulumi.input_type
5306
7236
  class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelectorArgs:
5307
7237
  def __init__(__self__, *,
@@ -5347,6 +7277,23 @@ class ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethod
5347
7277
  pulumi.set(self, "permission", value)
5348
7278
 
5349
7279
 
7280
+ if not MYPY:
7281
+ class ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict(TypedDict):
7282
+ ingress_from: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict']]
7283
+ """
7284
+ Defines the conditions on the source of a request causing this `IngressPolicy`
7285
+ to apply.
7286
+ Structure is documented below.
7287
+ """
7288
+ ingress_to: NotRequired[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict']]
7289
+ """
7290
+ Defines the conditions on the `ApiOperation` and request destination that cause
7291
+ this `IngressPolicy` to apply.
7292
+ Structure is documented below.
7293
+ """
7294
+ elif False:
7295
+ ServicePerimetersServicePerimeterStatusIngressPolicyArgsDict: TypeAlias = Mapping[str, Any]
7296
+
5350
7297
  @pulumi.input_type
5351
7298
  class ServicePerimetersServicePerimeterStatusIngressPolicyArgs:
5352
7299
  def __init__(__self__, *,
@@ -5394,6 +7341,29 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyArgs:
5394
7341
  pulumi.set(self, "ingress_to", value)
5395
7342
 
5396
7343
 
7344
+ if not MYPY:
7345
+ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict(TypedDict):
7346
+ identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7347
+ """
7348
+ A list of identities that are allowed access through this ingress policy.
7349
+ Should be in the format of email address. The email address should represent
7350
+ individual user or service account only.
7351
+ """
7352
+ identity_type: NotRequired[pulumi.Input[str]]
7353
+ """
7354
+ Specifies the type of identities that are allowed access from outside the
7355
+ perimeter. If left unspecified, then members of `identities` field will be
7356
+ allowed access.
7357
+ Possible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
7358
+ """
7359
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict']]]]
7360
+ """
7361
+ Sources that this `IngressPolicy` authorizes access from.
7362
+ Structure is documented below.
7363
+ """
7364
+ elif False:
7365
+ ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
7366
+
5397
7367
  @pulumi.input_type
5398
7368
  class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs:
5399
7369
  def __init__(__self__, *,
@@ -5461,6 +7431,24 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromArgs:
5461
7431
  pulumi.set(self, "sources", value)
5462
7432
 
5463
7433
 
7434
+ if not MYPY:
7435
+ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict(TypedDict):
7436
+ access_level: NotRequired[pulumi.Input[str]]
7437
+ """
7438
+ An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
7439
+ """
7440
+ resource: NotRequired[pulumi.Input[str]]
7441
+ """
7442
+ A Google Cloud resource that is allowed to ingress the perimeter.
7443
+ Requests from these resources will be allowed to access perimeter data.
7444
+ Currently only projects are allowed. Format `projects/{project_number}`
7445
+ The project may be in any Google Cloud organization, not just the
7446
+ organization that the perimeter is defined in. `*` is not allowed, the case
7447
+ of allowing all Google Cloud resources only is not supported.
7448
+ """
7449
+ elif False:
7450
+ ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
7451
+
5464
7452
  @pulumi.input_type
5465
7453
  class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
5466
7454
  def __init__(__self__, *,
@@ -5510,6 +7498,28 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSourceArgs:
5510
7498
  pulumi.set(self, "resource", value)
5511
7499
 
5512
7500
 
7501
+ if not MYPY:
7502
+ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict(TypedDict):
7503
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict']]]]
7504
+ """
7505
+ A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
7506
+ are allowed to perform in this `ServicePerimeter`.
7507
+ Structure is documented below.
7508
+ """
7509
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7510
+ """
7511
+ A list of resources, currently only projects in the form
7512
+ `projects/<projectnumber>`, protected by this `ServicePerimeter`
7513
+ that are allowed to be accessed by sources defined in the
7514
+ corresponding `IngressFrom`. A request matches if it contains
7515
+ a resource in this list. If `*` is specified for resources,
7516
+ then this `IngressTo` rule will authorize access to all
7517
+ resources inside the perimeter, provided that the request
7518
+ also matches the `operations` field.
7519
+ """
7520
+ elif False:
7521
+ ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
7522
+
5513
7523
  @pulumi.input_type
5514
7524
  class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs:
5515
7525
  def __init__(__self__, *,
@@ -5567,6 +7577,25 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToArgs:
5567
7577
  pulumi.set(self, "resources", value)
5568
7578
 
5569
7579
 
7580
+ if not MYPY:
7581
+ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict(TypedDict):
7582
+ method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
7583
+ """
7584
+ API methods or permissions to allow. Method or permission must belong
7585
+ to the service specified by `serviceName` field. A single MethodSelector
7586
+ entry with `*` specified for the `method` field will allow all methods
7587
+ AND permissions for the service specified in `serviceName`.
7588
+ Structure is documented below.
7589
+ """
7590
+ service_name: NotRequired[pulumi.Input[str]]
7591
+ """
7592
+ The name of the API whose methods or permissions the `IngressPolicy` or
7593
+ `EgressPolicy` want to allow. A single `ApiOperation` with serviceName
7594
+ field set to `*` will allow all methods AND permissions for all services.
7595
+ """
7596
+ elif False:
7597
+ ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
7598
+
5570
7599
  @pulumi.input_type
5571
7600
  class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs:
5572
7601
  def __init__(__self__, *,
@@ -5618,6 +7647,22 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationArgs
5618
7647
  pulumi.set(self, "service_name", value)
5619
7648
 
5620
7649
 
7650
+ if not MYPY:
7651
+ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
7652
+ method: NotRequired[pulumi.Input[str]]
7653
+ """
7654
+ Value for `method` should be a valid method name for the corresponding
7655
+ `serviceName` in `ApiOperation`. If `*` used as value for method,
7656
+ then ALL methods and permissions are allowed.
7657
+ """
7658
+ permission: NotRequired[pulumi.Input[str]]
7659
+ """
7660
+ Value for permission should be a valid Cloud IAM permission for the
7661
+ corresponding `serviceName` in `ApiOperation`.
7662
+ """
7663
+ elif False:
7664
+ ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
7665
+
5621
7666
  @pulumi.input_type
5622
7667
  class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelectorArgs:
5623
7668
  def __init__(__self__, *,
@@ -5663,6 +7708,21 @@ class ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMeth
5663
7708
  pulumi.set(self, "permission", value)
5664
7709
 
5665
7710
 
7711
+ if not MYPY:
7712
+ class ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict(TypedDict):
7713
+ allowed_services: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
7714
+ """
7715
+ The list of APIs usable within the Service Perimeter.
7716
+ Must be empty unless `enableRestriction` is True.
7717
+ """
7718
+ enable_restriction: NotRequired[pulumi.Input[bool]]
7719
+ """
7720
+ Whether to restrict API calls within the Service Perimeter to the
7721
+ list of APIs specified in 'allowedServices'.
7722
+ """
7723
+ elif False:
7724
+ ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgsDict: TypeAlias = Mapping[str, Any]
7725
+
5666
7726
  @pulumi.input_type
5667
7727
  class ServicePerimetersServicePerimeterStatusVpcAccessibleServicesArgs:
5668
7728
  def __init__(__self__, *,