pulumi-gcp 8.17.0a1738274430__py3-none-any.whl → 8.18.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 (137) hide show
  1. pulumi_gcp/__init__.py +115 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  3. pulumi_gcp/alloydb/cluster.py +75 -7
  4. pulumi_gcp/alloydb/user.py +10 -1
  5. pulumi_gcp/apigee/_inputs.py +91 -0
  6. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  7. pulumi_gcp/apigee/environment.py +54 -0
  8. pulumi_gcp/apigee/outputs.py +54 -0
  9. pulumi_gcp/apihub/__init__.py +10 -0
  10. pulumi_gcp/apihub/_inputs.py +154 -0
  11. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  12. pulumi_gcp/apihub/outputs.py +124 -0
  13. pulumi_gcp/assuredworkloads/workload.py +7 -7
  14. pulumi_gcp/beyondcorp/__init__.py +4 -0
  15. pulumi_gcp/beyondcorp/_inputs.py +130 -0
  16. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +180 -0
  17. pulumi_gcp/beyondcorp/outputs.py +76 -0
  18. pulumi_gcp/beyondcorp/security_gateway.py +52 -25
  19. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +1075 -0
  20. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +1075 -0
  21. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +894 -0
  22. pulumi_gcp/bigquery/_inputs.py +33 -0
  23. pulumi_gcp/bigquery/dataset.py +7 -7
  24. pulumi_gcp/bigquery/outputs.py +36 -0
  25. pulumi_gcp/bigquery/table.py +61 -7
  26. pulumi_gcp/chronicle/__init__.py +1 -0
  27. pulumi_gcp/chronicle/_inputs.py +124 -0
  28. pulumi_gcp/chronicle/outputs.py +112 -0
  29. pulumi_gcp/chronicle/retrohunt.py +629 -0
  30. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +23 -23
  31. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  32. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  33. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  34. pulumi_gcp/cloudrunv2/service.py +159 -0
  35. pulumi_gcp/colab/__init__.py +5 -0
  36. pulumi_gcp/colab/_inputs.py +131 -0
  37. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  38. pulumi_gcp/colab/outputs.py +92 -0
  39. pulumi_gcp/colab/runtime.py +696 -0
  40. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  41. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  42. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  43. pulumi_gcp/compute/__init__.py +4 -0
  44. pulumi_gcp/compute/_inputs.py +535 -9
  45. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  46. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  47. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  48. pulumi_gcp/compute/get_network.py +3 -3
  49. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  50. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  51. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  52. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  53. pulumi_gcp/compute/network.py +7 -7
  54. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  55. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  56. pulumi_gcp/compute/outputs.py +358 -6
  57. pulumi_gcp/compute/project_metadata_item.py +12 -0
  58. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  59. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  60. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  61. pulumi_gcp/compute/router_peer.py +227 -3
  62. pulumi_gcp/config/__init__.pyi +2 -0
  63. pulumi_gcp/config/vars.py +4 -0
  64. pulumi_gcp/container/_inputs.py +79 -20
  65. pulumi_gcp/container/outputs.py +75 -12
  66. pulumi_gcp/dataproc/_inputs.py +34 -0
  67. pulumi_gcp/dataproc/outputs.py +37 -0
  68. pulumi_gcp/dataproc/workflow_template.py +47 -0
  69. pulumi_gcp/filestore/get_instance.py +12 -1
  70. pulumi_gcp/filestore/instance.py +75 -0
  71. pulumi_gcp/firestore/field.py +60 -0
  72. pulumi_gcp/gemini/code_repository_index.py +29 -33
  73. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  74. pulumi_gcp/gemini/repository_group.py +76 -26
  75. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  76. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  77. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  78. pulumi_gcp/gkehub/_inputs.py +20 -0
  79. pulumi_gcp/gkehub/membership_binding.py +6 -6
  80. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  81. pulumi_gcp/gkehub/namespace.py +4 -4
  82. pulumi_gcp/gkehub/outputs.py +26 -1
  83. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  84. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  85. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  86. pulumi_gcp/kms/__init__.py +1 -0
  87. pulumi_gcp/kms/get_key_handles.py +172 -0
  88. pulumi_gcp/kms/outputs.py +45 -0
  89. pulumi_gcp/netapp/storage_pool.py +1 -1
  90. pulumi_gcp/networkconnectivity/spoke.py +76 -14
  91. pulumi_gcp/networksecurity/_inputs.py +72 -0
  92. pulumi_gcp/networksecurity/outputs.py +76 -0
  93. pulumi_gcp/networksecurity/security_profile.py +233 -7
  94. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  95. pulumi_gcp/organizations/__init__.py +1 -0
  96. pulumi_gcp/organizations/get_s.py +128 -0
  97. pulumi_gcp/organizations/outputs.py +63 -0
  98. pulumi_gcp/orgpolicy/policy.py +2 -2
  99. pulumi_gcp/parametermanager/__init__.py +6 -0
  100. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  101. pulumi_gcp/parametermanager/get_parameter_version.py +216 -0
  102. pulumi_gcp/parametermanager/get_parameters.py +140 -0
  103. pulumi_gcp/parametermanager/get_regional_parameter_version.py +235 -0
  104. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  105. pulumi_gcp/parametermanager/outputs.py +366 -0
  106. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  107. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  108. pulumi_gcp/provider.py +20 -0
  109. pulumi_gcp/pubsub/_inputs.py +477 -1
  110. pulumi_gcp/pubsub/outputs.py +631 -2
  111. pulumi_gcp/pubsub/subscription.py +6 -6
  112. pulumi_gcp/pubsub/topic.py +112 -0
  113. pulumi_gcp/pulumi-plugin.json +1 -1
  114. pulumi_gcp/redis/__init__.py +1 -0
  115. pulumi_gcp/redis/_inputs.py +342 -6
  116. pulumi_gcp/redis/cluster.py +223 -102
  117. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  118. pulumi_gcp/redis/outputs.py +268 -4
  119. pulumi_gcp/resourcemanager/lien.py +12 -0
  120. pulumi_gcp/secretmanager/regional_secret.py +4 -0
  121. pulumi_gcp/secretmanager/regional_secret_version.py +12 -0
  122. pulumi_gcp/secretmanager/secret.py +4 -0
  123. pulumi_gcp/secretmanager/secret_version.py +12 -0
  124. pulumi_gcp/securityposture/posture.py +4 -0
  125. pulumi_gcp/securityposture/posture_deployment.py +4 -0
  126. pulumi_gcp/serviceaccount/get_s.py +98 -8
  127. pulumi_gcp/spanner/_inputs.py +68 -0
  128. pulumi_gcp/spanner/backup_schedule.py +70 -4
  129. pulumi_gcp/spanner/outputs.py +60 -0
  130. pulumi_gcp/storage/get_bucket_object_content.py +4 -4
  131. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  132. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  133. pulumi_gcp/workflows/workflow.py +175 -0
  134. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/METADATA +1 -1
  135. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/RECORD +137 -110
  136. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/WHEEL +0 -0
  137. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0.dist-info}/top_level.txt +0 -0
@@ -356,7 +356,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
356
356
  network="default",
357
357
  subnetwork="default")
358
358
  membership = gcp.gkehub.Membership("membership",
359
- membership_id="tf-test-membership_2605",
359
+ membership_id="tf-test-membership_34535",
360
360
  endpoint={
361
361
  "gke_cluster": {
362
362
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
@@ -365,7 +365,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
365
365
  opts = pulumi.ResourceOptions(depends_on=[primary]))
366
366
  project = gcp.organizations.get_project()
367
367
  membership_rbac_role_binding = gcp.gkehub.MembershipRbacRoleBinding("membership_rbac_role_binding",
368
- membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_34535",
368
+ membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_22375",
369
369
  membership_id=membership.membership_id,
370
370
  user=f"service-{project.number}@gcp-sa-anthossupport.iam.gserviceaccount.com",
371
371
  role={
@@ -434,7 +434,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
434
434
  network="default",
435
435
  subnetwork="default")
436
436
  membership = gcp.gkehub.Membership("membership",
437
- membership_id="tf-test-membership_2605",
437
+ membership_id="tf-test-membership_34535",
438
438
  endpoint={
439
439
  "gke_cluster": {
440
440
  "resource_link": primary.id.apply(lambda id: f"//container.googleapis.com/{id}"),
@@ -443,7 +443,7 @@ class MembershipRbacRoleBinding(pulumi.CustomResource):
443
443
  opts = pulumi.ResourceOptions(depends_on=[primary]))
444
444
  project = gcp.organizations.get_project()
445
445
  membership_rbac_role_binding = gcp.gkehub.MembershipRbacRoleBinding("membership_rbac_role_binding",
446
- membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_34535",
446
+ membership_rbac_role_binding_id="tf-test-membership-rbac-role-binding_22375",
447
447
  membership_id=membership.membership_id,
448
448
  user=f"service-{project.number}@gcp-sa-anthossupport.iam.gserviceaccount.com",
449
449
  role={
@@ -428,9 +428,9 @@ class Namespace(pulumi.CustomResource):
428
428
  import pulumi
429
429
  import pulumi_gcp as gcp
430
430
 
431
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_22375")
431
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_29439")
432
432
  namespace = gcp.gkehub.Namespace("namespace",
433
- scope_namespace_id="tf-test-namespace_29439",
433
+ scope_namespace_id="tf-test-namespace_87786",
434
434
  scope_id=scope.scope_id,
435
435
  scope=scope.name,
436
436
  namespace_labels={
@@ -513,9 +513,9 @@ class Namespace(pulumi.CustomResource):
513
513
  import pulumi
514
514
  import pulumi_gcp as gcp
515
515
 
516
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_22375")
516
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_29439")
517
517
  namespace = gcp.gkehub.Namespace("namespace",
518
- scope_namespace_id="tf-test-namespace_29439",
518
+ scope_namespace_id="tf-test-namespace_87786",
519
519
  scope_id=scope.scope_id,
520
520
  scope=scope.name,
521
521
  namespace_labels={
@@ -240,7 +240,9 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
240
240
  @staticmethod
241
241
  def __key_warning(key: str):
242
242
  suggest = None
243
- if key == "preventDrift":
243
+ if key == "metricsGcpServiceAccountEmail":
244
+ suggest = "metrics_gcp_service_account_email"
245
+ elif key == "preventDrift":
244
246
  suggest = "prevent_drift"
245
247
  elif key == "sourceFormat":
246
248
  suggest = "source_format"
@@ -259,6 +261,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
259
261
  def __init__(__self__, *,
260
262
  enabled: Optional[bool] = None,
261
263
  git: Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit'] = None,
264
+ metrics_gcp_service_account_email: Optional[str] = None,
262
265
  oci: Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci'] = None,
263
266
  prevent_drift: Optional[bool] = None,
264
267
  source_format: Optional[str] = None):
@@ -266,6 +269,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
266
269
  :param bool enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
267
270
  :param 'FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs' git: Git repo configuration for the cluster
268
271
  Structure is documented below.
272
+ :param str metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
269
273
  :param 'FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs' oci: OCI repo configuration for the cluster
270
274
  Structure is documented below.
271
275
  :param bool prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
@@ -275,6 +279,8 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
275
279
  pulumi.set(__self__, "enabled", enabled)
276
280
  if git is not None:
277
281
  pulumi.set(__self__, "git", git)
282
+ if metrics_gcp_service_account_email is not None:
283
+ pulumi.set(__self__, "metrics_gcp_service_account_email", metrics_gcp_service_account_email)
278
284
  if oci is not None:
279
285
  pulumi.set(__self__, "oci", oci)
280
286
  if prevent_drift is not None:
@@ -299,6 +305,14 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(dict):
299
305
  """
300
306
  return pulumi.get(self, "git")
301
307
 
308
+ @property
309
+ @pulumi.getter(name="metricsGcpServiceAccountEmail")
310
+ def metrics_gcp_service_account_email(self) -> Optional[str]:
311
+ """
312
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
313
+ """
314
+ return pulumi.get(self, "metrics_gcp_service_account_email")
315
+
302
316
  @property
303
317
  @pulumi.getter
304
318
  def oci(self) -> Optional['outputs.FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci']:
@@ -3773,18 +3787,21 @@ class GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncResult(dict):
3773
3787
  def __init__(__self__, *,
3774
3788
  enabled: bool,
3775
3789
  gits: Sequence['outputs.GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitResult'],
3790
+ metrics_gcp_service_account_email: str,
3776
3791
  ocis: Sequence['outputs.GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciResult'],
3777
3792
  prevent_drift: bool,
3778
3793
  source_format: str):
3779
3794
  """
3780
3795
  :param bool enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
3781
3796
  :param Sequence['GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs'] gits: Git repo configuration for the cluster
3797
+ :param str metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount 'default' in the namespace 'config-management-monitoring' should be bound to the GSA.
3782
3798
  :param Sequence['GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs'] ocis: OCI repo configuration for the cluster
3783
3799
  :param bool prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to 'false', disables the Config Sync admission webhook and does not prevent drifts.
3784
3800
  :param str source_format: Specifies whether the Config Sync Repo is in hierarchical or unstructured mode
3785
3801
  """
3786
3802
  pulumi.set(__self__, "enabled", enabled)
3787
3803
  pulumi.set(__self__, "gits", gits)
3804
+ pulumi.set(__self__, "metrics_gcp_service_account_email", metrics_gcp_service_account_email)
3788
3805
  pulumi.set(__self__, "ocis", ocis)
3789
3806
  pulumi.set(__self__, "prevent_drift", prevent_drift)
3790
3807
  pulumi.set(__self__, "source_format", source_format)
@@ -3805,6 +3822,14 @@ class GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncResult(dict):
3805
3822
  """
3806
3823
  return pulumi.get(self, "gits")
3807
3824
 
3825
+ @property
3826
+ @pulumi.getter(name="metricsGcpServiceAccountEmail")
3827
+ def metrics_gcp_service_account_email(self) -> str:
3828
+ """
3829
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount 'default' in the namespace 'config-management-monitoring' should be bound to the GSA.
3830
+ """
3831
+ return pulumi.get(self, "metrics_gcp_service_account_email")
3832
+
3808
3833
  @property
3809
3834
  @pulumi.getter
3810
3835
  def ocis(self) -> Sequence['outputs.GetFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciResult']:
@@ -429,9 +429,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
429
429
  import pulumi
430
430
  import pulumi_gcp as gcp
431
431
 
432
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_87786")
432
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_2067")
433
433
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
434
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_2067",
434
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_40785",
435
435
  scope_id=scope.scope_id,
436
436
  user="test-email@gmail.com",
437
437
  role={
@@ -504,9 +504,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
504
504
  import pulumi
505
505
  import pulumi_gcp as gcp
506
506
 
507
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_87786")
507
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_2067")
508
508
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
509
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_2067",
509
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_40785",
510
510
  scope_id=scope.scope_id,
511
511
  user="test-email@gmail.com",
512
512
  role={
@@ -253,7 +253,7 @@ class TunnelDestGroup(pulumi.CustomResource):
253
253
 
254
254
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
255
255
  region="us-central1",
256
- group_name="testgroup_40785",
256
+ group_name="testgroup_79169",
257
257
  cidrs=[
258
258
  "10.1.0.0/16",
259
259
  "192.168.10.0/24",
@@ -339,7 +339,7 @@ class TunnelDestGroup(pulumi.CustomResource):
339
339
 
340
340
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
341
341
  region="us-central1",
342
- group_name="testgroup_40785",
342
+ group_name="testgroup_79169",
343
343
  cidrs=[
344
344
  "10.1.0.0/16",
345
345
  "192.168.10.0/24",
@@ -378,8 +378,8 @@ class ManagedZone(pulumi.CustomResource):
378
378
  import pulumi_gcp as gcp
379
379
 
380
380
  target_project = gcp.organizations.Project("target_project",
381
- project_id="tf-test_79169",
382
- name="tf-test_56529",
381
+ project_id="tf-test_56529",
382
+ name="tf-test_75413",
383
383
  org_id="123456789",
384
384
  billing_account="000000-0000000-0000000-000000",
385
385
  deletion_policy="DELETE")
@@ -400,8 +400,8 @@ class ManagedZone(pulumi.CustomResource):
400
400
  auto_create_subnetworks=False,
401
401
  opts = pulumi.ResourceOptions(depends_on=[compute]))
402
402
  zone = gcp.dns.ManagedZone("zone",
403
- name="tf-test-dns_75413",
404
- dns_name="private_55138.example.com.",
403
+ name="tf-test-dns_55138",
404
+ dns_name="private_37559.example.com.",
405
405
  visibility="private",
406
406
  private_visibility_config={
407
407
  "networks": [{
@@ -489,8 +489,8 @@ class ManagedZone(pulumi.CustomResource):
489
489
  import pulumi_gcp as gcp
490
490
 
491
491
  target_project = gcp.organizations.Project("target_project",
492
- project_id="tf-test_79169",
493
- name="tf-test_56529",
492
+ project_id="tf-test_56529",
493
+ name="tf-test_75413",
494
494
  org_id="123456789",
495
495
  billing_account="000000-0000000-0000000-000000",
496
496
  deletion_policy="DELETE")
@@ -511,8 +511,8 @@ class ManagedZone(pulumi.CustomResource):
511
511
  auto_create_subnetworks=False,
512
512
  opts = pulumi.ResourceOptions(depends_on=[compute]))
513
513
  zone = gcp.dns.ManagedZone("zone",
514
- name="tf-test-dns_75413",
515
- dns_name="private_55138.example.com.",
514
+ name="tf-test-dns_55138",
515
+ dns_name="private_37559.example.com.",
516
516
  visibility="private",
517
517
  private_visibility_config={
518
518
  "networks": [{
@@ -22,6 +22,7 @@ from .get_crypto_key_versions import *
22
22
  from .get_crypto_keys import *
23
23
  from .get_ekm_connection_iam_policy import *
24
24
  from .get_key_handle import *
25
+ from .get_key_handles import *
25
26
  from .get_key_ring_iam_policy import *
26
27
  from .get_key_rings import *
27
28
  from .get_kms_crypto_key import *
@@ -0,0 +1,172 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetKeyHandlesResult',
20
+ 'AwaitableGetKeyHandlesResult',
21
+ 'get_key_handles',
22
+ 'get_key_handles_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetKeyHandlesResult:
27
+ """
28
+ A collection of values returned by getKeyHandles.
29
+ """
30
+ def __init__(__self__, id=None, key_handles=None, location=None, project=None, resource_type_selector=None):
31
+ if id and not isinstance(id, str):
32
+ raise TypeError("Expected argument 'id' to be a str")
33
+ pulumi.set(__self__, "id", id)
34
+ if key_handles and not isinstance(key_handles, list):
35
+ raise TypeError("Expected argument 'key_handles' to be a list")
36
+ pulumi.set(__self__, "key_handles", key_handles)
37
+ if location and not isinstance(location, str):
38
+ raise TypeError("Expected argument 'location' to be a str")
39
+ pulumi.set(__self__, "location", location)
40
+ if project and not isinstance(project, str):
41
+ raise TypeError("Expected argument 'project' to be a str")
42
+ pulumi.set(__self__, "project", project)
43
+ if resource_type_selector and not isinstance(resource_type_selector, str):
44
+ raise TypeError("Expected argument 'resource_type_selector' to be a str")
45
+ pulumi.set(__self__, "resource_type_selector", resource_type_selector)
46
+
47
+ @property
48
+ @pulumi.getter
49
+ def id(self) -> str:
50
+ """
51
+ The provider-assigned unique ID for this managed resource.
52
+ """
53
+ return pulumi.get(self, "id")
54
+
55
+ @property
56
+ @pulumi.getter(name="keyHandles")
57
+ def key_handles(self) -> Sequence['outputs.GetKeyHandlesKeyHandleResult']:
58
+ return pulumi.get(self, "key_handles")
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def location(self) -> str:
63
+ """
64
+ The location of the KMS Key and KeyHandle.
65
+ """
66
+ return pulumi.get(self, "location")
67
+
68
+ @property
69
+ @pulumi.getter
70
+ def project(self) -> Optional[str]:
71
+ """
72
+ The identifier of the project where KMS KeyHandle is created.
73
+ """
74
+ return pulumi.get(self, "project")
75
+
76
+ @property
77
+ @pulumi.getter(name="resourceTypeSelector")
78
+ def resource_type_selector(self) -> str:
79
+ """
80
+ Indicates the resource type that the resulting CryptoKey is meant to protect, e.g. {SERVICE}.googleapis.com/{TYPE}. See documentation for supported resource types.
81
+ """
82
+ return pulumi.get(self, "resource_type_selector")
83
+
84
+
85
+ class AwaitableGetKeyHandlesResult(GetKeyHandlesResult):
86
+ # pylint: disable=using-constant-test
87
+ def __await__(self):
88
+ if False:
89
+ yield self
90
+ return GetKeyHandlesResult(
91
+ id=self.id,
92
+ key_handles=self.key_handles,
93
+ location=self.location,
94
+ project=self.project,
95
+ resource_type_selector=self.resource_type_selector)
96
+
97
+
98
+ def get_key_handles(location: Optional[str] = None,
99
+ project: Optional[str] = None,
100
+ resource_type_selector: Optional[str] = None,
101
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKeyHandlesResult:
102
+ """
103
+ ## Example Usage
104
+
105
+ ```python
106
+ import pulumi
107
+ import pulumi_gcp as gcp
108
+
109
+ my_key_handles = gcp.kms.get_key_handles(project="resource-project-id",
110
+ location="us-central1",
111
+ resource_type_selector="storage.googleapis.com/Bucket")
112
+ ```
113
+
114
+
115
+ :param str location: The Google Cloud Platform location for the KeyHandle.
116
+ A full list of valid locations can be found by running `gcloud kms locations list`.
117
+ :param str project: The project in which the resource belongs. If it
118
+ is not provided, the provider project is used.
119
+ :param str resource_type_selector: The resource type by which to filter KeyHandle e.g. {SERVICE}.googleapis.com/{TYPE}. See documentation for supported resource types.
120
+
121
+ - - -
122
+ """
123
+ __args__ = dict()
124
+ __args__['location'] = location
125
+ __args__['project'] = project
126
+ __args__['resourceTypeSelector'] = resource_type_selector
127
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
128
+ __ret__ = pulumi.runtime.invoke('gcp:kms/getKeyHandles:getKeyHandles', __args__, opts=opts, typ=GetKeyHandlesResult).value
129
+
130
+ return AwaitableGetKeyHandlesResult(
131
+ id=pulumi.get(__ret__, 'id'),
132
+ key_handles=pulumi.get(__ret__, 'key_handles'),
133
+ location=pulumi.get(__ret__, 'location'),
134
+ project=pulumi.get(__ret__, 'project'),
135
+ resource_type_selector=pulumi.get(__ret__, 'resource_type_selector'))
136
+ def get_key_handles_output(location: Optional[pulumi.Input[str]] = None,
137
+ project: Optional[pulumi.Input[Optional[str]]] = None,
138
+ resource_type_selector: Optional[pulumi.Input[str]] = None,
139
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetKeyHandlesResult]:
140
+ """
141
+ ## Example Usage
142
+
143
+ ```python
144
+ import pulumi
145
+ import pulumi_gcp as gcp
146
+
147
+ my_key_handles = gcp.kms.get_key_handles(project="resource-project-id",
148
+ location="us-central1",
149
+ resource_type_selector="storage.googleapis.com/Bucket")
150
+ ```
151
+
152
+
153
+ :param str location: The Google Cloud Platform location for the KeyHandle.
154
+ A full list of valid locations can be found by running `gcloud kms locations list`.
155
+ :param str project: The project in which the resource belongs. If it
156
+ is not provided, the provider project is used.
157
+ :param str resource_type_selector: The resource type by which to filter KeyHandle e.g. {SERVICE}.googleapis.com/{TYPE}. See documentation for supported resource types.
158
+
159
+ - - -
160
+ """
161
+ __args__ = dict()
162
+ __args__['location'] = location
163
+ __args__['project'] = project
164
+ __args__['resourceTypeSelector'] = resource_type_selector
165
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
166
+ __ret__ = pulumi.runtime.invoke_output('gcp:kms/getKeyHandles:getKeyHandles', __args__, opts=opts, typ=GetKeyHandlesResult)
167
+ return __ret__.apply(lambda __response__: GetKeyHandlesResult(
168
+ id=pulumi.get(__response__, 'id'),
169
+ key_handles=pulumi.get(__response__, 'key_handles'),
170
+ location=pulumi.get(__response__, 'location'),
171
+ project=pulumi.get(__response__, 'project'),
172
+ resource_type_selector=pulumi.get(__response__, 'resource_type_selector')))
pulumi_gcp/kms/outputs.py CHANGED
@@ -45,6 +45,7 @@ __all__ = [
45
45
  'GetKMSCryptoKeyPrimaryResult',
46
46
  'GetKMSCryptoKeyVersionPublicKeyResult',
47
47
  'GetKMSCryptoKeyVersionTemplateResult',
48
+ 'GetKeyHandlesKeyHandleResult',
48
49
  'GetKeyRingsKeyRingResult',
49
50
  ]
50
51
 
@@ -1554,6 +1555,50 @@ class GetKMSCryptoKeyVersionTemplateResult(dict):
1554
1555
  return pulumi.get(self, "protection_level")
1555
1556
 
1556
1557
 
1558
+ @pulumi.output_type
1559
+ class GetKeyHandlesKeyHandleResult(dict):
1560
+ def __init__(__self__, *,
1561
+ kms_key: str,
1562
+ name: str,
1563
+ resource_type_selector: str):
1564
+ """
1565
+ :param str kms_key: The identifier of the KMS Key created for the KeyHandle. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}/cryptoKeys/{cryptoKeyName}`.
1566
+ :param str name: The name of the KeyHandle. Its format is `projects/{projectId}/locations/{location}/keyHandles/{keyHandleName}`.
1567
+ :param str resource_type_selector: The resource type by which to filter KeyHandle e.g. {SERVICE}.googleapis.com/{TYPE}. See documentation for supported resource types.
1568
+
1569
+ - - -
1570
+ """
1571
+ pulumi.set(__self__, "kms_key", kms_key)
1572
+ pulumi.set(__self__, "name", name)
1573
+ pulumi.set(__self__, "resource_type_selector", resource_type_selector)
1574
+
1575
+ @property
1576
+ @pulumi.getter(name="kmsKey")
1577
+ def kms_key(self) -> str:
1578
+ """
1579
+ The identifier of the KMS Key created for the KeyHandle. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}/cryptoKeys/{cryptoKeyName}`.
1580
+ """
1581
+ return pulumi.get(self, "kms_key")
1582
+
1583
+ @property
1584
+ @pulumi.getter
1585
+ def name(self) -> str:
1586
+ """
1587
+ The name of the KeyHandle. Its format is `projects/{projectId}/locations/{location}/keyHandles/{keyHandleName}`.
1588
+ """
1589
+ return pulumi.get(self, "name")
1590
+
1591
+ @property
1592
+ @pulumi.getter(name="resourceTypeSelector")
1593
+ def resource_type_selector(self) -> str:
1594
+ """
1595
+ The resource type by which to filter KeyHandle e.g. {SERVICE}.googleapis.com/{TYPE}. See documentation for supported resource types.
1596
+
1597
+ - - -
1598
+ """
1599
+ return pulumi.get(self, "resource_type_selector")
1600
+
1601
+
1557
1602
  @pulumi.output_type
1558
1603
  class GetKeyRingsKeyRingResult(dict):
1559
1604
  def __init__(__self__, *,
@@ -1132,7 +1132,7 @@ class StoragePool(pulumi.CustomResource):
1132
1132
 
1133
1133
  @property
1134
1134
  @pulumi.getter
1135
- def zone(self) -> pulumi.Output[Optional[str]]:
1135
+ def zone(self) -> pulumi.Output[str]:
1136
1136
  """
1137
1137
  Specifies the active zone for regional Flex pools. `zone` and `replica_zone` values can be swapped to initiate a
1138
1138
  [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
@@ -669,15 +669,15 @@ class Spoke(pulumi.CustomResource):
669
669
  import pulumi_gcp as gcp
670
670
 
671
671
  network = gcp.compute.Network("network",
672
- name="tf-test-network_37559",
672
+ name="tf-test-network_91980",
673
673
  auto_create_subnetworks=False)
674
674
  subnetwork = gcp.compute.Subnetwork("subnetwork",
675
- name="tf-test-subnet_91980",
675
+ name="tf-test-subnet_37118",
676
676
  ip_cidr_range="10.0.0.0/28",
677
677
  region="us-central1",
678
678
  network=network.self_link)
679
679
  instance = gcp.compute.Instance("instance",
680
- name="tf-test-instance_37118",
680
+ name="tf-test-instance_80332",
681
681
  machine_type="e2-medium",
682
682
  can_ip_forward=True,
683
683
  zone="us-central1-a",
@@ -694,13 +694,13 @@ class Spoke(pulumi.CustomResource):
694
694
  }],
695
695
  }])
696
696
  basic_hub = gcp.networkconnectivity.Hub("basic_hub",
697
- name="tf-test-hub_80332",
697
+ name="tf-test-hub_13293",
698
698
  description="A sample hub",
699
699
  labels={
700
700
  "label-two": "value-one",
701
701
  })
702
702
  primary = gcp.networkconnectivity.Spoke("primary",
703
- name="tf-test-name_13293",
703
+ name="tf-test-name_40289",
704
704
  location="us-central1",
705
705
  description="A sample spoke with a linked routher appliance instance",
706
706
  labels={
@@ -932,8 +932,8 @@ class Spoke(pulumi.CustomResource):
932
932
  hub=star_hub.id,
933
933
  auto_accept={
934
934
  "auto_accept_projects": [
935
- "foo_40289",
936
- "bar_33395",
935
+ "foo_33395",
936
+ "bar_76044",
937
937
  ],
938
938
  })
939
939
  primary = gcp.networkconnectivity.Spoke("primary",
@@ -949,6 +949,37 @@ class Spoke(pulumi.CustomResource):
949
949
  "uri": network.self_link,
950
950
  })
951
951
  ```
952
+ ### Network Connectivity Spoke Linked Vpc Network Ipv6 Support
953
+
954
+ ```python
955
+ import pulumi
956
+ import pulumi_gcp as gcp
957
+
958
+ network = gcp.compute.Network("network",
959
+ name="net",
960
+ auto_create_subnetworks=False)
961
+ basic_hub = gcp.networkconnectivity.Hub("basic_hub",
962
+ name="hub1",
963
+ description="A sample hub",
964
+ labels={
965
+ "label-two": "value-one",
966
+ })
967
+ primary = gcp.networkconnectivity.Spoke("primary",
968
+ name="spoke1-ipv6",
969
+ location="global",
970
+ description="A sample spoke with a linked VPC that include export ranges of all IPv6",
971
+ labels={
972
+ "label-one": "value-one",
973
+ },
974
+ hub=basic_hub.id,
975
+ linked_vpc_network={
976
+ "include_export_ranges": [
977
+ "ALL_IPV6_RANGES",
978
+ "ALL_PRIVATE_IPV4_RANGES",
979
+ ],
980
+ "uri": network.self_link,
981
+ })
982
+ ```
952
983
 
953
984
  ## Import
954
985
 
@@ -1099,15 +1130,15 @@ class Spoke(pulumi.CustomResource):
1099
1130
  import pulumi_gcp as gcp
1100
1131
 
1101
1132
  network = gcp.compute.Network("network",
1102
- name="tf-test-network_37559",
1133
+ name="tf-test-network_91980",
1103
1134
  auto_create_subnetworks=False)
1104
1135
  subnetwork = gcp.compute.Subnetwork("subnetwork",
1105
- name="tf-test-subnet_91980",
1136
+ name="tf-test-subnet_37118",
1106
1137
  ip_cidr_range="10.0.0.0/28",
1107
1138
  region="us-central1",
1108
1139
  network=network.self_link)
1109
1140
  instance = gcp.compute.Instance("instance",
1110
- name="tf-test-instance_37118",
1141
+ name="tf-test-instance_80332",
1111
1142
  machine_type="e2-medium",
1112
1143
  can_ip_forward=True,
1113
1144
  zone="us-central1-a",
@@ -1124,13 +1155,13 @@ class Spoke(pulumi.CustomResource):
1124
1155
  }],
1125
1156
  }])
1126
1157
  basic_hub = gcp.networkconnectivity.Hub("basic_hub",
1127
- name="tf-test-hub_80332",
1158
+ name="tf-test-hub_13293",
1128
1159
  description="A sample hub",
1129
1160
  labels={
1130
1161
  "label-two": "value-one",
1131
1162
  })
1132
1163
  primary = gcp.networkconnectivity.Spoke("primary",
1133
- name="tf-test-name_13293",
1164
+ name="tf-test-name_40289",
1134
1165
  location="us-central1",
1135
1166
  description="A sample spoke with a linked routher appliance instance",
1136
1167
  labels={
@@ -1362,8 +1393,8 @@ class Spoke(pulumi.CustomResource):
1362
1393
  hub=star_hub.id,
1363
1394
  auto_accept={
1364
1395
  "auto_accept_projects": [
1365
- "foo_40289",
1366
- "bar_33395",
1396
+ "foo_33395",
1397
+ "bar_76044",
1367
1398
  ],
1368
1399
  })
1369
1400
  primary = gcp.networkconnectivity.Spoke("primary",
@@ -1379,6 +1410,37 @@ class Spoke(pulumi.CustomResource):
1379
1410
  "uri": network.self_link,
1380
1411
  })
1381
1412
  ```
1413
+ ### Network Connectivity Spoke Linked Vpc Network Ipv6 Support
1414
+
1415
+ ```python
1416
+ import pulumi
1417
+ import pulumi_gcp as gcp
1418
+
1419
+ network = gcp.compute.Network("network",
1420
+ name="net",
1421
+ auto_create_subnetworks=False)
1422
+ basic_hub = gcp.networkconnectivity.Hub("basic_hub",
1423
+ name="hub1",
1424
+ description="A sample hub",
1425
+ labels={
1426
+ "label-two": "value-one",
1427
+ })
1428
+ primary = gcp.networkconnectivity.Spoke("primary",
1429
+ name="spoke1-ipv6",
1430
+ location="global",
1431
+ description="A sample spoke with a linked VPC that include export ranges of all IPv6",
1432
+ labels={
1433
+ "label-one": "value-one",
1434
+ },
1435
+ hub=basic_hub.id,
1436
+ linked_vpc_network={
1437
+ "include_export_ranges": [
1438
+ "ALL_IPV6_RANGES",
1439
+ "ALL_PRIVATE_IPV4_RANGES",
1440
+ ],
1441
+ "uri": network.self_link,
1442
+ })
1443
+ ```
1382
1444
 
1383
1445
  ## Import
1384
1446