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
@@ -39,8 +39,10 @@ class LbTrafficExtensionArgs:
39
39
  manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
40
40
  present on the resource.
41
41
  :param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
42
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
43
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
42
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
43
+ [Supported application load
44
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
45
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
44
46
  :param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
45
47
  """
46
48
  pulumi.set(__self__, "extension_chains", extension_chains)
@@ -129,8 +131,10 @@ class LbTrafficExtensionArgs:
129
131
  def load_balancing_scheme(self) -> Optional[pulumi.Input[str]]:
130
132
  """
131
133
  All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
132
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
133
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
134
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
135
+ [Supported application load
136
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
137
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
134
138
  """
135
139
  return pulumi.get(self, "load_balancing_scheme")
136
140
 
@@ -188,8 +192,10 @@ class _LbTrafficExtensionState:
188
192
  manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
189
193
  present on the resource.
190
194
  :param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
191
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
192
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
195
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
196
+ [Supported application load
197
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
198
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
193
199
  :param pulumi.Input[str] location: The location of the traffic extension
194
200
  :param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
195
201
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -288,8 +294,10 @@ class _LbTrafficExtensionState:
288
294
  def load_balancing_scheme(self) -> Optional[pulumi.Input[str]]:
289
295
  """
290
296
  All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
291
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
292
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
297
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
298
+ [Supported application load
299
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
300
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
293
301
  """
294
302
  return pulumi.get(self, "load_balancing_scheme")
295
303
 
@@ -369,269 +377,6 @@ class LbTrafficExtension(pulumi.CustomResource):
369
377
 
370
378
  ## Example Usage
371
379
 
372
- ### Network Services Lb Traffic Extension Basic
373
-
374
- ```python
375
- import pulumi
376
- import pulumi_gcp as gcp
377
-
378
- # Internal HTTP load balancer with a managed instance group backend
379
- # VPC network
380
- ilb_network = gcp.compute.Network("ilb_network",
381
- name="l7-ilb-network",
382
- auto_create_subnetworks=False)
383
- # proxy-only subnet
384
- proxy_subnet = gcp.compute.Subnetwork("proxy_subnet",
385
- name="l7-ilb-proxy-subnet",
386
- ip_cidr_range="10.0.0.0/24",
387
- region="us-west1",
388
- purpose="REGIONAL_MANAGED_PROXY",
389
- role="ACTIVE",
390
- network=ilb_network.id)
391
- # backend subnet
392
- ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
393
- name="l7-ilb-subnet",
394
- ip_cidr_range="10.0.1.0/24",
395
- region="us-west1",
396
- network=ilb_network.id)
397
- # health check
398
- default_region_health_check = gcp.compute.RegionHealthCheck("default",
399
- name="l7-ilb-hc",
400
- region="us-west1",
401
- http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
402
- port_specification="USE_SERVING_PORT",
403
- ))
404
- # instance template
405
- instance_template = gcp.compute.InstanceTemplate("instance_template",
406
- network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
407
- access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
408
- network=ilb_network.id,
409
- subnetwork=ilb_subnet.id,
410
- )],
411
- name="l7-ilb-mig-template",
412
- machine_type="e2-small",
413
- tags=["http-server"],
414
- disks=[gcp.compute.InstanceTemplateDiskArgs(
415
- source_image="debian-cloud/debian-10",
416
- auto_delete=True,
417
- boot=True,
418
- )],
419
- metadata={
420
- "startup-script": \"\"\"#! /bin/bash
421
- set -euo pipefail
422
-
423
- export DEBIAN_FRONTEND=noninteractive
424
- apt-get update
425
- apt-get install -y nginx-light jq
426
-
427
- NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
428
- IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
429
- METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
430
-
431
- cat <<EOF > /var/www/html/index.html
432
- <pre>
433
- Name: $NAME
434
- IP: $IP
435
- Metadata: $METADATA
436
- </pre>
437
- EOF
438
- \"\"\",
439
- })
440
- # MIG
441
- mig = gcp.compute.RegionInstanceGroupManager("mig",
442
- name="l7-ilb-mig1",
443
- region="us-west1",
444
- base_instance_name="vm",
445
- target_size=2,
446
- versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
447
- instance_template=instance_template.id,
448
- name="primary",
449
- )])
450
- # backend service
451
- default_region_backend_service = gcp.compute.RegionBackendService("default",
452
- name="l7-ilb-backend-subnet",
453
- region="us-west1",
454
- protocol="HTTP",
455
- load_balancing_scheme="INTERNAL_MANAGED",
456
- timeout_sec=10,
457
- health_checks=default_region_health_check.id,
458
- backends=[gcp.compute.RegionBackendServiceBackendArgs(
459
- group=mig.instance_group,
460
- balancing_mode="UTILIZATION",
461
- capacity_scaler=1,
462
- )])
463
- # URL map
464
- default_region_url_map = gcp.compute.RegionUrlMap("default",
465
- name="l7-ilb-regional-url-map",
466
- region="us-west1",
467
- default_service=default_region_backend_service.id)
468
- # HTTP target proxy
469
- default_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy("default",
470
- name="l7-ilb-target-http-proxy",
471
- region="us-west1",
472
- url_map=default_region_url_map.id)
473
- # forwarding rule
474
- default = gcp.compute.ForwardingRule("default",
475
- name="l7-ilb-forwarding-rule",
476
- region="us-west1",
477
- ip_protocol="TCP",
478
- load_balancing_scheme="INTERNAL_MANAGED",
479
- port_range="80",
480
- target=default_region_target_http_proxy.id,
481
- network=ilb_network.id,
482
- subnetwork=ilb_subnet.id,
483
- network_tier="PREMIUM")
484
- # allow all access from IAP and health check ranges
485
- fw_iap = gcp.compute.Firewall("fw_iap",
486
- name="l7-ilb-fw-allow-iap-hc",
487
- direction="INGRESS",
488
- network=ilb_network.id,
489
- source_ranges=[
490
- "130.211.0.0/22",
491
- "35.191.0.0/16",
492
- "35.235.240.0/20",
493
- ],
494
- allows=[gcp.compute.FirewallAllowArgs(
495
- protocol="tcp",
496
- )])
497
- # allow http from proxy subnet to backends
498
- fw_ilb_to_backends = gcp.compute.Firewall("fw_ilb_to_backends",
499
- name="l7-ilb-fw-allow-ilb-to-backends",
500
- direction="INGRESS",
501
- network=ilb_network.id,
502
- source_ranges=["10.0.0.0/24"],
503
- target_tags=["http-server"],
504
- allows=[gcp.compute.FirewallAllowArgs(
505
- protocol="tcp",
506
- ports=[
507
- "80",
508
- "443",
509
- "8080",
510
- ],
511
- )])
512
- # Traffic Extension Backend Instance
513
- callouts_instance = gcp.compute.Instance("callouts_instance",
514
- network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
515
- access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
516
- network=ilb_network.id,
517
- subnetwork=ilb_subnet.id,
518
- )],
519
- name="l7-ilb-callouts-ins",
520
- zone="us-west1-a",
521
- machine_type="e2-small",
522
- labels={
523
- "container-vm": "cos-stable-109-17800-147-54",
524
- },
525
- tags=[
526
- "allow-ssh",
527
- "load-balanced-backend",
528
- ],
529
- boot_disk=gcp.compute.InstanceBootDiskArgs(
530
- auto_delete=True,
531
- initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
532
- type="pd-standard",
533
- size=10,
534
- image="https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-109-17800-147-54",
535
- ),
536
- ),
537
- metadata={
538
- "gce-container-declaration": \"\"\"# DISCLAIMER:
539
- # This container declaration format is not a public API and may change without
540
- # notice. Please use gcloud command-line tool or Google Cloud Console to run
541
- # Containers on Google Compute Engine.
542
-
543
- spec:
544
- containers:
545
- - image: us-docker.pkg.dev/service-extensions/ext-proc/service-callout-basic-example-python:latest
546
- name: callouts-vm
547
- securityContext:
548
- privileged: false
549
- stdin: false
550
- tty: false
551
- volumeMounts: []
552
- restartPolicy: Always
553
- volumes: []
554
- \"\"\",
555
- "google-logging-enabled": "true",
556
- },
557
- deletion_protection=False)
558
- # callouts instance group
559
- callouts_instance_group = gcp.compute.InstanceGroup("callouts_instance_group",
560
- name="l7-ilb-callouts-ins-group",
561
- description="Terraform test instance group",
562
- zone="us-west1-a",
563
- instances=[callouts_instance.id],
564
- named_ports=[
565
- gcp.compute.InstanceGroupNamedPortArgs(
566
- name="http",
567
- port=80,
568
- ),
569
- gcp.compute.InstanceGroupNamedPortArgs(
570
- name="grpc",
571
- port=443,
572
- ),
573
- ])
574
- # callout health check
575
- callouts_health_check = gcp.compute.RegionHealthCheck("callouts_health_check",
576
- name="l7-ilb-callouts-hc",
577
- region="us-west1",
578
- http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
579
- port=80,
580
- ))
581
- # callout backend service
582
- callouts_backend = gcp.compute.RegionBackendService("callouts_backend",
583
- name="l7-ilb-callouts-backend",
584
- region="us-west1",
585
- protocol="HTTP2",
586
- load_balancing_scheme="INTERNAL_MANAGED",
587
- timeout_sec=10,
588
- port_name="grpc",
589
- health_checks=callouts_health_check.id,
590
- backends=[gcp.compute.RegionBackendServiceBackendArgs(
591
- group=callouts_instance_group.id,
592
- balancing_mode="UTILIZATION",
593
- capacity_scaler=1,
594
- )])
595
- default_lb_traffic_extension = gcp.networkservices.LbTrafficExtension("default",
596
- name="l7-ilb-traffic-ext",
597
- description="my traffic extension",
598
- location="us-west1",
599
- load_balancing_scheme="INTERNAL_MANAGED",
600
- forwarding_rules=[default.self_link],
601
- extension_chains=[gcp.networkservices.LbTrafficExtensionExtensionChainArgs(
602
- name="chain1",
603
- match_condition=gcp.networkservices.LbTrafficExtensionExtensionChainMatchConditionArgs(
604
- cel_expression="request.host == 'example.com'",
605
- ),
606
- extensions=[gcp.networkservices.LbTrafficExtensionExtensionChainExtensionArgs(
607
- name="ext11",
608
- authority="ext11.com",
609
- service=callouts_backend.self_link,
610
- timeout="0.1s",
611
- fail_open=False,
612
- supported_events=["REQUEST_HEADERS"],
613
- forward_headers=["custom-header"],
614
- )],
615
- )],
616
- labels={
617
- "foo": "bar",
618
- })
619
- # test instance
620
- vm_test = gcp.compute.Instance("vm_test",
621
- name="l7-ilb-test-vm",
622
- zone="us-west1-b",
623
- machine_type="e2-small",
624
- network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
625
- network=ilb_network.id,
626
- subnetwork=ilb_subnet.id,
627
- )],
628
- boot_disk=gcp.compute.InstanceBootDiskArgs(
629
- initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
630
- image="debian-cloud/debian-11",
631
- ),
632
- ))
633
- ```
634
-
635
380
  ## Import
636
381
 
637
382
  LbTrafficExtension can be imported using any of these accepted formats:
@@ -670,8 +415,10 @@ class LbTrafficExtension(pulumi.CustomResource):
670
415
  manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
671
416
  present on the resource.
672
417
  :param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
673
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
674
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
418
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
419
+ [Supported application load
420
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
421
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
675
422
  :param pulumi.Input[str] location: The location of the traffic extension
676
423
  :param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
677
424
  """
@@ -692,269 +439,6 @@ class LbTrafficExtension(pulumi.CustomResource):
692
439
 
693
440
  ## Example Usage
694
441
 
695
- ### Network Services Lb Traffic Extension Basic
696
-
697
- ```python
698
- import pulumi
699
- import pulumi_gcp as gcp
700
-
701
- # Internal HTTP load balancer with a managed instance group backend
702
- # VPC network
703
- ilb_network = gcp.compute.Network("ilb_network",
704
- name="l7-ilb-network",
705
- auto_create_subnetworks=False)
706
- # proxy-only subnet
707
- proxy_subnet = gcp.compute.Subnetwork("proxy_subnet",
708
- name="l7-ilb-proxy-subnet",
709
- ip_cidr_range="10.0.0.0/24",
710
- region="us-west1",
711
- purpose="REGIONAL_MANAGED_PROXY",
712
- role="ACTIVE",
713
- network=ilb_network.id)
714
- # backend subnet
715
- ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
716
- name="l7-ilb-subnet",
717
- ip_cidr_range="10.0.1.0/24",
718
- region="us-west1",
719
- network=ilb_network.id)
720
- # health check
721
- default_region_health_check = gcp.compute.RegionHealthCheck("default",
722
- name="l7-ilb-hc",
723
- region="us-west1",
724
- http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
725
- port_specification="USE_SERVING_PORT",
726
- ))
727
- # instance template
728
- instance_template = gcp.compute.InstanceTemplate("instance_template",
729
- network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
730
- access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
731
- network=ilb_network.id,
732
- subnetwork=ilb_subnet.id,
733
- )],
734
- name="l7-ilb-mig-template",
735
- machine_type="e2-small",
736
- tags=["http-server"],
737
- disks=[gcp.compute.InstanceTemplateDiskArgs(
738
- source_image="debian-cloud/debian-10",
739
- auto_delete=True,
740
- boot=True,
741
- )],
742
- metadata={
743
- "startup-script": \"\"\"#! /bin/bash
744
- set -euo pipefail
745
-
746
- export DEBIAN_FRONTEND=noninteractive
747
- apt-get update
748
- apt-get install -y nginx-light jq
749
-
750
- NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
751
- IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
752
- METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
753
-
754
- cat <<EOF > /var/www/html/index.html
755
- <pre>
756
- Name: $NAME
757
- IP: $IP
758
- Metadata: $METADATA
759
- </pre>
760
- EOF
761
- \"\"\",
762
- })
763
- # MIG
764
- mig = gcp.compute.RegionInstanceGroupManager("mig",
765
- name="l7-ilb-mig1",
766
- region="us-west1",
767
- base_instance_name="vm",
768
- target_size=2,
769
- versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
770
- instance_template=instance_template.id,
771
- name="primary",
772
- )])
773
- # backend service
774
- default_region_backend_service = gcp.compute.RegionBackendService("default",
775
- name="l7-ilb-backend-subnet",
776
- region="us-west1",
777
- protocol="HTTP",
778
- load_balancing_scheme="INTERNAL_MANAGED",
779
- timeout_sec=10,
780
- health_checks=default_region_health_check.id,
781
- backends=[gcp.compute.RegionBackendServiceBackendArgs(
782
- group=mig.instance_group,
783
- balancing_mode="UTILIZATION",
784
- capacity_scaler=1,
785
- )])
786
- # URL map
787
- default_region_url_map = gcp.compute.RegionUrlMap("default",
788
- name="l7-ilb-regional-url-map",
789
- region="us-west1",
790
- default_service=default_region_backend_service.id)
791
- # HTTP target proxy
792
- default_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy("default",
793
- name="l7-ilb-target-http-proxy",
794
- region="us-west1",
795
- url_map=default_region_url_map.id)
796
- # forwarding rule
797
- default = gcp.compute.ForwardingRule("default",
798
- name="l7-ilb-forwarding-rule",
799
- region="us-west1",
800
- ip_protocol="TCP",
801
- load_balancing_scheme="INTERNAL_MANAGED",
802
- port_range="80",
803
- target=default_region_target_http_proxy.id,
804
- network=ilb_network.id,
805
- subnetwork=ilb_subnet.id,
806
- network_tier="PREMIUM")
807
- # allow all access from IAP and health check ranges
808
- fw_iap = gcp.compute.Firewall("fw_iap",
809
- name="l7-ilb-fw-allow-iap-hc",
810
- direction="INGRESS",
811
- network=ilb_network.id,
812
- source_ranges=[
813
- "130.211.0.0/22",
814
- "35.191.0.0/16",
815
- "35.235.240.0/20",
816
- ],
817
- allows=[gcp.compute.FirewallAllowArgs(
818
- protocol="tcp",
819
- )])
820
- # allow http from proxy subnet to backends
821
- fw_ilb_to_backends = gcp.compute.Firewall("fw_ilb_to_backends",
822
- name="l7-ilb-fw-allow-ilb-to-backends",
823
- direction="INGRESS",
824
- network=ilb_network.id,
825
- source_ranges=["10.0.0.0/24"],
826
- target_tags=["http-server"],
827
- allows=[gcp.compute.FirewallAllowArgs(
828
- protocol="tcp",
829
- ports=[
830
- "80",
831
- "443",
832
- "8080",
833
- ],
834
- )])
835
- # Traffic Extension Backend Instance
836
- callouts_instance = gcp.compute.Instance("callouts_instance",
837
- network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
838
- access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
839
- network=ilb_network.id,
840
- subnetwork=ilb_subnet.id,
841
- )],
842
- name="l7-ilb-callouts-ins",
843
- zone="us-west1-a",
844
- machine_type="e2-small",
845
- labels={
846
- "container-vm": "cos-stable-109-17800-147-54",
847
- },
848
- tags=[
849
- "allow-ssh",
850
- "load-balanced-backend",
851
- ],
852
- boot_disk=gcp.compute.InstanceBootDiskArgs(
853
- auto_delete=True,
854
- initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
855
- type="pd-standard",
856
- size=10,
857
- image="https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-109-17800-147-54",
858
- ),
859
- ),
860
- metadata={
861
- "gce-container-declaration": \"\"\"# DISCLAIMER:
862
- # This container declaration format is not a public API and may change without
863
- # notice. Please use gcloud command-line tool or Google Cloud Console to run
864
- # Containers on Google Compute Engine.
865
-
866
- spec:
867
- containers:
868
- - image: us-docker.pkg.dev/service-extensions/ext-proc/service-callout-basic-example-python:latest
869
- name: callouts-vm
870
- securityContext:
871
- privileged: false
872
- stdin: false
873
- tty: false
874
- volumeMounts: []
875
- restartPolicy: Always
876
- volumes: []
877
- \"\"\",
878
- "google-logging-enabled": "true",
879
- },
880
- deletion_protection=False)
881
- # callouts instance group
882
- callouts_instance_group = gcp.compute.InstanceGroup("callouts_instance_group",
883
- name="l7-ilb-callouts-ins-group",
884
- description="Terraform test instance group",
885
- zone="us-west1-a",
886
- instances=[callouts_instance.id],
887
- named_ports=[
888
- gcp.compute.InstanceGroupNamedPortArgs(
889
- name="http",
890
- port=80,
891
- ),
892
- gcp.compute.InstanceGroupNamedPortArgs(
893
- name="grpc",
894
- port=443,
895
- ),
896
- ])
897
- # callout health check
898
- callouts_health_check = gcp.compute.RegionHealthCheck("callouts_health_check",
899
- name="l7-ilb-callouts-hc",
900
- region="us-west1",
901
- http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
902
- port=80,
903
- ))
904
- # callout backend service
905
- callouts_backend = gcp.compute.RegionBackendService("callouts_backend",
906
- name="l7-ilb-callouts-backend",
907
- region="us-west1",
908
- protocol="HTTP2",
909
- load_balancing_scheme="INTERNAL_MANAGED",
910
- timeout_sec=10,
911
- port_name="grpc",
912
- health_checks=callouts_health_check.id,
913
- backends=[gcp.compute.RegionBackendServiceBackendArgs(
914
- group=callouts_instance_group.id,
915
- balancing_mode="UTILIZATION",
916
- capacity_scaler=1,
917
- )])
918
- default_lb_traffic_extension = gcp.networkservices.LbTrafficExtension("default",
919
- name="l7-ilb-traffic-ext",
920
- description="my traffic extension",
921
- location="us-west1",
922
- load_balancing_scheme="INTERNAL_MANAGED",
923
- forwarding_rules=[default.self_link],
924
- extension_chains=[gcp.networkservices.LbTrafficExtensionExtensionChainArgs(
925
- name="chain1",
926
- match_condition=gcp.networkservices.LbTrafficExtensionExtensionChainMatchConditionArgs(
927
- cel_expression="request.host == 'example.com'",
928
- ),
929
- extensions=[gcp.networkservices.LbTrafficExtensionExtensionChainExtensionArgs(
930
- name="ext11",
931
- authority="ext11.com",
932
- service=callouts_backend.self_link,
933
- timeout="0.1s",
934
- fail_open=False,
935
- supported_events=["REQUEST_HEADERS"],
936
- forward_headers=["custom-header"],
937
- )],
938
- )],
939
- labels={
940
- "foo": "bar",
941
- })
942
- # test instance
943
- vm_test = gcp.compute.Instance("vm_test",
944
- name="l7-ilb-test-vm",
945
- zone="us-west1-b",
946
- machine_type="e2-small",
947
- network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
948
- network=ilb_network.id,
949
- subnetwork=ilb_subnet.id,
950
- )],
951
- boot_disk=gcp.compute.InstanceBootDiskArgs(
952
- initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
953
- image="debian-cloud/debian-11",
954
- ),
955
- ))
956
- ```
957
-
958
442
  ## Import
959
443
 
960
444
  LbTrafficExtension can be imported using any of these accepted formats:
@@ -1069,8 +553,10 @@ class LbTrafficExtension(pulumi.CustomResource):
1069
553
  manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
1070
554
  present on the resource.
1071
555
  :param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
1072
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
1073
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
556
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
557
+ [Supported application load
558
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
559
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
1074
560
  :param pulumi.Input[str] location: The location of the traffic extension
1075
561
  :param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
1076
562
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -1144,8 +630,10 @@ class LbTrafficExtension(pulumi.CustomResource):
1144
630
  def load_balancing_scheme(self) -> pulumi.Output[Optional[str]]:
1145
631
  """
1146
632
  All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
1147
- more information, refer to Choosing a load balancer. Possible values: ["LOAD_BALANCING_SCHEME_UNSPECIFIED",
1148
- "INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
633
+ more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
634
+ [Supported application load
635
+ balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
636
+ ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
1149
637
  """
1150
638
  return pulumi.get(self, "load_balancing_scheme")
1151
639