pulumi-gcp 7.24.0a1716588893__py3-none-any.whl → 7.25.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. pulumi_gcp/__init__.py +88 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -64
  3. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -70
  4. pulumi_gcp/alloydb/backup.py +50 -42
  5. pulumi_gcp/alloydb/cluster.py +56 -48
  6. pulumi_gcp/alloydb/instance.py +50 -42
  7. pulumi_gcp/alloydb/user.py +32 -24
  8. pulumi_gcp/apigateway/api_config.py +0 -114
  9. pulumi_gcp/apigateway/gateway.py +0 -44
  10. pulumi_gcp/apigee/addons_config.py +14 -4
  11. pulumi_gcp/apigee/endpoint_attachment.py +4 -2
  12. pulumi_gcp/apigee/env_group.py +4 -2
  13. pulumi_gcp/apigee/environment.py +4 -2
  14. pulumi_gcp/apigee/instance.py +22 -8
  15. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +26 -10
  16. pulumi_gcp/apigee/nat_address.py +10 -2
  17. pulumi_gcp/apigee/organization.py +18 -6
  18. pulumi_gcp/apigee/sync_authorization.py +8 -4
  19. pulumi_gcp/apigee/target_server.py +26 -10
  20. pulumi_gcp/appengine/_inputs.py +18 -0
  21. pulumi_gcp/appengine/domain_mapping.py +1 -1
  22. pulumi_gcp/appengine/outputs.py +16 -0
  23. pulumi_gcp/apphub/service.py +40 -20
  24. pulumi_gcp/apphub/service_project_attachment.py +16 -8
  25. pulumi_gcp/apphub/workload.py +0 -418
  26. pulumi_gcp/applicationintegration/auth_config.py +4 -2
  27. pulumi_gcp/artifactregistry/repository.py +14 -12
  28. pulumi_gcp/backupdisasterrecovery/management_server.py +4 -2
  29. pulumi_gcp/bigquery/_inputs.py +286 -2
  30. pulumi_gcp/bigquery/data_transfer_config.py +8 -4
  31. pulumi_gcp/bigquery/job.py +22 -16
  32. pulumi_gcp/bigquery/outputs.py +289 -2
  33. pulumi_gcp/bigquery/table.py +77 -35
  34. pulumi_gcp/certificateauthority/authority.py +10 -2
  35. pulumi_gcp/certificateauthority/certificate.py +8 -4
  36. pulumi_gcp/certificatemanager/certificate.py +84 -80
  37. pulumi_gcp/certificatemanager/certificate_issuance_config.py +32 -30
  38. pulumi_gcp/cloudbuild/bitbucket_server_config.py +12 -6
  39. pulumi_gcp/cloudbuild/trigger.py +22 -14
  40. pulumi_gcp/cloudbuild/worker_pool.py +12 -6
  41. pulumi_gcp/cloudbuildv2/connection.py +10 -2
  42. pulumi_gcp/cloudbuildv2/repository.py +10 -2
  43. pulumi_gcp/cloudfunctionsv2/function.py +110 -66
  44. pulumi_gcp/cloudids/endpoint.py +4 -2
  45. pulumi_gcp/cloudrun/_inputs.py +80 -4
  46. pulumi_gcp/cloudrun/outputs.py +137 -4
  47. pulumi_gcp/cloudrunv2/job.py +32 -20
  48. pulumi_gcp/cloudrunv2/service.py +28 -20
  49. pulumi_gcp/composer/user_workloads_secret.py +4 -4
  50. pulumi_gcp/compute/__init__.py +1 -0
  51. pulumi_gcp/compute/_inputs.py +398 -176
  52. pulumi_gcp/compute/forwarding_rule.py +225 -817
  53. pulumi_gcp/compute/get_subnetworks.py +157 -0
  54. pulumi_gcp/compute/global_forwarding_rule.py +0 -766
  55. pulumi_gcp/compute/instance_group.py +0 -100
  56. pulumi_gcp/compute/instance_group_membership.py +2 -2
  57. pulumi_gcp/compute/interconnect_attachment.py +82 -0
  58. pulumi_gcp/compute/network_endpoint.py +2 -2
  59. pulumi_gcp/compute/network_endpoint_list.py +2 -2
  60. pulumi_gcp/compute/outputs.py +609 -161
  61. pulumi_gcp/compute/packet_mirroring.py +4 -2
  62. pulumi_gcp/compute/region_security_policy_rule.py +4 -2
  63. pulumi_gcp/compute/region_ssl_certificate.py +0 -188
  64. pulumi_gcp/compute/region_ssl_policy.py +39 -40
  65. pulumi_gcp/compute/route.py +10 -2
  66. pulumi_gcp/compute/security_policy_rule.py +55 -1
  67. pulumi_gcp/compute/ssl_certificate.py +0 -166
  68. pulumi_gcp/compute/target_instance.py +4 -2
  69. pulumi_gcp/compute/vpn_gateway.py +12 -2
  70. pulumi_gcp/compute/vpn_tunnel.py +26 -16
  71. pulumi_gcp/container/_inputs.py +560 -0
  72. pulumi_gcp/container/outputs.py +1106 -51
  73. pulumi_gcp/databasemigrationservice/connection_profile.py +32 -16
  74. pulumi_gcp/datacatalog/policy_tag.py +4 -2
  75. pulumi_gcp/datafusion/instance.py +14 -12
  76. pulumi_gcp/dataplex/__init__.py +10 -0
  77. pulumi_gcp/dataplex/_inputs.py +160 -0
  78. pulumi_gcp/dataplex/aspect_type.py +1077 -0
  79. pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
  80. pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
  81. pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
  82. pulumi_gcp/dataplex/asset.py +4 -2
  83. pulumi_gcp/dataplex/datascan.py +16 -14
  84. pulumi_gcp/dataplex/entry_group.py +722 -0
  85. pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
  86. pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
  87. pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
  88. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
  89. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
  90. pulumi_gcp/dataplex/outputs.py +112 -0
  91. pulumi_gcp/datastore/data_store_index.py +4 -2
  92. pulumi_gcp/datastream/connection_profile.py +47 -0
  93. pulumi_gcp/datastream/private_connection.py +47 -0
  94. pulumi_gcp/datastream/stream.py +63 -10
  95. pulumi_gcp/diagflow/cx_test_case.py +4 -4
  96. pulumi_gcp/diagflow/entity_type.py +4 -2
  97. pulumi_gcp/diagflow/fulfillment.py +4 -2
  98. pulumi_gcp/diagflow/intent.py +8 -4
  99. pulumi_gcp/dns/get_managed_zone.py +3 -3
  100. pulumi_gcp/dns/managed_zone.py +7 -7
  101. pulumi_gcp/dns/outputs.py +2 -2
  102. pulumi_gcp/edgecontainer/node_pool.py +4 -2
  103. pulumi_gcp/edgecontainer/vpn_connection.py +4 -2
  104. pulumi_gcp/eventarc/channel.py +4 -2
  105. pulumi_gcp/eventarc/google_channel_config.py +4 -2
  106. pulumi_gcp/firebase/app_check_app_attest_config.py +16 -8
  107. pulumi_gcp/firebase/app_check_debug_token.py +8 -4
  108. pulumi_gcp/firebase/app_check_device_check_config.py +8 -4
  109. pulumi_gcp/firebase/app_check_play_integrity_config.py +16 -8
  110. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +8 -4
  111. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +8 -4
  112. pulumi_gcp/firebase/app_check_service_config.py +12 -6
  113. pulumi_gcp/firebase/database_instance.py +4 -2
  114. pulumi_gcp/firebaserules/release.py +0 -98
  115. pulumi_gcp/firestore/database.py +24 -20
  116. pulumi_gcp/firestore/document.py +24 -12
  117. pulumi_gcp/folder/access_approval_settings.py +4 -2
  118. pulumi_gcp/gkehub/membership_binding.py +14 -4
  119. pulumi_gcp/gkehub/membership_rbac_role_binding.py +8 -4
  120. pulumi_gcp/gkehub/namespace.py +4 -2
  121. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -2
  122. pulumi_gcp/integrationconnectors/connection.py +4 -2
  123. pulumi_gcp/integrationconnectors/managed_zone.py +18 -6
  124. pulumi_gcp/kms/__init__.py +2 -0
  125. pulumi_gcp/kms/autokey_config.py +366 -0
  126. pulumi_gcp/kms/key_handle.py +548 -0
  127. pulumi_gcp/logging/folder_settings.py +12 -10
  128. pulumi_gcp/logging/linked_dataset.py +4 -2
  129. pulumi_gcp/logging/organization_settings.py +12 -10
  130. pulumi_gcp/logging/project_bucket_config.py +4 -2
  131. pulumi_gcp/looker/instance.py +12 -10
  132. pulumi_gcp/netapp/volume_replication.py +4 -2
  133. pulumi_gcp/netapp/volume_snapshot.py +4 -2
  134. pulumi_gcp/networkconnectivity/internal_range.py +14 -12
  135. pulumi_gcp/networksecurity/gateway_security_policy.py +16 -4
  136. pulumi_gcp/networksecurity/tls_inspection_policy.py +22 -4
  137. pulumi_gcp/networkservices/__init__.py +1 -0
  138. pulumi_gcp/networkservices/_inputs.py +245 -27
  139. pulumi_gcp/networkservices/gateway.py +12 -6
  140. pulumi_gcp/networkservices/lb_route_extension.py +663 -0
  141. pulumi_gcp/networkservices/lb_traffic_extension.py +28 -540
  142. pulumi_gcp/networkservices/outputs.py +251 -20
  143. pulumi_gcp/organizations/access_approval_settings.py +4 -2
  144. pulumi_gcp/orgpolicy/policy.py +2 -2
  145. pulumi_gcp/parallelstore/instance.py +20 -18
  146. pulumi_gcp/projects/access_approval_settings.py +4 -2
  147. pulumi_gcp/pubsub/_inputs.py +16 -0
  148. pulumi_gcp/pubsub/outputs.py +25 -0
  149. pulumi_gcp/pubsub/schema.py +4 -2
  150. pulumi_gcp/pubsub/subscription.py +102 -66
  151. pulumi_gcp/pubsub/topic.py +4 -2
  152. pulumi_gcp/pulumi-plugin.json +1 -1
  153. pulumi_gcp/redis/cluster.py +30 -28
  154. pulumi_gcp/redis/instance.py +4 -2
  155. pulumi_gcp/secretmanager/secret.py +4 -2
  156. pulumi_gcp/securesourcemanager/instance.py +20 -8
  157. pulumi_gcp/securitycenter/instance_iam_binding.py +14 -12
  158. pulumi_gcp/securitycenter/instance_iam_member.py +14 -12
  159. pulumi_gcp/securitycenter/instance_iam_policy.py +14 -12
  160. pulumi_gcp/serviceaccount/key.py +2 -2
  161. pulumi_gcp/sql/database_instance.py +4 -2
  162. pulumi_gcp/sql/user.py +4 -4
  163. pulumi_gcp/storage/get_project_service_account.py +4 -2
  164. pulumi_gcp/storage/insights_report_config.py +12 -10
  165. pulumi_gcp/storage/notification.py +18 -16
  166. pulumi_gcp/storage/transfer_agent_pool.py +4 -2
  167. pulumi_gcp/storage/transfer_job.py +14 -4
  168. pulumi_gcp/tpu/_inputs.py +2 -2
  169. pulumi_gcp/tpu/outputs.py +2 -2
  170. pulumi_gcp/tpu/v2_vm.py +10 -6
  171. pulumi_gcp/vertex/ai_endpoint.py +24 -22
  172. pulumi_gcp/vertex/ai_index_endpoint.py +20 -18
  173. pulumi_gcp/vertex/ai_tensorboard.py +14 -12
  174. pulumi_gcp/vmwareengine/external_address.py +4 -2
  175. pulumi_gcp/vmwareengine/network.py +8 -4
  176. {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/METADATA +1 -1
  177. {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/RECORD +179 -165
  178. {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/WHEEL +0 -0
  179. {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/top_level.txt +0 -0
@@ -528,7 +528,6 @@ class Function(pulumi.CustomResource):
528
528
  available_memory="256M",
529
529
  timeout_seconds=60,
530
530
  ))
531
- pulumi.export("functionUri", function.service_config.uri)
532
531
  ```
533
532
  ### Cloudfunctions2 Full
534
533
 
@@ -684,15 +683,18 @@ class Function(pulumi.CustomResource):
684
683
  invoking = gcp.projects.IAMMember("invoking",
685
684
  project="my-project-name",
686
685
  role="roles/run.invoker",
687
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
686
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
687
+ opts=pulumi.ResourceOptions(depends_on=[gcs_pubsub_publishing]))
688
688
  event_receiving = gcp.projects.IAMMember("event-receiving",
689
689
  project="my-project-name",
690
690
  role="roles/eventarc.eventReceiver",
691
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
691
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
692
+ opts=pulumi.ResourceOptions(depends_on=[invoking]))
692
693
  artifactregistry_reader = gcp.projects.IAMMember("artifactregistry-reader",
693
694
  project="my-project-name",
694
695
  role="roles/artifactregistry.reader",
695
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
696
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
697
+ opts=pulumi.ResourceOptions(depends_on=[event_receiving]))
696
698
  function = gcp.cloudfunctionsv2.Function("function",
697
699
  name="gcf-function",
698
700
  location="us-central1",
@@ -730,7 +732,11 @@ class Function(pulumi.CustomResource):
730
732
  attribute="bucket",
731
733
  value=trigger_bucket.name,
732
734
  )],
733
- ))
735
+ ),
736
+ opts=pulumi.ResourceOptions(depends_on=[
737
+ event_receiving,
738
+ artifactregistry_reader,
739
+ ]))
734
740
  ```
735
741
  ### Cloudfunctions2 Basic Auditlogs
736
742
 
@@ -768,11 +774,13 @@ class Function(pulumi.CustomResource):
768
774
  event_receiving = gcp.projects.IAMMember("event-receiving",
769
775
  project="my-project-name",
770
776
  role="roles/eventarc.eventReceiver",
771
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
777
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
778
+ opts=pulumi.ResourceOptions(depends_on=[invoking]))
772
779
  artifactregistry_reader = gcp.projects.IAMMember("artifactregistry-reader",
773
780
  project="my-project-name",
774
781
  role="roles/artifactregistry.reader",
775
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
782
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
783
+ opts=pulumi.ResourceOptions(depends_on=[event_receiving]))
776
784
  function = gcp.cloudfunctionsv2.Function("function",
777
785
  name="gcf-function",
778
786
  location="us-central1",
@@ -822,7 +830,11 @@ class Function(pulumi.CustomResource):
822
830
  operator="match-path-pattern",
823
831
  ),
824
832
  ],
825
- ))
833
+ ),
834
+ opts=pulumi.ResourceOptions(depends_on=[
835
+ event_receiving,
836
+ artifactregistry_reader,
837
+ ]))
826
838
  ```
827
839
  ### Cloudfunctions2 Basic Builder
828
840
 
@@ -856,7 +868,12 @@ class Function(pulumi.CustomResource):
856
868
  bucket=bucket.name,
857
869
  source=pulumi.FileAsset("function-source.zip"))
858
870
  # builder permissions need to stablize before it can pull the source zip
859
- wait60s = time.index.Sleep("wait_60s", create_duration=60s)
871
+ wait60s = time.index.Sleep("wait_60s", create_duration=60s,
872
+ opts=pulumi.ResourceOptions(depends_on=[
873
+ log_writer,
874
+ artifact_registry_writer,
875
+ storage_object_admin,
876
+ ]))
860
877
  function = gcp.cloudfunctionsv2.Function("function",
861
878
  name="function-v2",
862
879
  location="us-central1",
@@ -876,8 +893,8 @@ class Function(pulumi.CustomResource):
876
893
  max_instance_count=1,
877
894
  available_memory="256M",
878
895
  timeout_seconds=60,
879
- ))
880
- pulumi.export("functionUri", function.service_config.uri)
896
+ ),
897
+ opts=pulumi.ResourceOptions(depends_on=[wait60s]))
881
898
  ```
882
899
  ### Cloudfunctions2 Secret Env
883
900
 
@@ -903,6 +920,10 @@ class Function(pulumi.CustomResource):
903
920
  )],
904
921
  ),
905
922
  ))
923
+ secret_secret_version = gcp.secretmanager.SecretVersion("secret",
924
+ secret=secret.name,
925
+ secret_data="secret",
926
+ enabled=True)
906
927
  function = gcp.cloudfunctionsv2.Function("function",
907
928
  name="function-secret",
908
929
  location="us-central1",
@@ -927,11 +948,8 @@ class Function(pulumi.CustomResource):
927
948
  secret=secret.secret_id,
928
949
  version="latest",
929
950
  )],
930
- ))
931
- secret_secret_version = gcp.secretmanager.SecretVersion("secret",
932
- secret=secret.name,
933
- secret_data="secret",
934
- enabled=True)
951
+ ),
952
+ opts=pulumi.ResourceOptions(depends_on=[secret_secret_version]))
935
953
  ```
936
954
  ### Cloudfunctions2 Secret Volume
937
955
 
@@ -957,6 +975,10 @@ class Function(pulumi.CustomResource):
957
975
  )],
958
976
  ),
959
977
  ))
978
+ secret_secret_version = gcp.secretmanager.SecretVersion("secret",
979
+ secret=secret.name,
980
+ secret_data="secret",
981
+ enabled=True)
960
982
  function = gcp.cloudfunctionsv2.Function("function",
961
983
  name="function-secret",
962
984
  location="us-central1",
@@ -980,11 +1002,8 @@ class Function(pulumi.CustomResource):
980
1002
  project_id=project,
981
1003
  secret=secret.secret_id,
982
1004
  )],
983
- ))
984
- secret_secret_version = gcp.secretmanager.SecretVersion("secret",
985
- secret=secret.name,
986
- secret_data="secret",
987
- enabled=True)
1005
+ ),
1006
+ opts=pulumi.ResourceOptions(depends_on=[secret_secret_version]))
988
1007
  ```
989
1008
  ### Cloudfunctions2 Private Workerpool
990
1009
 
@@ -1053,16 +1072,6 @@ class Function(pulumi.CustomResource):
1053
1072
  repository_id="ar-repo",
1054
1073
  location="us-central1",
1055
1074
  format="DOCKER")
1056
- encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo",
1057
- location="us-central1",
1058
- repository_id="cmek-repo",
1059
- format="DOCKER",
1060
- kms_key_name="cmek-key")
1061
- binding = gcp.artifactregistry.RepositoryIamBinding("binding",
1062
- location=encoded_ar_repo.location,
1063
- repository=encoded_ar_repo.name,
1064
- role="roles/artifactregistry.admin",
1065
- members=[f"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com"])
1066
1075
  gcf_cmek_keyuser = gcp.kms.CryptoKeyIAMBinding("gcf_cmek_keyuser",
1067
1076
  crypto_key_id="cmek-key",
1068
1077
  role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
@@ -1072,7 +1081,19 @@ class Function(pulumi.CustomResource):
1072
1081
  f"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com",
1073
1082
  f"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com",
1074
1083
  ea_sa.email.apply(lambda email: f"serviceAccount:{email}"),
1075
- ])
1084
+ ],
1085
+ opts=pulumi.ResourceOptions(depends_on=[ea_sa]))
1086
+ encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo",
1087
+ location="us-central1",
1088
+ repository_id="cmek-repo",
1089
+ format="DOCKER",
1090
+ kms_key_name="cmek-key",
1091
+ opts=pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))
1092
+ binding = gcp.artifactregistry.RepositoryIamBinding("binding",
1093
+ location=encoded_ar_repo.location,
1094
+ repository=encoded_ar_repo.name,
1095
+ role="roles/artifactregistry.admin",
1096
+ members=[f"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com"])
1076
1097
  function = gcp.cloudfunctionsv2.Function("function",
1077
1098
  name="function-cmek",
1078
1099
  location="us-central1",
@@ -1093,7 +1114,8 @@ class Function(pulumi.CustomResource):
1093
1114
  max_instance_count=1,
1094
1115
  available_memory="256M",
1095
1116
  timeout_seconds=60,
1096
- ))
1117
+ ),
1118
+ opts=pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))
1097
1119
  ```
1098
1120
 
1099
1121
  ## Import
@@ -1195,7 +1217,6 @@ class Function(pulumi.CustomResource):
1195
1217
  available_memory="256M",
1196
1218
  timeout_seconds=60,
1197
1219
  ))
1198
- pulumi.export("functionUri", function.service_config.uri)
1199
1220
  ```
1200
1221
  ### Cloudfunctions2 Full
1201
1222
 
@@ -1351,15 +1372,18 @@ class Function(pulumi.CustomResource):
1351
1372
  invoking = gcp.projects.IAMMember("invoking",
1352
1373
  project="my-project-name",
1353
1374
  role="roles/run.invoker",
1354
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
1375
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
1376
+ opts=pulumi.ResourceOptions(depends_on=[gcs_pubsub_publishing]))
1355
1377
  event_receiving = gcp.projects.IAMMember("event-receiving",
1356
1378
  project="my-project-name",
1357
1379
  role="roles/eventarc.eventReceiver",
1358
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
1380
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
1381
+ opts=pulumi.ResourceOptions(depends_on=[invoking]))
1359
1382
  artifactregistry_reader = gcp.projects.IAMMember("artifactregistry-reader",
1360
1383
  project="my-project-name",
1361
1384
  role="roles/artifactregistry.reader",
1362
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
1385
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
1386
+ opts=pulumi.ResourceOptions(depends_on=[event_receiving]))
1363
1387
  function = gcp.cloudfunctionsv2.Function("function",
1364
1388
  name="gcf-function",
1365
1389
  location="us-central1",
@@ -1397,7 +1421,11 @@ class Function(pulumi.CustomResource):
1397
1421
  attribute="bucket",
1398
1422
  value=trigger_bucket.name,
1399
1423
  )],
1400
- ))
1424
+ ),
1425
+ opts=pulumi.ResourceOptions(depends_on=[
1426
+ event_receiving,
1427
+ artifactregistry_reader,
1428
+ ]))
1401
1429
  ```
1402
1430
  ### Cloudfunctions2 Basic Auditlogs
1403
1431
 
@@ -1435,11 +1463,13 @@ class Function(pulumi.CustomResource):
1435
1463
  event_receiving = gcp.projects.IAMMember("event-receiving",
1436
1464
  project="my-project-name",
1437
1465
  role="roles/eventarc.eventReceiver",
1438
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
1466
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
1467
+ opts=pulumi.ResourceOptions(depends_on=[invoking]))
1439
1468
  artifactregistry_reader = gcp.projects.IAMMember("artifactregistry-reader",
1440
1469
  project="my-project-name",
1441
1470
  role="roles/artifactregistry.reader",
1442
- member=account.email.apply(lambda email: f"serviceAccount:{email}"))
1471
+ member=account.email.apply(lambda email: f"serviceAccount:{email}"),
1472
+ opts=pulumi.ResourceOptions(depends_on=[event_receiving]))
1443
1473
  function = gcp.cloudfunctionsv2.Function("function",
1444
1474
  name="gcf-function",
1445
1475
  location="us-central1",
@@ -1489,7 +1519,11 @@ class Function(pulumi.CustomResource):
1489
1519
  operator="match-path-pattern",
1490
1520
  ),
1491
1521
  ],
1492
- ))
1522
+ ),
1523
+ opts=pulumi.ResourceOptions(depends_on=[
1524
+ event_receiving,
1525
+ artifactregistry_reader,
1526
+ ]))
1493
1527
  ```
1494
1528
  ### Cloudfunctions2 Basic Builder
1495
1529
 
@@ -1523,7 +1557,12 @@ class Function(pulumi.CustomResource):
1523
1557
  bucket=bucket.name,
1524
1558
  source=pulumi.FileAsset("function-source.zip"))
1525
1559
  # builder permissions need to stablize before it can pull the source zip
1526
- wait60s = time.index.Sleep("wait_60s", create_duration=60s)
1560
+ wait60s = time.index.Sleep("wait_60s", create_duration=60s,
1561
+ opts=pulumi.ResourceOptions(depends_on=[
1562
+ log_writer,
1563
+ artifact_registry_writer,
1564
+ storage_object_admin,
1565
+ ]))
1527
1566
  function = gcp.cloudfunctionsv2.Function("function",
1528
1567
  name="function-v2",
1529
1568
  location="us-central1",
@@ -1543,8 +1582,8 @@ class Function(pulumi.CustomResource):
1543
1582
  max_instance_count=1,
1544
1583
  available_memory="256M",
1545
1584
  timeout_seconds=60,
1546
- ))
1547
- pulumi.export("functionUri", function.service_config.uri)
1585
+ ),
1586
+ opts=pulumi.ResourceOptions(depends_on=[wait60s]))
1548
1587
  ```
1549
1588
  ### Cloudfunctions2 Secret Env
1550
1589
 
@@ -1570,6 +1609,10 @@ class Function(pulumi.CustomResource):
1570
1609
  )],
1571
1610
  ),
1572
1611
  ))
1612
+ secret_secret_version = gcp.secretmanager.SecretVersion("secret",
1613
+ secret=secret.name,
1614
+ secret_data="secret",
1615
+ enabled=True)
1573
1616
  function = gcp.cloudfunctionsv2.Function("function",
1574
1617
  name="function-secret",
1575
1618
  location="us-central1",
@@ -1594,11 +1637,8 @@ class Function(pulumi.CustomResource):
1594
1637
  secret=secret.secret_id,
1595
1638
  version="latest",
1596
1639
  )],
1597
- ))
1598
- secret_secret_version = gcp.secretmanager.SecretVersion("secret",
1599
- secret=secret.name,
1600
- secret_data="secret",
1601
- enabled=True)
1640
+ ),
1641
+ opts=pulumi.ResourceOptions(depends_on=[secret_secret_version]))
1602
1642
  ```
1603
1643
  ### Cloudfunctions2 Secret Volume
1604
1644
 
@@ -1624,6 +1664,10 @@ class Function(pulumi.CustomResource):
1624
1664
  )],
1625
1665
  ),
1626
1666
  ))
1667
+ secret_secret_version = gcp.secretmanager.SecretVersion("secret",
1668
+ secret=secret.name,
1669
+ secret_data="secret",
1670
+ enabled=True)
1627
1671
  function = gcp.cloudfunctionsv2.Function("function",
1628
1672
  name="function-secret",
1629
1673
  location="us-central1",
@@ -1647,11 +1691,8 @@ class Function(pulumi.CustomResource):
1647
1691
  project_id=project,
1648
1692
  secret=secret.secret_id,
1649
1693
  )],
1650
- ))
1651
- secret_secret_version = gcp.secretmanager.SecretVersion("secret",
1652
- secret=secret.name,
1653
- secret_data="secret",
1654
- enabled=True)
1694
+ ),
1695
+ opts=pulumi.ResourceOptions(depends_on=[secret_secret_version]))
1655
1696
  ```
1656
1697
  ### Cloudfunctions2 Private Workerpool
1657
1698
 
@@ -1720,16 +1761,6 @@ class Function(pulumi.CustomResource):
1720
1761
  repository_id="ar-repo",
1721
1762
  location="us-central1",
1722
1763
  format="DOCKER")
1723
- encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo",
1724
- location="us-central1",
1725
- repository_id="cmek-repo",
1726
- format="DOCKER",
1727
- kms_key_name="cmek-key")
1728
- binding = gcp.artifactregistry.RepositoryIamBinding("binding",
1729
- location=encoded_ar_repo.location,
1730
- repository=encoded_ar_repo.name,
1731
- role="roles/artifactregistry.admin",
1732
- members=[f"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com"])
1733
1764
  gcf_cmek_keyuser = gcp.kms.CryptoKeyIAMBinding("gcf_cmek_keyuser",
1734
1765
  crypto_key_id="cmek-key",
1735
1766
  role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
@@ -1739,7 +1770,19 @@ class Function(pulumi.CustomResource):
1739
1770
  f"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com",
1740
1771
  f"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com",
1741
1772
  ea_sa.email.apply(lambda email: f"serviceAccount:{email}"),
1742
- ])
1773
+ ],
1774
+ opts=pulumi.ResourceOptions(depends_on=[ea_sa]))
1775
+ encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo",
1776
+ location="us-central1",
1777
+ repository_id="cmek-repo",
1778
+ format="DOCKER",
1779
+ kms_key_name="cmek-key",
1780
+ opts=pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))
1781
+ binding = gcp.artifactregistry.RepositoryIamBinding("binding",
1782
+ location=encoded_ar_repo.location,
1783
+ repository=encoded_ar_repo.name,
1784
+ role="roles/artifactregistry.admin",
1785
+ members=[f"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com"])
1743
1786
  function = gcp.cloudfunctionsv2.Function("function",
1744
1787
  name="function-cmek",
1745
1788
  location="us-central1",
@@ -1760,7 +1803,8 @@ class Function(pulumi.CustomResource):
1760
1803
  max_instance_count=1,
1761
1804
  available_memory="256M",
1762
1805
  timeout_seconds=60,
1763
- ))
1806
+ ),
1807
+ opts=pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))
1764
1808
  ```
1765
1809
 
1766
1810
  ## Import
@@ -375,7 +375,8 @@ class Endpoint(pulumi.CustomResource):
375
375
  name="test",
376
376
  location="us-central1-f",
377
377
  network=default.id,
378
- severity="INFORMATIONAL")
378
+ severity="INFORMATIONAL",
379
+ opts=pulumi.ResourceOptions(depends_on=[private_service_connection]))
379
380
  ```
380
381
 
381
382
  ## Import
@@ -453,7 +454,8 @@ class Endpoint(pulumi.CustomResource):
453
454
  name="test",
454
455
  location="us-central1-f",
455
456
  network=default.id,
456
- severity="INFORMATIONAL")
457
+ severity="INFORMATIONAL",
458
+ opts=pulumi.ResourceOptions(depends_on=[private_service_connection]))
457
459
  ```
458
460
 
459
461
  ## Import
@@ -48,6 +48,7 @@ __all__ = [
48
48
  'ServiceTemplateSpecVolumeArgs',
49
49
  'ServiceTemplateSpecVolumeCsiArgs',
50
50
  'ServiceTemplateSpecVolumeEmptyDirArgs',
51
+ 'ServiceTemplateSpecVolumeNfsArgs',
51
52
  'ServiceTemplateSpecVolumeSecretArgs',
52
53
  'ServiceTemplateSpecVolumeSecretItemArgs',
53
54
  'ServiceTrafficArgs',
@@ -2884,6 +2885,7 @@ class ServiceTemplateSpecVolumeArgs:
2884
2885
  name: pulumi.Input[str],
2885
2886
  csi: Optional[pulumi.Input['ServiceTemplateSpecVolumeCsiArgs']] = None,
2886
2887
  empty_dir: Optional[pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs']] = None,
2888
+ nfs: Optional[pulumi.Input['ServiceTemplateSpecVolumeNfsArgs']] = None,
2887
2889
  secret: Optional[pulumi.Input['ServiceTemplateSpecVolumeSecretArgs']] = None):
2888
2890
  """
2889
2891
  :param pulumi.Input[str] name: Volume's name.
@@ -2891,6 +2893,10 @@ class ServiceTemplateSpecVolumeArgs:
2891
2893
  Structure is documented below.
2892
2894
  :param pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs'] empty_dir: Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).
2893
2895
  Structure is documented below.
2896
+ :param pulumi.Input['ServiceTemplateSpecVolumeNfsArgs'] nfs: A filesystem backed by a Network File System share. This filesystem requires the
2897
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2898
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2899
+ Structure is documented below.
2894
2900
  :param pulumi.Input['ServiceTemplateSpecVolumeSecretArgs'] secret: The secret's value will be presented as the content of a file whose
2895
2901
  name is defined in the item path. If no items are defined, the name of
2896
2902
  the file is the secret_name.
@@ -2901,6 +2907,8 @@ class ServiceTemplateSpecVolumeArgs:
2901
2907
  pulumi.set(__self__, "csi", csi)
2902
2908
  if empty_dir is not None:
2903
2909
  pulumi.set(__self__, "empty_dir", empty_dir)
2910
+ if nfs is not None:
2911
+ pulumi.set(__self__, "nfs", nfs)
2904
2912
  if secret is not None:
2905
2913
  pulumi.set(__self__, "secret", secret)
2906
2914
 
@@ -2942,6 +2950,21 @@ class ServiceTemplateSpecVolumeArgs:
2942
2950
  def empty_dir(self, value: Optional[pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs']]):
2943
2951
  pulumi.set(self, "empty_dir", value)
2944
2952
 
2953
+ @property
2954
+ @pulumi.getter
2955
+ def nfs(self) -> Optional[pulumi.Input['ServiceTemplateSpecVolumeNfsArgs']]:
2956
+ """
2957
+ A filesystem backed by a Network File System share. This filesystem requires the
2958
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2959
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2960
+ Structure is documented below.
2961
+ """
2962
+ return pulumi.get(self, "nfs")
2963
+
2964
+ @nfs.setter
2965
+ def nfs(self, value: Optional[pulumi.Input['ServiceTemplateSpecVolumeNfsArgs']]):
2966
+ pulumi.set(self, "nfs", value)
2967
+
2945
2968
  @property
2946
2969
  @pulumi.getter
2947
2970
  def secret(self) -> Optional[pulumi.Input['ServiceTemplateSpecVolumeSecretArgs']]:
@@ -2973,8 +2996,6 @@ class ServiceTemplateSpecVolumeCsiArgs:
2973
2996
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_attributes: Driver-specific attributes. The following options are supported for available drivers:
2974
2997
  * gcsfuse.run.googleapis.com
2975
2998
  * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
2976
-
2977
- - - -
2978
2999
  """
2979
3000
  pulumi.set(__self__, "driver", driver)
2980
3001
  if read_only is not None:
@@ -3016,8 +3037,6 @@ class ServiceTemplateSpecVolumeCsiArgs:
3016
3037
  Driver-specific attributes. The following options are supported for available drivers:
3017
3038
  * gcsfuse.run.googleapis.com
3018
3039
  * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
3019
-
3020
- - - -
3021
3040
  """
3022
3041
  return pulumi.get(self, "volume_attributes")
3023
3042
 
@@ -3065,6 +3084,63 @@ class ServiceTemplateSpecVolumeEmptyDirArgs:
3065
3084
  pulumi.set(self, "size_limit", value)
3066
3085
 
3067
3086
 
3087
+ @pulumi.input_type
3088
+ class ServiceTemplateSpecVolumeNfsArgs:
3089
+ def __init__(__self__, *,
3090
+ path: pulumi.Input[str],
3091
+ server: pulumi.Input[str],
3092
+ read_only: Optional[pulumi.Input[bool]] = None):
3093
+ """
3094
+ :param pulumi.Input[str] path: Path exported by the NFS server
3095
+ :param pulumi.Input[str] server: IP address or hostname of the NFS server
3096
+ :param pulumi.Input[bool] read_only: If true, mount the NFS volume as read only in all mounts. Defaults to false.
3097
+
3098
+ - - -
3099
+ """
3100
+ pulumi.set(__self__, "path", path)
3101
+ pulumi.set(__self__, "server", server)
3102
+ if read_only is not None:
3103
+ pulumi.set(__self__, "read_only", read_only)
3104
+
3105
+ @property
3106
+ @pulumi.getter
3107
+ def path(self) -> pulumi.Input[str]:
3108
+ """
3109
+ Path exported by the NFS server
3110
+ """
3111
+ return pulumi.get(self, "path")
3112
+
3113
+ @path.setter
3114
+ def path(self, value: pulumi.Input[str]):
3115
+ pulumi.set(self, "path", value)
3116
+
3117
+ @property
3118
+ @pulumi.getter
3119
+ def server(self) -> pulumi.Input[str]:
3120
+ """
3121
+ IP address or hostname of the NFS server
3122
+ """
3123
+ return pulumi.get(self, "server")
3124
+
3125
+ @server.setter
3126
+ def server(self, value: pulumi.Input[str]):
3127
+ pulumi.set(self, "server", value)
3128
+
3129
+ @property
3130
+ @pulumi.getter(name="readOnly")
3131
+ def read_only(self) -> Optional[pulumi.Input[bool]]:
3132
+ """
3133
+ If true, mount the NFS volume as read only in all mounts. Defaults to false.
3134
+
3135
+ - - -
3136
+ """
3137
+ return pulumi.get(self, "read_only")
3138
+
3139
+ @read_only.setter
3140
+ def read_only(self, value: Optional[pulumi.Input[bool]]):
3141
+ pulumi.set(self, "read_only", value)
3142
+
3143
+
3068
3144
  @pulumi.input_type
3069
3145
  class ServiceTemplateSpecVolumeSecretArgs:
3070
3146
  def __init__(__self__, *,