pulumi-gcp 8.10.2__py3-none-any.whl → 8.11.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 (142) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +29 -0
  3. pulumi_gcp/accesscontextmanager/outputs.py +18 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +36 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +6 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +6 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +6 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +6 -0
  9. pulumi_gcp/apigee/app_group.py +7 -7
  10. pulumi_gcp/applicationintegration/client.py +8 -6
  11. pulumi_gcp/artifactregistry/_inputs.py +24 -15
  12. pulumi_gcp/artifactregistry/outputs.py +32 -20
  13. pulumi_gcp/artifactregistry/repository.py +128 -0
  14. pulumi_gcp/assuredworkloads/workload.py +7 -7
  15. pulumi_gcp/backupdisasterrecovery/__init__.py +2 -0
  16. pulumi_gcp/backupdisasterrecovery/backup_plan.py +2 -2
  17. pulumi_gcp/backupdisasterrecovery/backup_vault.py +12 -8
  18. pulumi_gcp/backupdisasterrecovery/get_backup.py +153 -0
  19. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +415 -0
  20. pulumi_gcp/backupdisasterrecovery/outputs.py +63 -0
  21. pulumi_gcp/bigquery/app_profile.py +75 -0
  22. pulumi_gcp/billing/_inputs.py +6 -6
  23. pulumi_gcp/billing/outputs.py +4 -4
  24. pulumi_gcp/certificateauthority/_inputs.py +9 -9
  25. pulumi_gcp/certificateauthority/outputs.py +8 -8
  26. pulumi_gcp/cloudbuild/_inputs.py +53 -0
  27. pulumi_gcp/cloudbuild/outputs.py +50 -0
  28. pulumi_gcp/cloudbuild/worker_pool.py +47 -0
  29. pulumi_gcp/clouddeploy/_inputs.py +254 -0
  30. pulumi_gcp/clouddeploy/outputs.py +211 -0
  31. pulumi_gcp/clouddeploy/target.py +47 -0
  32. pulumi_gcp/cloudfunctionsv2/_inputs.py +6 -6
  33. pulumi_gcp/cloudfunctionsv2/outputs.py +8 -8
  34. pulumi_gcp/cloudrunv2/job.py +4 -4
  35. pulumi_gcp/cloudrunv2/service.py +4 -4
  36. pulumi_gcp/composer/get_user_workloads_config_map.py +4 -0
  37. pulumi_gcp/composer/get_user_workloads_secret.py +4 -0
  38. pulumi_gcp/composer/user_workloads_config_map.py +14 -0
  39. pulumi_gcp/composer/user_workloads_secret.py +6 -0
  40. pulumi_gcp/compute/_inputs.py +566 -25
  41. pulumi_gcp/compute/disk.py +21 -7
  42. pulumi_gcp/compute/firewall_policy_rule.py +12 -0
  43. pulumi_gcp/compute/get_forwarding_rules.py +2 -2
  44. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  45. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  46. pulumi_gcp/compute/get_network.py +35 -1
  47. pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
  48. pulumi_gcp/compute/get_region_network_endpoint_group.py +12 -1
  49. pulumi_gcp/compute/global_forwarding_rule.py +28 -0
  50. pulumi_gcp/compute/instance_group_manager.py +28 -0
  51. pulumi_gcp/compute/network.py +75 -0
  52. pulumi_gcp/compute/outputs.py +655 -26
  53. pulumi_gcp/compute/region_health_check.py +28 -0
  54. pulumi_gcp/compute/region_instance_group_manager.py +28 -0
  55. pulumi_gcp/compute/region_network_endpoint.py +28 -0
  56. pulumi_gcp/compute/region_network_endpoint_group.py +70 -2
  57. pulumi_gcp/compute/subnetwork.py +30 -2
  58. pulumi_gcp/compute/url_map.py +7 -7
  59. pulumi_gcp/config/__init__.pyi +4 -0
  60. pulumi_gcp/config/vars.py +8 -0
  61. pulumi_gcp/container/_inputs.py +201 -3
  62. pulumi_gcp/container/cluster.py +68 -14
  63. pulumi_gcp/container/get_cluster.py +12 -1
  64. pulumi_gcp/container/outputs.py +249 -3
  65. pulumi_gcp/dataproc/_inputs.py +209 -1
  66. pulumi_gcp/dataproc/batch.py +76 -0
  67. pulumi_gcp/dataproc/outputs.py +169 -3
  68. pulumi_gcp/diagflow/_inputs.py +3 -3
  69. pulumi_gcp/diagflow/outputs.py +2 -2
  70. pulumi_gcp/discoveryengine/search_engine.py +7 -7
  71. pulumi_gcp/firebaserules/release.py +76 -0
  72. pulumi_gcp/firestore/field.py +4 -4
  73. pulumi_gcp/gemini/__init__.py +15 -0
  74. pulumi_gcp/gemini/_inputs.py +183 -0
  75. pulumi_gcp/gemini/code_repository_index.py +659 -0
  76. pulumi_gcp/gemini/get_repository_group_iam_policy.py +171 -0
  77. pulumi_gcp/gemini/outputs.py +130 -0
  78. pulumi_gcp/gemini/repository_group.py +586 -0
  79. pulumi_gcp/gemini/repository_group_iam_binding.py +604 -0
  80. pulumi_gcp/gemini/repository_group_iam_member.py +604 -0
  81. pulumi_gcp/gemini/repository_group_iam_policy.py +443 -0
  82. pulumi_gcp/gkehub/_inputs.py +30 -10
  83. pulumi_gcp/gkehub/membership_binding.py +6 -6
  84. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  85. pulumi_gcp/gkehub/namespace.py +4 -4
  86. pulumi_gcp/gkehub/outputs.py +21 -7
  87. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  88. pulumi_gcp/iam/__init__.py +1 -0
  89. pulumi_gcp/iam/_inputs.py +137 -0
  90. pulumi_gcp/iam/folders_policy_binding.py +16 -0
  91. pulumi_gcp/iam/organizations_policy_binding.py +16 -0
  92. pulumi_gcp/iam/outputs.py +99 -0
  93. pulumi_gcp/iam/principal_access_boundary_policy.py +16 -0
  94. pulumi_gcp/iam/projects_policy_binding.py +917 -0
  95. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  96. pulumi_gcp/integrationconnectors/_inputs.py +15 -15
  97. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  98. pulumi_gcp/integrationconnectors/outputs.py +10 -10
  99. pulumi_gcp/monitoring/_inputs.py +13 -6
  100. pulumi_gcp/monitoring/outputs.py +10 -4
  101. pulumi_gcp/netapp/_inputs.py +3 -3
  102. pulumi_gcp/netapp/active_directory.py +7 -7
  103. pulumi_gcp/netapp/outputs.py +2 -2
  104. pulumi_gcp/netapp/volume.py +11 -11
  105. pulumi_gcp/networkconnectivity/spoke.py +10 -10
  106. pulumi_gcp/networksecurity/__init__.py +4 -0
  107. pulumi_gcp/networksecurity/_inputs.py +115 -0
  108. pulumi_gcp/networksecurity/mirroring_deployment.py +848 -0
  109. pulumi_gcp/networksecurity/mirroring_deployment_group.py +752 -0
  110. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +737 -0
  111. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +840 -0
  112. pulumi_gcp/networksecurity/outputs.py +70 -0
  113. pulumi_gcp/oracledatabase/autonomous_database.py +42 -4
  114. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +42 -4
  115. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +50 -8
  116. pulumi_gcp/oracledatabase/get_autonomous_database.py +12 -1
  117. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +12 -1
  118. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +12 -1
  119. pulumi_gcp/oracledatabase/outputs.py +21 -0
  120. pulumi_gcp/orgpolicy/policy.py +2 -2
  121. pulumi_gcp/parallelstore/instance.py +4 -0
  122. pulumi_gcp/provider.py +20 -0
  123. pulumi_gcp/pubsub/subscription.py +6 -6
  124. pulumi_gcp/pulumi-plugin.json +1 -1
  125. pulumi_gcp/redis/_inputs.py +435 -3
  126. pulumi_gcp/redis/cluster.py +287 -16
  127. pulumi_gcp/redis/outputs.py +304 -2
  128. pulumi_gcp/serviceaccount/get_account_id_token.py +2 -2
  129. pulumi_gcp/serviceaccount/get_account_key.py +2 -2
  130. pulumi_gcp/storage/get_bucket.py +2 -2
  131. pulumi_gcp/storage/get_bucket_object_content.py +2 -2
  132. pulumi_gcp/tpu/__init__.py +1 -0
  133. pulumi_gcp/tpu/_inputs.py +188 -6
  134. pulumi_gcp/tpu/outputs.py +164 -4
  135. pulumi_gcp/tpu/v2_queued_resource.py +434 -0
  136. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  137. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  138. pulumi_gcp/vertex/ai_index_endpoint.py +2 -2
  139. {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/METADATA +3 -3
  140. {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/RECORD +142 -125
  141. {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/WHEEL +0 -0
  142. {pulumi_gcp-8.10.2.dist-info → pulumi_gcp-8.11.0.dist-info}/top_level.txt +0 -0
@@ -26,6 +26,7 @@ class WorkerPoolArgs:
26
26
  display_name: Optional[pulumi.Input[str]] = None,
27
27
  name: Optional[pulumi.Input[str]] = None,
28
28
  network_config: Optional[pulumi.Input['WorkerPoolNetworkConfigArgs']] = None,
29
+ private_service_connect: Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']] = None,
29
30
  project: Optional[pulumi.Input[str]] = None,
30
31
  worker_config: Optional[pulumi.Input['WorkerPoolWorkerConfigArgs']] = None):
31
32
  """
@@ -40,6 +41,7 @@ class WorkerPoolArgs:
40
41
 
41
42
  - - -
42
43
  :param pulumi.Input['WorkerPoolNetworkConfigArgs'] network_config: Network configuration for the `WorkerPool`. Structure is documented below.
44
+ :param pulumi.Input['WorkerPoolPrivateServiceConnectArgs'] private_service_connect: Private Service Connect configuration for the pool.
43
45
  :param pulumi.Input[str] project: The project for the resource
44
46
  :param pulumi.Input['WorkerPoolWorkerConfigArgs'] worker_config: Configuration to be used for a creating workers in the `WorkerPool`. Structure is documented below.
45
47
  """
@@ -52,6 +54,8 @@ class WorkerPoolArgs:
52
54
  pulumi.set(__self__, "name", name)
53
55
  if network_config is not None:
54
56
  pulumi.set(__self__, "network_config", network_config)
57
+ if private_service_connect is not None:
58
+ pulumi.set(__self__, "private_service_connect", private_service_connect)
55
59
  if project is not None:
56
60
  pulumi.set(__self__, "project", project)
57
61
  if worker_config is not None:
@@ -122,6 +126,18 @@ class WorkerPoolArgs:
122
126
  def network_config(self, value: Optional[pulumi.Input['WorkerPoolNetworkConfigArgs']]):
123
127
  pulumi.set(self, "network_config", value)
124
128
 
129
+ @property
130
+ @pulumi.getter(name="privateServiceConnect")
131
+ def private_service_connect(self) -> Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']]:
132
+ """
133
+ Private Service Connect configuration for the pool.
134
+ """
135
+ return pulumi.get(self, "private_service_connect")
136
+
137
+ @private_service_connect.setter
138
+ def private_service_connect(self, value: Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']]):
139
+ pulumi.set(self, "private_service_connect", value)
140
+
125
141
  @property
126
142
  @pulumi.getter
127
143
  def project(self) -> Optional[pulumi.Input[str]]:
@@ -158,6 +174,7 @@ class _WorkerPoolState:
158
174
  location: Optional[pulumi.Input[str]] = None,
159
175
  name: Optional[pulumi.Input[str]] = None,
160
176
  network_config: Optional[pulumi.Input['WorkerPoolNetworkConfigArgs']] = None,
177
+ private_service_connect: Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']] = None,
161
178
  project: Optional[pulumi.Input[str]] = None,
162
179
  state: Optional[pulumi.Input[str]] = None,
163
180
  uid: Optional[pulumi.Input[str]] = None,
@@ -177,6 +194,7 @@ class _WorkerPoolState:
177
194
 
178
195
  - - -
179
196
  :param pulumi.Input['WorkerPoolNetworkConfigArgs'] network_config: Network configuration for the `WorkerPool`. Structure is documented below.
197
+ :param pulumi.Input['WorkerPoolPrivateServiceConnectArgs'] private_service_connect: Private Service Connect configuration for the pool.
180
198
  :param pulumi.Input[str] project: The project for the resource
181
199
  :param pulumi.Input[str] state: Output only. WorkerPool state. Possible values: STATE_UNSPECIFIED, PENDING, APPROVED, REJECTED, CANCELLED
182
200
  :param pulumi.Input[str] uid: Output only. A unique identifier for the `WorkerPool`.
@@ -199,6 +217,8 @@ class _WorkerPoolState:
199
217
  pulumi.set(__self__, "name", name)
200
218
  if network_config is not None:
201
219
  pulumi.set(__self__, "network_config", network_config)
220
+ if private_service_connect is not None:
221
+ pulumi.set(__self__, "private_service_connect", private_service_connect)
202
222
  if project is not None:
203
223
  pulumi.set(__self__, "project", project)
204
224
  if state is not None:
@@ -308,6 +328,18 @@ class _WorkerPoolState:
308
328
  def network_config(self, value: Optional[pulumi.Input['WorkerPoolNetworkConfigArgs']]):
309
329
  pulumi.set(self, "network_config", value)
310
330
 
331
+ @property
332
+ @pulumi.getter(name="privateServiceConnect")
333
+ def private_service_connect(self) -> Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']]:
334
+ """
335
+ Private Service Connect configuration for the pool.
336
+ """
337
+ return pulumi.get(self, "private_service_connect")
338
+
339
+ @private_service_connect.setter
340
+ def private_service_connect(self, value: Optional[pulumi.Input['WorkerPoolPrivateServiceConnectArgs']]):
341
+ pulumi.set(self, "private_service_connect", value)
342
+
311
343
  @property
312
344
  @pulumi.getter
313
345
  def project(self) -> Optional[pulumi.Input[str]]:
@@ -379,6 +411,7 @@ class WorkerPool(pulumi.CustomResource):
379
411
  location: Optional[pulumi.Input[str]] = None,
380
412
  name: Optional[pulumi.Input[str]] = None,
381
413
  network_config: Optional[pulumi.Input[Union['WorkerPoolNetworkConfigArgs', 'WorkerPoolNetworkConfigArgsDict']]] = None,
414
+ private_service_connect: Optional[pulumi.Input[Union['WorkerPoolPrivateServiceConnectArgs', 'WorkerPoolPrivateServiceConnectArgsDict']]] = None,
382
415
  project: Optional[pulumi.Input[str]] = None,
383
416
  worker_config: Optional[pulumi.Input[Union['WorkerPoolWorkerConfigArgs', 'WorkerPoolWorkerConfigArgsDict']]] = None,
384
417
  __props__=None):
@@ -476,6 +509,7 @@ class WorkerPool(pulumi.CustomResource):
476
509
 
477
510
  - - -
478
511
  :param pulumi.Input[Union['WorkerPoolNetworkConfigArgs', 'WorkerPoolNetworkConfigArgsDict']] network_config: Network configuration for the `WorkerPool`. Structure is documented below.
512
+ :param pulumi.Input[Union['WorkerPoolPrivateServiceConnectArgs', 'WorkerPoolPrivateServiceConnectArgsDict']] private_service_connect: Private Service Connect configuration for the pool.
479
513
  :param pulumi.Input[str] project: The project for the resource
480
514
  :param pulumi.Input[Union['WorkerPoolWorkerConfigArgs', 'WorkerPoolWorkerConfigArgsDict']] worker_config: Configuration to be used for a creating workers in the `WorkerPool`. Structure is documented below.
481
515
  """
@@ -587,6 +621,7 @@ class WorkerPool(pulumi.CustomResource):
587
621
  location: Optional[pulumi.Input[str]] = None,
588
622
  name: Optional[pulumi.Input[str]] = None,
589
623
  network_config: Optional[pulumi.Input[Union['WorkerPoolNetworkConfigArgs', 'WorkerPoolNetworkConfigArgsDict']]] = None,
624
+ private_service_connect: Optional[pulumi.Input[Union['WorkerPoolPrivateServiceConnectArgs', 'WorkerPoolPrivateServiceConnectArgsDict']]] = None,
590
625
  project: Optional[pulumi.Input[str]] = None,
591
626
  worker_config: Optional[pulumi.Input[Union['WorkerPoolWorkerConfigArgs', 'WorkerPoolWorkerConfigArgsDict']]] = None,
592
627
  __props__=None):
@@ -605,6 +640,7 @@ class WorkerPool(pulumi.CustomResource):
605
640
  __props__.__dict__["location"] = location
606
641
  __props__.__dict__["name"] = name
607
642
  __props__.__dict__["network_config"] = network_config
643
+ __props__.__dict__["private_service_connect"] = private_service_connect
608
644
  __props__.__dict__["project"] = project
609
645
  __props__.__dict__["worker_config"] = worker_config
610
646
  __props__.__dict__["create_time"] = None
@@ -631,6 +667,7 @@ class WorkerPool(pulumi.CustomResource):
631
667
  location: Optional[pulumi.Input[str]] = None,
632
668
  name: Optional[pulumi.Input[str]] = None,
633
669
  network_config: Optional[pulumi.Input[Union['WorkerPoolNetworkConfigArgs', 'WorkerPoolNetworkConfigArgsDict']]] = None,
670
+ private_service_connect: Optional[pulumi.Input[Union['WorkerPoolPrivateServiceConnectArgs', 'WorkerPoolPrivateServiceConnectArgsDict']]] = None,
634
671
  project: Optional[pulumi.Input[str]] = None,
635
672
  state: Optional[pulumi.Input[str]] = None,
636
673
  uid: Optional[pulumi.Input[str]] = None,
@@ -655,6 +692,7 @@ class WorkerPool(pulumi.CustomResource):
655
692
 
656
693
  - - -
657
694
  :param pulumi.Input[Union['WorkerPoolNetworkConfigArgs', 'WorkerPoolNetworkConfigArgsDict']] network_config: Network configuration for the `WorkerPool`. Structure is documented below.
695
+ :param pulumi.Input[Union['WorkerPoolPrivateServiceConnectArgs', 'WorkerPoolPrivateServiceConnectArgsDict']] private_service_connect: Private Service Connect configuration for the pool.
658
696
  :param pulumi.Input[str] project: The project for the resource
659
697
  :param pulumi.Input[str] state: Output only. WorkerPool state. Possible values: STATE_UNSPECIFIED, PENDING, APPROVED, REJECTED, CANCELLED
660
698
  :param pulumi.Input[str] uid: Output only. A unique identifier for the `WorkerPool`.
@@ -673,6 +711,7 @@ class WorkerPool(pulumi.CustomResource):
673
711
  __props__.__dict__["location"] = location
674
712
  __props__.__dict__["name"] = name
675
713
  __props__.__dict__["network_config"] = network_config
714
+ __props__.__dict__["private_service_connect"] = private_service_connect
676
715
  __props__.__dict__["project"] = project
677
716
  __props__.__dict__["state"] = state
678
717
  __props__.__dict__["uid"] = uid
@@ -746,6 +785,14 @@ class WorkerPool(pulumi.CustomResource):
746
785
  """
747
786
  return pulumi.get(self, "network_config")
748
787
 
788
+ @property
789
+ @pulumi.getter(name="privateServiceConnect")
790
+ def private_service_connect(self) -> pulumi.Output[Optional['outputs.WorkerPoolPrivateServiceConnect']]:
791
+ """
792
+ Private Service Connect configuration for the pool.
793
+ """
794
+ return pulumi.get(self, "private_service_connect")
795
+
749
796
  @property
750
797
  @pulumi.getter
751
798
  def project(self) -> pulumi.Output[str]:
@@ -83,6 +83,8 @@ __all__ = [
83
83
  'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesArgsDict',
84
84
  'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshArgs',
85
85
  'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshArgsDict',
86
+ 'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs',
87
+ 'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgsDict',
86
88
  'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworkingArgs',
87
89
  'DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworkingArgsDict',
88
90
  'DeliveryPipelineSerialPipelineStageStrategyStandardArgs',
@@ -93,6 +95,12 @@ __all__ = [
93
95
  'DeliveryPipelineSerialPipelineStageStrategyStandardPredeployArgsDict',
94
96
  'TargetAnthosClusterArgs',
95
97
  'TargetAnthosClusterArgsDict',
98
+ 'TargetAssociatedEntityArgs',
99
+ 'TargetAssociatedEntityArgsDict',
100
+ 'TargetAssociatedEntityAnthosClusterArgs',
101
+ 'TargetAssociatedEntityAnthosClusterArgsDict',
102
+ 'TargetAssociatedEntityGkeClusterArgs',
103
+ 'TargetAssociatedEntityGkeClusterArgsDict',
96
104
  'TargetCustomTargetArgs',
97
105
  'TargetCustomTargetArgsDict',
98
106
  'TargetExecutionConfigArgs',
@@ -2126,6 +2134,10 @@ if not MYPY:
2126
2134
  """
2127
2135
  Optional. The label to use when selecting Pods for the Deployment and Service resources. This label must already be present in both resources.
2128
2136
  """
2137
+ route_destinations: NotRequired[pulumi.Input['DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgsDict']]
2138
+ """
2139
+ Optional. Route destinations allow configuring the Gateway API HTTPRoute to be deployed to additional clusters. This option is available for multi-cluster service mesh set ups that require the route to exist in the clusters that call the service. If unspecified, the HTTPRoute will only be deployed to the Target cluster.
2140
+ """
2129
2141
  route_update_wait_time: NotRequired[pulumi.Input[str]]
2130
2142
  """
2131
2143
  Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time.
@@ -2144,6 +2156,7 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
2144
2156
  http_route: pulumi.Input[str],
2145
2157
  service: pulumi.Input[str],
2146
2158
  pod_selector_label: Optional[pulumi.Input[str]] = None,
2159
+ route_destinations: Optional[pulumi.Input['DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs']] = None,
2147
2160
  route_update_wait_time: Optional[pulumi.Input[str]] = None,
2148
2161
  stable_cutback_duration: Optional[pulumi.Input[str]] = None):
2149
2162
  """
@@ -2151,6 +2164,7 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
2151
2164
  :param pulumi.Input[str] http_route: Required. Name of the Gateway API HTTPRoute.
2152
2165
  :param pulumi.Input[str] service: Required. Name of the Kubernetes Service.
2153
2166
  :param pulumi.Input[str] pod_selector_label: Optional. The label to use when selecting Pods for the Deployment and Service resources. This label must already be present in both resources.
2167
+ :param pulumi.Input['DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs'] route_destinations: Optional. Route destinations allow configuring the Gateway API HTTPRoute to be deployed to additional clusters. This option is available for multi-cluster service mesh set ups that require the route to exist in the clusters that call the service. If unspecified, the HTTPRoute will only be deployed to the Target cluster.
2154
2168
  :param pulumi.Input[str] route_update_wait_time: Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time.
2155
2169
  :param pulumi.Input[str] stable_cutback_duration: Optional. The amount of time to migrate traffic back from the canary Service to the original Service during the stable phase deployment. If specified, must be between 15s and 3600s. If unspecified, there is no cutback time.
2156
2170
  """
@@ -2159,6 +2173,8 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
2159
2173
  pulumi.set(__self__, "service", service)
2160
2174
  if pod_selector_label is not None:
2161
2175
  pulumi.set(__self__, "pod_selector_label", pod_selector_label)
2176
+ if route_destinations is not None:
2177
+ pulumi.set(__self__, "route_destinations", route_destinations)
2162
2178
  if route_update_wait_time is not None:
2163
2179
  pulumi.set(__self__, "route_update_wait_time", route_update_wait_time)
2164
2180
  if stable_cutback_duration is not None:
@@ -2212,6 +2228,18 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
2212
2228
  def pod_selector_label(self, value: Optional[pulumi.Input[str]]):
2213
2229
  pulumi.set(self, "pod_selector_label", value)
2214
2230
 
2231
+ @property
2232
+ @pulumi.getter(name="routeDestinations")
2233
+ def route_destinations(self) -> Optional[pulumi.Input['DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs']]:
2234
+ """
2235
+ Optional. Route destinations allow configuring the Gateway API HTTPRoute to be deployed to additional clusters. This option is available for multi-cluster service mesh set ups that require the route to exist in the clusters that call the service. If unspecified, the HTTPRoute will only be deployed to the Target cluster.
2236
+ """
2237
+ return pulumi.get(self, "route_destinations")
2238
+
2239
+ @route_destinations.setter
2240
+ def route_destinations(self, value: Optional[pulumi.Input['DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs']]):
2241
+ pulumi.set(self, "route_destinations", value)
2242
+
2215
2243
  @property
2216
2244
  @pulumi.getter(name="routeUpdateWaitTime")
2217
2245
  def route_update_wait_time(self) -> Optional[pulumi.Input[str]]:
@@ -2237,6 +2265,57 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
2237
2265
  pulumi.set(self, "stable_cutback_duration", value)
2238
2266
 
2239
2267
 
2268
+ if not MYPY:
2269
+ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgsDict(TypedDict):
2270
+ destination_ids: pulumi.Input[Sequence[pulumi.Input[str]]]
2271
+ """
2272
+ Required. The clusters where the Gateway API HTTPRoute resource will be deployed to. Valid entries include the associated entities IDs configured in the Target resource and "@self" to include the Target cluster.
2273
+ """
2274
+ propagate_service: NotRequired[pulumi.Input[bool]]
2275
+ """
2276
+ Optional. Whether to propagate the Kubernetes Service to the route destination clusters. The Service will always be deployed to the Target cluster even if the HTTPRoute is not. This option may be used to facilitiate successful DNS lookup in the route destination clusters. Can only be set to true if destinations are specified.
2277
+ """
2278
+ elif False:
2279
+ DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgsDict: TypeAlias = Mapping[str, Any]
2280
+
2281
+ @pulumi.input_type
2282
+ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinationsArgs:
2283
+ def __init__(__self__, *,
2284
+ destination_ids: pulumi.Input[Sequence[pulumi.Input[str]]],
2285
+ propagate_service: Optional[pulumi.Input[bool]] = None):
2286
+ """
2287
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] destination_ids: Required. The clusters where the Gateway API HTTPRoute resource will be deployed to. Valid entries include the associated entities IDs configured in the Target resource and "@self" to include the Target cluster.
2288
+ :param pulumi.Input[bool] propagate_service: Optional. Whether to propagate the Kubernetes Service to the route destination clusters. The Service will always be deployed to the Target cluster even if the HTTPRoute is not. This option may be used to facilitiate successful DNS lookup in the route destination clusters. Can only be set to true if destinations are specified.
2289
+ """
2290
+ pulumi.set(__self__, "destination_ids", destination_ids)
2291
+ if propagate_service is not None:
2292
+ pulumi.set(__self__, "propagate_service", propagate_service)
2293
+
2294
+ @property
2295
+ @pulumi.getter(name="destinationIds")
2296
+ def destination_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
2297
+ """
2298
+ Required. The clusters where the Gateway API HTTPRoute resource will be deployed to. Valid entries include the associated entities IDs configured in the Target resource and "@self" to include the Target cluster.
2299
+ """
2300
+ return pulumi.get(self, "destination_ids")
2301
+
2302
+ @destination_ids.setter
2303
+ def destination_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
2304
+ pulumi.set(self, "destination_ids", value)
2305
+
2306
+ @property
2307
+ @pulumi.getter(name="propagateService")
2308
+ def propagate_service(self) -> Optional[pulumi.Input[bool]]:
2309
+ """
2310
+ Optional. Whether to propagate the Kubernetes Service to the route destination clusters. The Service will always be deployed to the Target cluster even if the HTTPRoute is not. This option may be used to facilitiate successful DNS lookup in the route destination clusters. Can only be set to true if destinations are specified.
2311
+ """
2312
+ return pulumi.get(self, "propagate_service")
2313
+
2314
+ @propagate_service.setter
2315
+ def propagate_service(self, value: Optional[pulumi.Input[bool]]):
2316
+ pulumi.set(self, "propagate_service", value)
2317
+
2318
+
2240
2319
  if not MYPY:
2241
2320
  class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworkingArgsDict(TypedDict):
2242
2321
  deployment: pulumi.Input[str]
@@ -2495,6 +2574,181 @@ class TargetAnthosClusterArgs:
2495
2574
  pulumi.set(self, "membership", value)
2496
2575
 
2497
2576
 
2577
+ if not MYPY:
2578
+ class TargetAssociatedEntityArgsDict(TypedDict):
2579
+ entity_id: pulumi.Input[str]
2580
+ """
2581
+ The name for the key in the map for which this object is mapped to in the API
2582
+ """
2583
+ anthos_clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityAnthosClusterArgsDict']]]]
2584
+ """
2585
+ Optional. Information specifying Anthos clusters as associated entities.
2586
+ """
2587
+ gke_clusters: NotRequired[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityGkeClusterArgsDict']]]]
2588
+ """
2589
+ Optional. Information specifying GKE clusters as associated entities.
2590
+ """
2591
+ elif False:
2592
+ TargetAssociatedEntityArgsDict: TypeAlias = Mapping[str, Any]
2593
+
2594
+ @pulumi.input_type
2595
+ class TargetAssociatedEntityArgs:
2596
+ def __init__(__self__, *,
2597
+ entity_id: pulumi.Input[str],
2598
+ anthos_clusters: Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityAnthosClusterArgs']]]] = None,
2599
+ gke_clusters: Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityGkeClusterArgs']]]] = None):
2600
+ """
2601
+ :param pulumi.Input[str] entity_id: The name for the key in the map for which this object is mapped to in the API
2602
+ :param pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityAnthosClusterArgs']]] anthos_clusters: Optional. Information specifying Anthos clusters as associated entities.
2603
+ :param pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityGkeClusterArgs']]] gke_clusters: Optional. Information specifying GKE clusters as associated entities.
2604
+ """
2605
+ pulumi.set(__self__, "entity_id", entity_id)
2606
+ if anthos_clusters is not None:
2607
+ pulumi.set(__self__, "anthos_clusters", anthos_clusters)
2608
+ if gke_clusters is not None:
2609
+ pulumi.set(__self__, "gke_clusters", gke_clusters)
2610
+
2611
+ @property
2612
+ @pulumi.getter(name="entityId")
2613
+ def entity_id(self) -> pulumi.Input[str]:
2614
+ """
2615
+ The name for the key in the map for which this object is mapped to in the API
2616
+ """
2617
+ return pulumi.get(self, "entity_id")
2618
+
2619
+ @entity_id.setter
2620
+ def entity_id(self, value: pulumi.Input[str]):
2621
+ pulumi.set(self, "entity_id", value)
2622
+
2623
+ @property
2624
+ @pulumi.getter(name="anthosClusters")
2625
+ def anthos_clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityAnthosClusterArgs']]]]:
2626
+ """
2627
+ Optional. Information specifying Anthos clusters as associated entities.
2628
+ """
2629
+ return pulumi.get(self, "anthos_clusters")
2630
+
2631
+ @anthos_clusters.setter
2632
+ def anthos_clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityAnthosClusterArgs']]]]):
2633
+ pulumi.set(self, "anthos_clusters", value)
2634
+
2635
+ @property
2636
+ @pulumi.getter(name="gkeClusters")
2637
+ def gke_clusters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityGkeClusterArgs']]]]:
2638
+ """
2639
+ Optional. Information specifying GKE clusters as associated entities.
2640
+ """
2641
+ return pulumi.get(self, "gke_clusters")
2642
+
2643
+ @gke_clusters.setter
2644
+ def gke_clusters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetAssociatedEntityGkeClusterArgs']]]]):
2645
+ pulumi.set(self, "gke_clusters", value)
2646
+
2647
+
2648
+ if not MYPY:
2649
+ class TargetAssociatedEntityAnthosClusterArgsDict(TypedDict):
2650
+ membership: NotRequired[pulumi.Input[str]]
2651
+ """
2652
+ Optional. Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`.
2653
+ """
2654
+ elif False:
2655
+ TargetAssociatedEntityAnthosClusterArgsDict: TypeAlias = Mapping[str, Any]
2656
+
2657
+ @pulumi.input_type
2658
+ class TargetAssociatedEntityAnthosClusterArgs:
2659
+ def __init__(__self__, *,
2660
+ membership: Optional[pulumi.Input[str]] = None):
2661
+ """
2662
+ :param pulumi.Input[str] membership: Optional. Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`.
2663
+ """
2664
+ if membership is not None:
2665
+ pulumi.set(__self__, "membership", membership)
2666
+
2667
+ @property
2668
+ @pulumi.getter
2669
+ def membership(self) -> Optional[pulumi.Input[str]]:
2670
+ """
2671
+ Optional. Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`.
2672
+ """
2673
+ return pulumi.get(self, "membership")
2674
+
2675
+ @membership.setter
2676
+ def membership(self, value: Optional[pulumi.Input[str]]):
2677
+ pulumi.set(self, "membership", value)
2678
+
2679
+
2680
+ if not MYPY:
2681
+ class TargetAssociatedEntityGkeClusterArgsDict(TypedDict):
2682
+ cluster: NotRequired[pulumi.Input[str]]
2683
+ """
2684
+ Optional. Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`.
2685
+ """
2686
+ internal_ip: NotRequired[pulumi.Input[bool]]
2687
+ """
2688
+ Optional. If true, `cluster` is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when `cluster` is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
2689
+ """
2690
+ proxy_url: NotRequired[pulumi.Input[str]]
2691
+ """
2692
+ Optional. If set, used to configure a [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) to the Kubernetes server.
2693
+ """
2694
+ elif False:
2695
+ TargetAssociatedEntityGkeClusterArgsDict: TypeAlias = Mapping[str, Any]
2696
+
2697
+ @pulumi.input_type
2698
+ class TargetAssociatedEntityGkeClusterArgs:
2699
+ def __init__(__self__, *,
2700
+ cluster: Optional[pulumi.Input[str]] = None,
2701
+ internal_ip: Optional[pulumi.Input[bool]] = None,
2702
+ proxy_url: Optional[pulumi.Input[str]] = None):
2703
+ """
2704
+ :param pulumi.Input[str] cluster: Optional. Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`.
2705
+ :param pulumi.Input[bool] internal_ip: Optional. If true, `cluster` is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when `cluster` is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
2706
+ :param pulumi.Input[str] proxy_url: Optional. If set, used to configure a [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) to the Kubernetes server.
2707
+ """
2708
+ if cluster is not None:
2709
+ pulumi.set(__self__, "cluster", cluster)
2710
+ if internal_ip is not None:
2711
+ pulumi.set(__self__, "internal_ip", internal_ip)
2712
+ if proxy_url is not None:
2713
+ pulumi.set(__self__, "proxy_url", proxy_url)
2714
+
2715
+ @property
2716
+ @pulumi.getter
2717
+ def cluster(self) -> Optional[pulumi.Input[str]]:
2718
+ """
2719
+ Optional. Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`.
2720
+ """
2721
+ return pulumi.get(self, "cluster")
2722
+
2723
+ @cluster.setter
2724
+ def cluster(self, value: Optional[pulumi.Input[str]]):
2725
+ pulumi.set(self, "cluster", value)
2726
+
2727
+ @property
2728
+ @pulumi.getter(name="internalIp")
2729
+ def internal_ip(self) -> Optional[pulumi.Input[bool]]:
2730
+ """
2731
+ Optional. If true, `cluster` is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when `cluster` is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).
2732
+ """
2733
+ return pulumi.get(self, "internal_ip")
2734
+
2735
+ @internal_ip.setter
2736
+ def internal_ip(self, value: Optional[pulumi.Input[bool]]):
2737
+ pulumi.set(self, "internal_ip", value)
2738
+
2739
+ @property
2740
+ @pulumi.getter(name="proxyUrl")
2741
+ def proxy_url(self) -> Optional[pulumi.Input[str]]:
2742
+ """
2743
+ Optional. If set, used to configure a [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) to the Kubernetes server.
2744
+ """
2745
+ return pulumi.get(self, "proxy_url")
2746
+
2747
+ @proxy_url.setter
2748
+ def proxy_url(self, value: Optional[pulumi.Input[str]]):
2749
+ pulumi.set(self, "proxy_url", value)
2750
+
2751
+
2498
2752
  if not MYPY:
2499
2753
  class TargetCustomTargetArgsDict(TypedDict):
2500
2754
  custom_target_type: pulumi.Input[str]