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
@@ -860,6 +860,10 @@ class Instance(pulumi.CustomResource):
860
860
  address_type="INTERNAL",
861
861
  prefix_length=20,
862
862
  network=looker_network.id)
863
+ looker_vpc_connection = gcp.servicenetworking.Connection("looker_vpc_connection",
864
+ network=looker_network.id,
865
+ service="servicenetworking.googleapis.com",
866
+ reserved_peering_ranges=[looker_range.name])
863
867
  looker_instance = gcp.looker.Instance("looker-instance",
864
868
  name="my-instance",
865
869
  platform_edition="LOOKER_CORE_ENTERPRISE_ANNUAL",
@@ -904,11 +908,8 @@ class Instance(pulumi.CustomResource):
904
908
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
905
909
  client_id="my-client-id",
906
910
  client_secret="my-client-secret",
907
- ))
908
- looker_vpc_connection = gcp.servicenetworking.Connection("looker_vpc_connection",
909
- network=looker_network.id,
910
- service="servicenetworking.googleapis.com",
911
- reserved_peering_ranges=[looker_range.name])
911
+ ),
912
+ opts=pulumi.ResourceOptions(depends_on=[looker_vpc_connection]))
912
913
  project = gcp.organizations.get_project()
913
914
  crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key",
914
915
  crypto_key_id="looker-kms-key",
@@ -1106,6 +1107,10 @@ class Instance(pulumi.CustomResource):
1106
1107
  address_type="INTERNAL",
1107
1108
  prefix_length=20,
1108
1109
  network=looker_network.id)
1110
+ looker_vpc_connection = gcp.servicenetworking.Connection("looker_vpc_connection",
1111
+ network=looker_network.id,
1112
+ service="servicenetworking.googleapis.com",
1113
+ reserved_peering_ranges=[looker_range.name])
1109
1114
  looker_instance = gcp.looker.Instance("looker-instance",
1110
1115
  name="my-instance",
1111
1116
  platform_edition="LOOKER_CORE_ENTERPRISE_ANNUAL",
@@ -1150,11 +1155,8 @@ class Instance(pulumi.CustomResource):
1150
1155
  oauth_config=gcp.looker.InstanceOauthConfigArgs(
1151
1156
  client_id="my-client-id",
1152
1157
  client_secret="my-client-secret",
1153
- ))
1154
- looker_vpc_connection = gcp.servicenetworking.Connection("looker_vpc_connection",
1155
- network=looker_network.id,
1156
- service="servicenetworking.googleapis.com",
1157
- reserved_peering_ranges=[looker_range.name])
1158
+ ),
1159
+ opts=pulumi.ResourceOptions(depends_on=[looker_vpc_connection]))
1158
1160
  project = gcp.organizations.get_project()
1159
1161
  crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key",
1160
1162
  crypto_key_id="looker-kms-key",
@@ -709,7 +709,8 @@ class VolumeReplication(pulumi.CustomResource):
709
709
  description="This is a replicated volume",
710
710
  ),
711
711
  delete_destination_volume=True,
712
- wait_for_mirror=True)
712
+ wait_for_mirror=True,
713
+ opts=pulumi.ResourceOptions(depends_on=[source_volume]))
713
714
  ```
714
715
 
715
716
  ## Import
@@ -813,7 +814,8 @@ class VolumeReplication(pulumi.CustomResource):
813
814
  description="This is a replicated volume",
814
815
  ),
815
816
  delete_destination_volume=True,
816
- wait_for_mirror=True)
817
+ wait_for_mirror=True,
818
+ opts=pulumi.ResourceOptions(depends_on=[source_volume]))
817
819
  ```
818
820
 
819
821
  ## Import
@@ -346,7 +346,8 @@ class VolumeSnapshot(pulumi.CustomResource):
346
346
  test_snapshot = gcp.netapp.VolumeSnapshot("test_snapshot",
347
347
  location=default_volume.location,
348
348
  volume_name=default_volume.name,
349
- name="testvolumesnap")
349
+ name="testvolumesnap",
350
+ opts=pulumi.ResourceOptions(depends_on=[default_volume]))
350
351
  ```
351
352
 
352
353
  ## Import
@@ -434,7 +435,8 @@ class VolumeSnapshot(pulumi.CustomResource):
434
435
  test_snapshot = gcp.netapp.VolumeSnapshot("test_snapshot",
435
436
  location=default_volume.location,
436
437
  volume_name=default_volume.name,
437
- name="testvolumesnap")
438
+ name="testvolumesnap",
439
+ opts=pulumi.ResourceOptions(depends_on=[default_volume]))
438
440
  ```
439
441
 
440
442
  ## Import
@@ -571,6 +571,11 @@ class InternalRange(pulumi.CustomResource):
571
571
  default_network = gcp.compute.Network("default",
572
572
  name="internal-ranges",
573
573
  auto_create_subnetworks=False)
574
+ default_subnetwork = gcp.compute.Subnetwork("default",
575
+ name="overlapping-subnet",
576
+ ip_cidr_range="10.0.0.0/24",
577
+ region="us-central1",
578
+ network=default_network.id)
574
579
  default = gcp.networkconnectivity.InternalRange("default",
575
580
  name="overlap-range",
576
581
  description="Test internal range",
@@ -578,12 +583,8 @@ class InternalRange(pulumi.CustomResource):
578
583
  usage="FOR_VPC",
579
584
  peering="FOR_SELF",
580
585
  ip_cidr_range="10.0.0.0/30",
581
- overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"])
582
- default_subnetwork = gcp.compute.Subnetwork("default",
583
- name="overlapping-subnet",
584
- ip_cidr_range="10.0.0.0/24",
585
- region="us-central1",
586
- network=default_network.id)
586
+ overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"],
587
+ opts=pulumi.ResourceOptions(depends_on=[default_subnetwork]))
587
588
  ```
588
589
 
589
590
  ## Import
@@ -718,6 +719,11 @@ class InternalRange(pulumi.CustomResource):
718
719
  default_network = gcp.compute.Network("default",
719
720
  name="internal-ranges",
720
721
  auto_create_subnetworks=False)
722
+ default_subnetwork = gcp.compute.Subnetwork("default",
723
+ name="overlapping-subnet",
724
+ ip_cidr_range="10.0.0.0/24",
725
+ region="us-central1",
726
+ network=default_network.id)
721
727
  default = gcp.networkconnectivity.InternalRange("default",
722
728
  name="overlap-range",
723
729
  description="Test internal range",
@@ -725,12 +731,8 @@ class InternalRange(pulumi.CustomResource):
725
731
  usage="FOR_VPC",
726
732
  peering="FOR_SELF",
727
733
  ip_cidr_range="10.0.0.0/30",
728
- overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"])
729
- default_subnetwork = gcp.compute.Subnetwork("default",
730
- name="overlapping-subnet",
731
- ip_cidr_range="10.0.0.0/24",
732
- region="us-central1",
733
- network=default_network.id)
734
+ overlaps=["OVERLAP_EXISTING_SUBNET_RANGE"],
735
+ opts=pulumi.ResourceOptions(depends_on=[default_subnetwork]))
734
736
  ```
735
737
 
736
738
  ## Import
@@ -368,12 +368,18 @@ class GatewaySecurityPolicy(pulumi.CustomResource):
368
368
  default_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy("default",
369
369
  name="my-tls-inspection-policy",
370
370
  location="us-central1",
371
- ca_pool=default.id)
371
+ ca_pool=default.id,
372
+ opts=pulumi.ResourceOptions(depends_on=[
373
+ default,
374
+ default_authority,
375
+ tls_inspection_permission,
376
+ ]))
372
377
  default_gateway_security_policy = gcp.networksecurity.GatewaySecurityPolicy("default",
373
378
  name="my-gateway-security-policy",
374
379
  location="us-central1",
375
380
  description="my description",
376
- tls_inspection_policy=default_tls_inspection_policy.id)
381
+ tls_inspection_policy=default_tls_inspection_policy.id,
382
+ opts=pulumi.ResourceOptions(depends_on=[default_tls_inspection_policy]))
377
383
  ```
378
384
 
379
385
  ## Import
@@ -510,12 +516,18 @@ class GatewaySecurityPolicy(pulumi.CustomResource):
510
516
  default_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy("default",
511
517
  name="my-tls-inspection-policy",
512
518
  location="us-central1",
513
- ca_pool=default.id)
519
+ ca_pool=default.id,
520
+ opts=pulumi.ResourceOptions(depends_on=[
521
+ default,
522
+ default_authority,
523
+ tls_inspection_permission,
524
+ ]))
514
525
  default_gateway_security_policy = gcp.networksecurity.GatewaySecurityPolicy("default",
515
526
  name="my-gateway-security-policy",
516
527
  location="us-central1",
517
528
  description="my description",
518
- tls_inspection_policy=default_tls_inspection_policy.id)
529
+ tls_inspection_policy=default_tls_inspection_policy.id,
530
+ opts=pulumi.ResourceOptions(depends_on=[default_tls_inspection_policy]))
519
531
  ```
520
532
 
521
533
  ## Import
@@ -500,7 +500,12 @@ class TlsInspectionPolicy(pulumi.CustomResource):
500
500
  name="my-tls-inspection-policy",
501
501
  location="us-central1",
502
502
  ca_pool=default.id,
503
- exclude_public_ca_set=False)
503
+ exclude_public_ca_set=False,
504
+ opts=pulumi.ResourceOptions(depends_on=[
505
+ default,
506
+ default_authority,
507
+ tls_inspection_permission,
508
+ ]))
504
509
  ```
505
510
  ### Network Security Tls Inspection Policy Custom
506
511
 
@@ -606,7 +611,11 @@ class TlsInspectionPolicy(pulumi.CustomResource):
606
611
  "TLS_RSA_WITH_AES_128_GCM_SHA256",
607
612
  "TLS_RSA_WITH_AES_256_CBC_SHA",
608
613
  "TLS_RSA_WITH_AES_256_GCM_SHA384",
609
- ])
614
+ ],
615
+ opts=pulumi.ResourceOptions(depends_on=[
616
+ default_authority,
617
+ default_ca_pool_iam_member,
618
+ ]))
610
619
  ```
611
620
 
612
621
  ## Import
@@ -740,7 +749,12 @@ class TlsInspectionPolicy(pulumi.CustomResource):
740
749
  name="my-tls-inspection-policy",
741
750
  location="us-central1",
742
751
  ca_pool=default.id,
743
- exclude_public_ca_set=False)
752
+ exclude_public_ca_set=False,
753
+ opts=pulumi.ResourceOptions(depends_on=[
754
+ default,
755
+ default_authority,
756
+ tls_inspection_permission,
757
+ ]))
744
758
  ```
745
759
  ### Network Security Tls Inspection Policy Custom
746
760
 
@@ -846,7 +860,11 @@ class TlsInspectionPolicy(pulumi.CustomResource):
846
860
  "TLS_RSA_WITH_AES_128_GCM_SHA256",
847
861
  "TLS_RSA_WITH_AES_256_CBC_SHA",
848
862
  "TLS_RSA_WITH_AES_256_GCM_SHA384",
849
- ])
863
+ ],
864
+ opts=pulumi.ResourceOptions(depends_on=[
865
+ default_authority,
866
+ default_ca_pool_iam_member,
867
+ ]))
850
868
  ```
851
869
 
852
870
  ## Import
@@ -12,6 +12,7 @@ from .endpoint_policy import *
12
12
  from .gateway import *
13
13
  from .grpc_route import *
14
14
  from .http_route import *
15
+ from .lb_route_extension import *
15
16
  from .lb_traffic_extension import *
16
17
  from .mesh import *
17
18
  from .service_binding import *
@@ -72,6 +72,9 @@ __all__ = [
72
72
  'HttpRouteRuleMatchHeaderArgs',
73
73
  'HttpRouteRuleMatchHeaderRangeMatchArgs',
74
74
  'HttpRouteRuleMatchQueryParameterArgs',
75
+ 'LbRouteExtensionExtensionChainArgs',
76
+ 'LbRouteExtensionExtensionChainExtensionArgs',
77
+ 'LbRouteExtensionExtensionChainMatchConditionArgs',
75
78
  'LbTrafficExtensionExtensionChainArgs',
76
79
  'LbTrafficExtensionExtensionChainExtensionArgs',
77
80
  'LbTrafficExtensionExtensionChainMatchConditionArgs',
@@ -4275,6 +4278,219 @@ class HttpRouteRuleMatchQueryParameterArgs:
4275
4278
  pulumi.set(self, "regex_match", value)
4276
4279
 
4277
4280
 
4281
+ @pulumi.input_type
4282
+ class LbRouteExtensionExtensionChainArgs:
4283
+ def __init__(__self__, *,
4284
+ extensions: pulumi.Input[Sequence[pulumi.Input['LbRouteExtensionExtensionChainExtensionArgs']]],
4285
+ match_condition: pulumi.Input['LbRouteExtensionExtensionChainMatchConditionArgs'],
4286
+ name: pulumi.Input[str]):
4287
+ """
4288
+ :param pulumi.Input[Sequence[pulumi.Input['LbRouteExtensionExtensionChainExtensionArgs']]] extensions: A set of extensions to execute for the matching request.
4289
+ At least one extension is required. Up to 3 extensions can be defined for each extension chain for
4290
+ LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain.
4291
+ Structure is documented below.
4292
+ :param pulumi.Input['LbRouteExtensionExtensionChainMatchConditionArgs'] match_condition: Conditions under which this chain is invoked for a request.
4293
+ Structure is documented below.
4294
+ :param pulumi.Input[str] name: The name for this extension chain. The name is logged as part of the HTTP request logs.
4295
+ The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens,
4296
+ and can have a maximum length of 63 characters. Additionally, the first character must be a letter
4297
+ and the last character must be a letter or a number.
4298
+ """
4299
+ pulumi.set(__self__, "extensions", extensions)
4300
+ pulumi.set(__self__, "match_condition", match_condition)
4301
+ pulumi.set(__self__, "name", name)
4302
+
4303
+ @property
4304
+ @pulumi.getter
4305
+ def extensions(self) -> pulumi.Input[Sequence[pulumi.Input['LbRouteExtensionExtensionChainExtensionArgs']]]:
4306
+ """
4307
+ A set of extensions to execute for the matching request.
4308
+ At least one extension is required. Up to 3 extensions can be defined for each extension chain for
4309
+ LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain.
4310
+ Structure is documented below.
4311
+ """
4312
+ return pulumi.get(self, "extensions")
4313
+
4314
+ @extensions.setter
4315
+ def extensions(self, value: pulumi.Input[Sequence[pulumi.Input['LbRouteExtensionExtensionChainExtensionArgs']]]):
4316
+ pulumi.set(self, "extensions", value)
4317
+
4318
+ @property
4319
+ @pulumi.getter(name="matchCondition")
4320
+ def match_condition(self) -> pulumi.Input['LbRouteExtensionExtensionChainMatchConditionArgs']:
4321
+ """
4322
+ Conditions under which this chain is invoked for a request.
4323
+ Structure is documented below.
4324
+ """
4325
+ return pulumi.get(self, "match_condition")
4326
+
4327
+ @match_condition.setter
4328
+ def match_condition(self, value: pulumi.Input['LbRouteExtensionExtensionChainMatchConditionArgs']):
4329
+ pulumi.set(self, "match_condition", value)
4330
+
4331
+ @property
4332
+ @pulumi.getter
4333
+ def name(self) -> pulumi.Input[str]:
4334
+ """
4335
+ The name for this extension chain. The name is logged as part of the HTTP request logs.
4336
+ The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens,
4337
+ and can have a maximum length of 63 characters. Additionally, the first character must be a letter
4338
+ and the last character must be a letter or a number.
4339
+ """
4340
+ return pulumi.get(self, "name")
4341
+
4342
+ @name.setter
4343
+ def name(self, value: pulumi.Input[str]):
4344
+ pulumi.set(self, "name", value)
4345
+
4346
+
4347
+ @pulumi.input_type
4348
+ class LbRouteExtensionExtensionChainExtensionArgs:
4349
+ def __init__(__self__, *,
4350
+ name: pulumi.Input[str],
4351
+ service: pulumi.Input[str],
4352
+ authority: Optional[pulumi.Input[str]] = None,
4353
+ fail_open: Optional[pulumi.Input[bool]] = None,
4354
+ forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
4355
+ timeout: Optional[pulumi.Input[str]] = None):
4356
+ """
4357
+ :param pulumi.Input[str] name: The name for this extension. The name is logged as part of the HTTP request logs.
4358
+ The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens,
4359
+ and can have a maximum length of 63 characters. Additionally, the first character must be a letter
4360
+ and the last a letter or a number.
4361
+ :param pulumi.Input[str] service: The reference to the service that runs the extension. Must be a reference to a backend service
4362
+ :param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
4363
+ :param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
4364
+ When set to TRUE, request or response processing continues without error.
4365
+ Any subsequent extensions in the extension chain are also executed.
4366
+ When set to FALSE: * If response headers have not been delivered to the downstream client,
4367
+ a generic 500 error is returned to the client. The error response can be tailored by
4368
+ configuring a custom error response in the load balancer.
4369
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] forward_headers: List of the HTTP headers to forward to the extension (from the client or backend).
4370
+ If omitted, all headers are sent. Each element is a string indicating the header name.
4371
+
4372
+ - - -
4373
+ :param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4374
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4375
+ """
4376
+ pulumi.set(__self__, "name", name)
4377
+ pulumi.set(__self__, "service", service)
4378
+ if authority is not None:
4379
+ pulumi.set(__self__, "authority", authority)
4380
+ if fail_open is not None:
4381
+ pulumi.set(__self__, "fail_open", fail_open)
4382
+ if forward_headers is not None:
4383
+ pulumi.set(__self__, "forward_headers", forward_headers)
4384
+ if timeout is not None:
4385
+ pulumi.set(__self__, "timeout", timeout)
4386
+
4387
+ @property
4388
+ @pulumi.getter
4389
+ def name(self) -> pulumi.Input[str]:
4390
+ """
4391
+ The name for this extension. The name is logged as part of the HTTP request logs.
4392
+ The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens,
4393
+ and can have a maximum length of 63 characters. Additionally, the first character must be a letter
4394
+ and the last a letter or a number.
4395
+ """
4396
+ return pulumi.get(self, "name")
4397
+
4398
+ @name.setter
4399
+ def name(self, value: pulumi.Input[str]):
4400
+ pulumi.set(self, "name", value)
4401
+
4402
+ @property
4403
+ @pulumi.getter
4404
+ def service(self) -> pulumi.Input[str]:
4405
+ """
4406
+ The reference to the service that runs the extension. Must be a reference to a backend service
4407
+ """
4408
+ return pulumi.get(self, "service")
4409
+
4410
+ @service.setter
4411
+ def service(self, value: pulumi.Input[str]):
4412
+ pulumi.set(self, "service", value)
4413
+
4414
+ @property
4415
+ @pulumi.getter
4416
+ def authority(self) -> Optional[pulumi.Input[str]]:
4417
+ """
4418
+ The :authority header in the gRPC request sent from Envoy to the extension service.
4419
+ """
4420
+ return pulumi.get(self, "authority")
4421
+
4422
+ @authority.setter
4423
+ def authority(self, value: Optional[pulumi.Input[str]]):
4424
+ pulumi.set(self, "authority", value)
4425
+
4426
+ @property
4427
+ @pulumi.getter(name="failOpen")
4428
+ def fail_open(self) -> Optional[pulumi.Input[bool]]:
4429
+ """
4430
+ Determines how the proxy behaves if the call to the extension fails or times out.
4431
+ When set to TRUE, request or response processing continues without error.
4432
+ Any subsequent extensions in the extension chain are also executed.
4433
+ When set to FALSE: * If response headers have not been delivered to the downstream client,
4434
+ a generic 500 error is returned to the client. The error response can be tailored by
4435
+ configuring a custom error response in the load balancer.
4436
+ """
4437
+ return pulumi.get(self, "fail_open")
4438
+
4439
+ @fail_open.setter
4440
+ def fail_open(self, value: Optional[pulumi.Input[bool]]):
4441
+ pulumi.set(self, "fail_open", value)
4442
+
4443
+ @property
4444
+ @pulumi.getter(name="forwardHeaders")
4445
+ def forward_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
4446
+ """
4447
+ List of the HTTP headers to forward to the extension (from the client or backend).
4448
+ If omitted, all headers are sent. Each element is a string indicating the header name.
4449
+
4450
+ - - -
4451
+ """
4452
+ return pulumi.get(self, "forward_headers")
4453
+
4454
+ @forward_headers.setter
4455
+ def forward_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
4456
+ pulumi.set(self, "forward_headers", value)
4457
+
4458
+ @property
4459
+ @pulumi.getter
4460
+ def timeout(self) -> Optional[pulumi.Input[str]]:
4461
+ """
4462
+ Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4463
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4464
+ """
4465
+ return pulumi.get(self, "timeout")
4466
+
4467
+ @timeout.setter
4468
+ def timeout(self, value: Optional[pulumi.Input[str]]):
4469
+ pulumi.set(self, "timeout", value)
4470
+
4471
+
4472
+ @pulumi.input_type
4473
+ class LbRouteExtensionExtensionChainMatchConditionArgs:
4474
+ def __init__(__self__, *,
4475
+ cel_expression: pulumi.Input[str]):
4476
+ """
4477
+ :param pulumi.Input[str] cel_expression: A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
4478
+ """
4479
+ pulumi.set(__self__, "cel_expression", cel_expression)
4480
+
4481
+ @property
4482
+ @pulumi.getter(name="celExpression")
4483
+ def cel_expression(self) -> pulumi.Input[str]:
4484
+ """
4485
+ A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
4486
+ """
4487
+ return pulumi.get(self, "cel_expression")
4488
+
4489
+ @cel_expression.setter
4490
+ def cel_expression(self, value: pulumi.Input[str]):
4491
+ pulumi.set(self, "cel_expression", value)
4492
+
4493
+
4278
4494
  @pulumi.input_type
4279
4495
  class LbTrafficExtensionExtensionChainArgs:
4280
4496
  def __init__(__self__, *,
@@ -4344,22 +4560,20 @@ class LbTrafficExtensionExtensionChainArgs:
4344
4560
  @pulumi.input_type
4345
4561
  class LbTrafficExtensionExtensionChainExtensionArgs:
4346
4562
  def __init__(__self__, *,
4347
- authority: pulumi.Input[str],
4348
4563
  name: pulumi.Input[str],
4349
4564
  service: pulumi.Input[str],
4350
- timeout: pulumi.Input[str],
4565
+ authority: Optional[pulumi.Input[str]] = None,
4351
4566
  fail_open: Optional[pulumi.Input[bool]] = None,
4352
4567
  forward_headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
4353
- supported_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
4568
+ supported_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
4569
+ timeout: Optional[pulumi.Input[str]] = None):
4354
4570
  """
4355
- :param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
4356
4571
  :param pulumi.Input[str] name: The name for this extension. The name is logged as part of the HTTP request logs.
4357
4572
  The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens,
4358
4573
  and can have a maximum length of 63 characters. Additionally, the first character must be a letter
4359
4574
  and the last a letter or a number.
4360
4575
  :param pulumi.Input[str] service: The reference to the service that runs the extension. Must be a reference to a backend service
4361
- :param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4362
- A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4576
+ :param pulumi.Input[str] authority: The :authority header in the gRPC request sent from Envoy to the extension service.
4363
4577
  :param pulumi.Input[bool] fail_open: Determines how the proxy behaves if the call to the extension fails or times out.
4364
4578
  When set to TRUE, request or response processing continues without error.
4365
4579
  Any subsequent extensions in the extension chain are also executed.
@@ -4374,29 +4588,21 @@ class LbTrafficExtensionExtensionChainExtensionArgs:
4374
4588
  `RESPONSE_BODY`, `RESPONSE_BODY` and `RESPONSE_BODY`.
4375
4589
 
4376
4590
  - - -
4591
+ :param pulumi.Input[str] timeout: Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4592
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4377
4593
  """
4378
- pulumi.set(__self__, "authority", authority)
4379
4594
  pulumi.set(__self__, "name", name)
4380
4595
  pulumi.set(__self__, "service", service)
4381
- pulumi.set(__self__, "timeout", timeout)
4596
+ if authority is not None:
4597
+ pulumi.set(__self__, "authority", authority)
4382
4598
  if fail_open is not None:
4383
4599
  pulumi.set(__self__, "fail_open", fail_open)
4384
4600
  if forward_headers is not None:
4385
4601
  pulumi.set(__self__, "forward_headers", forward_headers)
4386
4602
  if supported_events is not None:
4387
4603
  pulumi.set(__self__, "supported_events", supported_events)
4388
-
4389
- @property
4390
- @pulumi.getter
4391
- def authority(self) -> pulumi.Input[str]:
4392
- """
4393
- The :authority header in the gRPC request sent from Envoy to the extension service.
4394
- """
4395
- return pulumi.get(self, "authority")
4396
-
4397
- @authority.setter
4398
- def authority(self, value: pulumi.Input[str]):
4399
- pulumi.set(self, "authority", value)
4604
+ if timeout is not None:
4605
+ pulumi.set(__self__, "timeout", timeout)
4400
4606
 
4401
4607
  @property
4402
4608
  @pulumi.getter
@@ -4427,16 +4633,15 @@ class LbTrafficExtensionExtensionChainExtensionArgs:
4427
4633
 
4428
4634
  @property
4429
4635
  @pulumi.getter
4430
- def timeout(self) -> pulumi.Input[str]:
4636
+ def authority(self) -> Optional[pulumi.Input[str]]:
4431
4637
  """
4432
- Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4433
- A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4638
+ The :authority header in the gRPC request sent from Envoy to the extension service.
4434
4639
  """
4435
- return pulumi.get(self, "timeout")
4640
+ return pulumi.get(self, "authority")
4436
4641
 
4437
- @timeout.setter
4438
- def timeout(self, value: pulumi.Input[str]):
4439
- pulumi.set(self, "timeout", value)
4642
+ @authority.setter
4643
+ def authority(self, value: Optional[pulumi.Input[str]]):
4644
+ pulumi.set(self, "authority", value)
4440
4645
 
4441
4646
  @property
4442
4647
  @pulumi.getter(name="failOpen")
@@ -4485,6 +4690,19 @@ class LbTrafficExtensionExtensionChainExtensionArgs:
4485
4690
  def supported_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
4486
4691
  pulumi.set(self, "supported_events", value)
4487
4692
 
4693
+ @property
4694
+ @pulumi.getter
4695
+ def timeout(self) -> Optional[pulumi.Input[str]]:
4696
+ """
4697
+ Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.
4698
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
4699
+ """
4700
+ return pulumi.get(self, "timeout")
4701
+
4702
+ @timeout.setter
4703
+ def timeout(self, value: Optional[pulumi.Input[str]]):
4704
+ pulumi.set(self, "timeout", value)
4705
+
4488
4706
 
4489
4707
  @pulumi.input_type
4490
4708
  class LbTrafficExtensionExtensionChainMatchConditionArgs:
@@ -798,7 +798,8 @@ class Gateway(pulumi.CustomResource):
798
798
  gateway_security_policy=default_gateway_security_policy.id,
799
799
  network=default_network.id,
800
800
  subnetwork=default_subnetwork.id,
801
- delete_swg_autogen_router_on_destroy=True)
801
+ delete_swg_autogen_router_on_destroy=True,
802
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
802
803
  ```
803
804
  ### Network Services Gateway Multiple Swp Same Network
804
805
 
@@ -854,7 +855,8 @@ class Gateway(pulumi.CustomResource):
854
855
  gateway_security_policy=default_gateway_security_policy.id,
855
856
  network=default_network.id,
856
857
  subnetwork=default_subnetwork.id,
857
- delete_swg_autogen_router_on_destroy=True)
858
+ delete_swg_autogen_router_on_destroy=True,
859
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
858
860
  gateway2 = gcp.networkservices.Gateway("gateway2",
859
861
  name="my-gateway2",
860
862
  location="us-south1",
@@ -866,7 +868,8 @@ class Gateway(pulumi.CustomResource):
866
868
  gateway_security_policy=default_gateway_security_policy.id,
867
869
  network=default_network.id,
868
870
  subnetwork=default_subnetwork.id,
869
- delete_swg_autogen_router_on_destroy=True)
871
+ delete_swg_autogen_router_on_destroy=True,
872
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
870
873
  ```
871
874
 
872
875
  ## Import
@@ -1035,7 +1038,8 @@ class Gateway(pulumi.CustomResource):
1035
1038
  gateway_security_policy=default_gateway_security_policy.id,
1036
1039
  network=default_network.id,
1037
1040
  subnetwork=default_subnetwork.id,
1038
- delete_swg_autogen_router_on_destroy=True)
1041
+ delete_swg_autogen_router_on_destroy=True,
1042
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
1039
1043
  ```
1040
1044
  ### Network Services Gateway Multiple Swp Same Network
1041
1045
 
@@ -1091,7 +1095,8 @@ class Gateway(pulumi.CustomResource):
1091
1095
  gateway_security_policy=default_gateway_security_policy.id,
1092
1096
  network=default_network.id,
1093
1097
  subnetwork=default_subnetwork.id,
1094
- delete_swg_autogen_router_on_destroy=True)
1098
+ delete_swg_autogen_router_on_destroy=True,
1099
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
1095
1100
  gateway2 = gcp.networkservices.Gateway("gateway2",
1096
1101
  name="my-gateway2",
1097
1102
  location="us-south1",
@@ -1103,7 +1108,8 @@ class Gateway(pulumi.CustomResource):
1103
1108
  gateway_security_policy=default_gateway_security_policy.id,
1104
1109
  network=default_network.id,
1105
1110
  subnetwork=default_subnetwork.id,
1106
- delete_swg_autogen_router_on_destroy=True)
1111
+ delete_swg_autogen_router_on_destroy=True,
1112
+ opts=pulumi.ResourceOptions(depends_on=[proxyonlysubnet]))
1107
1113
  ```
1108
1114
 
1109
1115
  ## Import