pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.0a1751903932__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 (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0a1751903932.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0a1751903932.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0a1751903932.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0a1751903932.dist-info}/top_level.txt +0 -0
@@ -315,7 +315,7 @@ class Policy(pulumi.CustomResource):
315
315
  import pulumi_gcp as gcp
316
316
 
317
317
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
318
- name="custom.disableGkeAutoUpgrade_10393",
318
+ name="custom.disableGkeAutoUpgrade_1443",
319
319
  parent="organizations/123456789",
320
320
  display_name="Disable GKE auto upgrade",
321
321
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
@@ -504,7 +504,7 @@ class Policy(pulumi.CustomResource):
504
504
  import pulumi_gcp as gcp
505
505
 
506
506
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
507
- name="custom.disableGkeAutoUpgrade_10393",
507
+ name="custom.disableGkeAutoUpgrade_1443",
508
508
  parent="organizations/123456789",
509
509
  display_name="Disable GKE auto upgrade",
510
510
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
pulumi_gcp/provider.py CHANGED
@@ -72,6 +72,7 @@ class ProviderArgs:
72
72
  colab_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
73
73
  composer_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
74
74
  compute_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
75
+ contact_center_insights_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
75
76
  container_analysis_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
76
77
  container_attached_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
77
78
  container_aws_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
@@ -319,6 +320,8 @@ class ProviderArgs:
319
320
  pulumi.set(__self__, "composer_custom_endpoint", composer_custom_endpoint)
320
321
  if compute_custom_endpoint is not None:
321
322
  pulumi.set(__self__, "compute_custom_endpoint", compute_custom_endpoint)
323
+ if contact_center_insights_custom_endpoint is not None:
324
+ pulumi.set(__self__, "contact_center_insights_custom_endpoint", contact_center_insights_custom_endpoint)
322
325
  if container_analysis_custom_endpoint is not None:
323
326
  pulumi.set(__self__, "container_analysis_custom_endpoint", container_analysis_custom_endpoint)
324
327
  if container_attached_custom_endpoint is not None:
@@ -1069,6 +1072,15 @@ class ProviderArgs:
1069
1072
  def compute_custom_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
1070
1073
  pulumi.set(self, "compute_custom_endpoint", value)
1071
1074
 
1075
+ @property
1076
+ @pulumi.getter(name="contactCenterInsightsCustomEndpoint")
1077
+ def contact_center_insights_custom_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
1078
+ return pulumi.get(self, "contact_center_insights_custom_endpoint")
1079
+
1080
+ @contact_center_insights_custom_endpoint.setter
1081
+ def contact_center_insights_custom_endpoint(self, value: Optional[pulumi.Input[builtins.str]]):
1082
+ pulumi.set(self, "contact_center_insights_custom_endpoint", value)
1083
+
1072
1084
  @property
1073
1085
  @pulumi.getter(name="containerAnalysisCustomEndpoint")
1074
1086
  def container_analysis_custom_endpoint(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -2405,6 +2417,7 @@ class Provider(pulumi.ProviderResource):
2405
2417
  colab_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2406
2418
  composer_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2407
2419
  compute_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2420
+ contact_center_insights_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2408
2421
  container_analysis_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2409
2422
  container_attached_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2410
2423
  container_aws_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
@@ -2635,6 +2648,7 @@ class Provider(pulumi.ProviderResource):
2635
2648
  colab_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2636
2649
  composer_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2637
2650
  compute_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2651
+ contact_center_insights_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2638
2652
  container_analysis_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2639
2653
  container_attached_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
2640
2654
  container_aws_custom_endpoint: Optional[pulumi.Input[builtins.str]] = None,
@@ -2837,6 +2851,7 @@ class Provider(pulumi.ProviderResource):
2837
2851
  __props__.__dict__["colab_custom_endpoint"] = colab_custom_endpoint
2838
2852
  __props__.__dict__["composer_custom_endpoint"] = composer_custom_endpoint
2839
2853
  __props__.__dict__["compute_custom_endpoint"] = compute_custom_endpoint
2854
+ __props__.__dict__["contact_center_insights_custom_endpoint"] = contact_center_insights_custom_endpoint
2840
2855
  __props__.__dict__["container_analysis_custom_endpoint"] = container_analysis_custom_endpoint
2841
2856
  __props__.__dict__["container_attached_custom_endpoint"] = container_attached_custom_endpoint
2842
2857
  __props__.__dict__["container_aws_custom_endpoint"] = container_aws_custom_endpoint
@@ -3238,6 +3253,11 @@ class Provider(pulumi.ProviderResource):
3238
3253
  def compute_custom_endpoint(self) -> pulumi.Output[Optional[builtins.str]]:
3239
3254
  return pulumi.get(self, "compute_custom_endpoint")
3240
3255
 
3256
+ @property
3257
+ @pulumi.getter(name="contactCenterInsightsCustomEndpoint")
3258
+ def contact_center_insights_custom_endpoint(self) -> pulumi.Output[Optional[builtins.str]]:
3259
+ return pulumi.get(self, "contact_center_insights_custom_endpoint")
3260
+
3241
3261
  @property
3242
3262
  @pulumi.getter(name="containerAnalysisCustomEndpoint")
3243
3263
  def container_analysis_custom_endpoint(self) -> pulumi.Output[Optional[builtins.str]]:
@@ -1156,7 +1156,7 @@ class Subscription(pulumi.CustomResource):
1156
1156
  cloud_storage_config={
1157
1157
  "bucket": example.name,
1158
1158
  "filename_prefix": "pre-",
1159
- "filename_suffix": "-_33052",
1159
+ "filename_suffix": "-_26032",
1160
1160
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1161
1161
  "max_bytes": 1000,
1162
1162
  "max_duration": "300s",
@@ -1189,7 +1189,7 @@ class Subscription(pulumi.CustomResource):
1189
1189
  cloud_storage_config={
1190
1190
  "bucket": example.name,
1191
1191
  "filename_prefix": "pre-",
1192
- "filename_suffix": "-_3684",
1192
+ "filename_suffix": "-_8647",
1193
1193
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1194
1194
  "max_bytes": 1000,
1195
1195
  "max_duration": "300s",
@@ -1228,7 +1228,7 @@ class Subscription(pulumi.CustomResource):
1228
1228
  cloud_storage_config={
1229
1229
  "bucket": example.name,
1230
1230
  "filename_prefix": "pre-",
1231
- "filename_suffix": "-_10719",
1231
+ "filename_suffix": "-_50610",
1232
1232
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1233
1233
  "max_bytes": 1000,
1234
1234
  "max_duration": "300s",
@@ -1599,7 +1599,7 @@ class Subscription(pulumi.CustomResource):
1599
1599
  cloud_storage_config={
1600
1600
  "bucket": example.name,
1601
1601
  "filename_prefix": "pre-",
1602
- "filename_suffix": "-_33052",
1602
+ "filename_suffix": "-_26032",
1603
1603
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1604
1604
  "max_bytes": 1000,
1605
1605
  "max_duration": "300s",
@@ -1632,7 +1632,7 @@ class Subscription(pulumi.CustomResource):
1632
1632
  cloud_storage_config={
1633
1633
  "bucket": example.name,
1634
1634
  "filename_prefix": "pre-",
1635
- "filename_suffix": "-_3684",
1635
+ "filename_suffix": "-_8647",
1636
1636
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1637
1637
  "max_bytes": 1000,
1638
1638
  "max_duration": "300s",
@@ -1671,7 +1671,7 @@ class Subscription(pulumi.CustomResource):
1671
1671
  cloud_storage_config={
1672
1672
  "bucket": example.name,
1673
1673
  "filename_prefix": "pre-",
1674
- "filename_suffix": "-_10719",
1674
+ "filename_suffix": "-_50610",
1675
1675
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1676
1676
  "max_bytes": 1000,
1677
1677
  "max_duration": "300s",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "gcp",
4
- "version": "8.36.0-alpha.1750484065"
4
+ "version": "8.37.0-alpha.1751903932"
5
5
  }
@@ -28,7 +28,7 @@ class GetInstanceResult:
28
28
  """
29
29
  A collection of values returned by getInstance.
30
30
  """
31
- def __init__(__self__, alternative_location_id=None, auth_enabled=None, auth_string=None, authorized_network=None, connect_mode=None, create_time=None, current_location_id=None, customer_managed_key=None, display_name=None, effective_labels=None, host=None, id=None, labels=None, location_id=None, maintenance_policies=None, maintenance_schedules=None, maintenance_version=None, memory_size_gb=None, name=None, nodes=None, persistence_configs=None, persistence_iam_identity=None, port=None, project=None, pulumi_labels=None, read_endpoint=None, read_endpoint_port=None, read_replicas_mode=None, redis_configs=None, redis_version=None, region=None, replica_count=None, reserved_ip_range=None, secondary_ip_range=None, server_ca_certs=None, tier=None, transit_encryption_mode=None):
31
+ def __init__(__self__, alternative_location_id=None, auth_enabled=None, auth_string=None, authorized_network=None, connect_mode=None, create_time=None, current_location_id=None, customer_managed_key=None, display_name=None, effective_labels=None, effective_reserved_ip_range=None, host=None, id=None, labels=None, location_id=None, maintenance_policies=None, maintenance_schedules=None, maintenance_version=None, memory_size_gb=None, name=None, nodes=None, persistence_configs=None, persistence_iam_identity=None, port=None, project=None, pulumi_labels=None, read_endpoint=None, read_endpoint_port=None, read_replicas_mode=None, redis_configs=None, redis_version=None, region=None, replica_count=None, reserved_ip_range=None, secondary_ip_range=None, server_ca_certs=None, tier=None, transit_encryption_mode=None):
32
32
  if alternative_location_id and not isinstance(alternative_location_id, str):
33
33
  raise TypeError("Expected argument 'alternative_location_id' to be a str")
34
34
  pulumi.set(__self__, "alternative_location_id", alternative_location_id)
@@ -59,6 +59,9 @@ class GetInstanceResult:
59
59
  if effective_labels and not isinstance(effective_labels, dict):
60
60
  raise TypeError("Expected argument 'effective_labels' to be a dict")
61
61
  pulumi.set(__self__, "effective_labels", effective_labels)
62
+ if effective_reserved_ip_range and not isinstance(effective_reserved_ip_range, str):
63
+ raise TypeError("Expected argument 'effective_reserved_ip_range' to be a str")
64
+ pulumi.set(__self__, "effective_reserved_ip_range", effective_reserved_ip_range)
62
65
  if host and not isinstance(host, str):
63
66
  raise TypeError("Expected argument 'host' to be a str")
64
67
  pulumi.set(__self__, "host", host)
@@ -191,6 +194,11 @@ class GetInstanceResult:
191
194
  def effective_labels(self) -> Mapping[str, builtins.str]:
192
195
  return pulumi.get(self, "effective_labels")
193
196
 
197
+ @property
198
+ @pulumi.getter(name="effectiveReservedIpRange")
199
+ def effective_reserved_ip_range(self) -> builtins.str:
200
+ return pulumi.get(self, "effective_reserved_ip_range")
201
+
194
202
  @property
195
203
  @pulumi.getter
196
204
  def host(self) -> builtins.str:
@@ -346,6 +354,7 @@ class AwaitableGetInstanceResult(GetInstanceResult):
346
354
  customer_managed_key=self.customer_managed_key,
347
355
  display_name=self.display_name,
348
356
  effective_labels=self.effective_labels,
357
+ effective_reserved_ip_range=self.effective_reserved_ip_range,
349
358
  host=self.host,
350
359
  id=self.id,
351
360
  labels=self.labels,
@@ -421,6 +430,7 @@ def get_instance(name: Optional[builtins.str] = None,
421
430
  customer_managed_key=pulumi.get(__ret__, 'customer_managed_key'),
422
431
  display_name=pulumi.get(__ret__, 'display_name'),
423
432
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
433
+ effective_reserved_ip_range=pulumi.get(__ret__, 'effective_reserved_ip_range'),
424
434
  host=pulumi.get(__ret__, 'host'),
425
435
  id=pulumi.get(__ret__, 'id'),
426
436
  labels=pulumi.get(__ret__, 'labels'),
@@ -493,6 +503,7 @@ def get_instance_output(name: Optional[pulumi.Input[builtins.str]] = None,
493
503
  customer_managed_key=pulumi.get(__response__, 'customer_managed_key'),
494
504
  display_name=pulumi.get(__response__, 'display_name'),
495
505
  effective_labels=pulumi.get(__response__, 'effective_labels'),
506
+ effective_reserved_ip_range=pulumi.get(__response__, 'effective_reserved_ip_range'),
496
507
  host=pulumi.get(__response__, 'host'),
497
508
  id=pulumi.get(__response__, 'id'),
498
509
  labels=pulumi.get(__response__, 'labels'),
@@ -505,6 +505,7 @@ class _InstanceState:
505
505
  customer_managed_key: Optional[pulumi.Input[builtins.str]] = None,
506
506
  display_name: Optional[pulumi.Input[builtins.str]] = None,
507
507
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
508
+ effective_reserved_ip_range: Optional[pulumi.Input[builtins.str]] = None,
508
509
  host: Optional[pulumi.Input[builtins.str]] = None,
509
510
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
510
511
  location_id: Optional[pulumi.Input[builtins.str]] = None,
@@ -558,6 +559,11 @@ class _InstanceState:
558
559
  instance. If this is provided, CMEK is enabled.
559
560
  :param pulumi.Input[builtins.str] display_name: An arbitrary and optional user-provided name for the instance.
560
561
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
562
+ :param pulumi.Input[builtins.str] effective_reserved_ip_range: The CIDR range of internal addresses that are reserved for this
563
+ instance. If not provided, the service will choose an unused /29
564
+ block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be
565
+ unique and non-overlapping with existing subnets in an authorized
566
+ network.
561
567
  :param pulumi.Input[builtins.str] host: Hostname or IP address of the exposed Redis endpoint used by clients
562
568
  to connect to the service.
563
569
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Resource labels to represent user provided metadata.
@@ -655,6 +661,8 @@ class _InstanceState:
655
661
  pulumi.set(__self__, "display_name", display_name)
656
662
  if effective_labels is not None:
657
663
  pulumi.set(__self__, "effective_labels", effective_labels)
664
+ if effective_reserved_ip_range is not None:
665
+ pulumi.set(__self__, "effective_reserved_ip_range", effective_reserved_ip_range)
658
666
  if host is not None:
659
667
  pulumi.set(__self__, "host", host)
660
668
  if labels is not None:
@@ -843,6 +851,22 @@ class _InstanceState:
843
851
  def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
844
852
  pulumi.set(self, "effective_labels", value)
845
853
 
854
+ @property
855
+ @pulumi.getter(name="effectiveReservedIpRange")
856
+ def effective_reserved_ip_range(self) -> Optional[pulumi.Input[builtins.str]]:
857
+ """
858
+ The CIDR range of internal addresses that are reserved for this
859
+ instance. If not provided, the service will choose an unused /29
860
+ block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be
861
+ unique and non-overlapping with existing subnets in an authorized
862
+ network.
863
+ """
864
+ return pulumi.get(self, "effective_reserved_ip_range")
865
+
866
+ @effective_reserved_ip_range.setter
867
+ def effective_reserved_ip_range(self, value: Optional[pulumi.Input[builtins.str]]):
868
+ pulumi.set(self, "effective_reserved_ip_range", value)
869
+
846
870
  @property
847
871
  @pulumi.getter
848
872
  def host(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -1825,6 +1849,7 @@ class Instance(pulumi.CustomResource):
1825
1849
  __props__.__dict__["create_time"] = None
1826
1850
  __props__.__dict__["current_location_id"] = None
1827
1851
  __props__.__dict__["effective_labels"] = None
1852
+ __props__.__dict__["effective_reserved_ip_range"] = None
1828
1853
  __props__.__dict__["host"] = None
1829
1854
  __props__.__dict__["maintenance_schedules"] = None
1830
1855
  __props__.__dict__["nodes"] = None
@@ -1856,6 +1881,7 @@ class Instance(pulumi.CustomResource):
1856
1881
  customer_managed_key: Optional[pulumi.Input[builtins.str]] = None,
1857
1882
  display_name: Optional[pulumi.Input[builtins.str]] = None,
1858
1883
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1884
+ effective_reserved_ip_range: Optional[pulumi.Input[builtins.str]] = None,
1859
1885
  host: Optional[pulumi.Input[builtins.str]] = None,
1860
1886
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1861
1887
  location_id: Optional[pulumi.Input[builtins.str]] = None,
@@ -1914,6 +1940,11 @@ class Instance(pulumi.CustomResource):
1914
1940
  instance. If this is provided, CMEK is enabled.
1915
1941
  :param pulumi.Input[builtins.str] display_name: An arbitrary and optional user-provided name for the instance.
1916
1942
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1943
+ :param pulumi.Input[builtins.str] effective_reserved_ip_range: The CIDR range of internal addresses that are reserved for this
1944
+ instance. If not provided, the service will choose an unused /29
1945
+ block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be
1946
+ unique and non-overlapping with existing subnets in an authorized
1947
+ network.
1917
1948
  :param pulumi.Input[builtins.str] host: Hostname or IP address of the exposed Redis endpoint used by clients
1918
1949
  to connect to the service.
1919
1950
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Resource labels to represent user provided metadata.
@@ -2005,6 +2036,7 @@ class Instance(pulumi.CustomResource):
2005
2036
  __props__.__dict__["customer_managed_key"] = customer_managed_key
2006
2037
  __props__.__dict__["display_name"] = display_name
2007
2038
  __props__.__dict__["effective_labels"] = effective_labels
2039
+ __props__.__dict__["effective_reserved_ip_range"] = effective_reserved_ip_range
2008
2040
  __props__.__dict__["host"] = host
2009
2041
  __props__.__dict__["labels"] = labels
2010
2042
  __props__.__dict__["location_id"] = location_id
@@ -2128,6 +2160,18 @@ class Instance(pulumi.CustomResource):
2128
2160
  """
2129
2161
  return pulumi.get(self, "effective_labels")
2130
2162
 
2163
+ @property
2164
+ @pulumi.getter(name="effectiveReservedIpRange")
2165
+ def effective_reserved_ip_range(self) -> pulumi.Output[builtins.str]:
2166
+ """
2167
+ The CIDR range of internal addresses that are reserved for this
2168
+ instance. If not provided, the service will choose an unused /29
2169
+ block, for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be
2170
+ unique and non-overlapping with existing subnets in an authorized
2171
+ network.
2172
+ """
2173
+ return pulumi.get(self, "effective_reserved_ip_range")
2174
+
2131
2175
  @property
2132
2176
  @pulumi.getter
2133
2177
  def host(self) -> pulumi.Output[builtins.str]:
@@ -28,7 +28,7 @@ class GetRegionalSecretResult:
28
28
  """
29
29
  A collection of values returned by getRegionalSecret.
30
30
  """
31
- def __init__(__self__, annotations=None, create_time=None, customer_managed_encryptions=None, effective_annotations=None, effective_labels=None, expire_time=None, id=None, labels=None, location=None, name=None, project=None, pulumi_labels=None, rotations=None, secret_id=None, topics=None, ttl=None, version_aliases=None, version_destroy_ttl=None):
31
+ def __init__(__self__, annotations=None, create_time=None, customer_managed_encryptions=None, deletion_protection=None, effective_annotations=None, effective_labels=None, expire_time=None, id=None, labels=None, location=None, name=None, project=None, pulumi_labels=None, rotations=None, secret_id=None, topics=None, ttl=None, version_aliases=None, version_destroy_ttl=None):
32
32
  if annotations and not isinstance(annotations, dict):
33
33
  raise TypeError("Expected argument 'annotations' to be a dict")
34
34
  pulumi.set(__self__, "annotations", annotations)
@@ -38,6 +38,9 @@ class GetRegionalSecretResult:
38
38
  if customer_managed_encryptions and not isinstance(customer_managed_encryptions, list):
39
39
  raise TypeError("Expected argument 'customer_managed_encryptions' to be a list")
40
40
  pulumi.set(__self__, "customer_managed_encryptions", customer_managed_encryptions)
41
+ if deletion_protection and not isinstance(deletion_protection, bool):
42
+ raise TypeError("Expected argument 'deletion_protection' to be a bool")
43
+ pulumi.set(__self__, "deletion_protection", deletion_protection)
41
44
  if effective_annotations and not isinstance(effective_annotations, dict):
42
45
  raise TypeError("Expected argument 'effective_annotations' to be a dict")
43
46
  pulumi.set(__self__, "effective_annotations", effective_annotations)
@@ -99,6 +102,11 @@ class GetRegionalSecretResult:
99
102
  def customer_managed_encryptions(self) -> Sequence['outputs.GetRegionalSecretCustomerManagedEncryptionResult']:
100
103
  return pulumi.get(self, "customer_managed_encryptions")
101
104
 
105
+ @property
106
+ @pulumi.getter(name="deletionProtection")
107
+ def deletion_protection(self) -> builtins.bool:
108
+ return pulumi.get(self, "deletion_protection")
109
+
102
110
  @property
103
111
  @pulumi.getter(name="effectiveAnnotations")
104
112
  def effective_annotations(self) -> Mapping[str, builtins.str]:
@@ -187,6 +195,7 @@ class AwaitableGetRegionalSecretResult(GetRegionalSecretResult):
187
195
  annotations=self.annotations,
188
196
  create_time=self.create_time,
189
197
  customer_managed_encryptions=self.customer_managed_encryptions,
198
+ deletion_protection=self.deletion_protection,
190
199
  effective_annotations=self.effective_annotations,
191
200
  effective_labels=self.effective_labels,
192
201
  expire_time=self.expire_time,
@@ -237,6 +246,7 @@ def get_regional_secret(location: Optional[builtins.str] = None,
237
246
  annotations=pulumi.get(__ret__, 'annotations'),
238
247
  create_time=pulumi.get(__ret__, 'create_time'),
239
248
  customer_managed_encryptions=pulumi.get(__ret__, 'customer_managed_encryptions'),
249
+ deletion_protection=pulumi.get(__ret__, 'deletion_protection'),
240
250
  effective_annotations=pulumi.get(__ret__, 'effective_annotations'),
241
251
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
242
252
  expire_time=pulumi.get(__ret__, 'expire_time'),
@@ -284,6 +294,7 @@ def get_regional_secret_output(location: Optional[pulumi.Input[builtins.str]] =
284
294
  annotations=pulumi.get(__response__, 'annotations'),
285
295
  create_time=pulumi.get(__response__, 'create_time'),
286
296
  customer_managed_encryptions=pulumi.get(__response__, 'customer_managed_encryptions'),
297
+ deletion_protection=pulumi.get(__response__, 'deletion_protection'),
287
298
  effective_annotations=pulumi.get(__response__, 'effective_annotations'),
288
299
  effective_labels=pulumi.get(__response__, 'effective_labels'),
289
300
  expire_time=pulumi.get(__response__, 'expire_time'),
@@ -781,6 +781,7 @@ class GetRegionalSecretsSecretResult(dict):
781
781
  annotations: Mapping[str, builtins.str],
782
782
  create_time: builtins.str,
783
783
  customer_managed_encryptions: Sequence['outputs.GetRegionalSecretsSecretCustomerManagedEncryptionResult'],
784
+ deletion_protection: builtins.bool,
784
785
  effective_annotations: Mapping[str, builtins.str],
785
786
  effective_labels: Mapping[str, builtins.str],
786
787
  expire_time: builtins.str,
@@ -820,6 +821,7 @@ class GetRegionalSecretsSecretResult(dict):
820
821
  pulumi.set(__self__, "annotations", annotations)
821
822
  pulumi.set(__self__, "create_time", create_time)
822
823
  pulumi.set(__self__, "customer_managed_encryptions", customer_managed_encryptions)
824
+ pulumi.set(__self__, "deletion_protection", deletion_protection)
823
825
  pulumi.set(__self__, "effective_annotations", effective_annotations)
824
826
  pulumi.set(__self__, "effective_labels", effective_labels)
825
827
  pulumi.set(__self__, "expire_time", expire_time)
@@ -860,6 +862,11 @@ class GetRegionalSecretsSecretResult(dict):
860
862
  """
861
863
  return pulumi.get(self, "customer_managed_encryptions")
862
864
 
865
+ @property
866
+ @pulumi.getter(name="deletionProtection")
867
+ def deletion_protection(self) -> builtins.bool:
868
+ return pulumi.get(self, "deletion_protection")
869
+
863
870
  @property
864
871
  @pulumi.getter(name="effectiveAnnotations")
865
872
  def effective_annotations(self) -> Mapping[str, builtins.str]:
@@ -26,6 +26,7 @@ class RegionalSecretArgs:
26
26
  secret_id: pulumi.Input[builtins.str],
27
27
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
28
28
  customer_managed_encryption: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']] = None,
29
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
29
30
  expire_time: Optional[pulumi.Input[builtins.str]] = None,
30
31
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
31
32
  project: Optional[pulumi.Input[builtins.str]] = None,
@@ -101,6 +102,8 @@ class RegionalSecretArgs:
101
102
  pulumi.set(__self__, "annotations", annotations)
102
103
  if customer_managed_encryption is not None:
103
104
  pulumi.set(__self__, "customer_managed_encryption", customer_managed_encryption)
105
+ if deletion_protection is not None:
106
+ pulumi.set(__self__, "deletion_protection", deletion_protection)
104
107
  if expire_time is not None:
105
108
  pulumi.set(__self__, "expire_time", expire_time)
106
109
  if labels is not None:
@@ -182,6 +185,15 @@ class RegionalSecretArgs:
182
185
  def customer_managed_encryption(self, value: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]):
183
186
  pulumi.set(self, "customer_managed_encryption", value)
184
187
 
188
+ @property
189
+ @pulumi.getter(name="deletionProtection")
190
+ def deletion_protection(self) -> Optional[pulumi.Input[builtins.bool]]:
191
+ return pulumi.get(self, "deletion_protection")
192
+
193
+ @deletion_protection.setter
194
+ def deletion_protection(self, value: Optional[pulumi.Input[builtins.bool]]):
195
+ pulumi.set(self, "deletion_protection", value)
196
+
185
197
  @property
186
198
  @pulumi.getter(name="expireTime")
187
199
  def expire_time(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -315,6 +327,7 @@ class _RegionalSecretState:
315
327
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
316
328
  create_time: Optional[pulumi.Input[builtins.str]] = None,
317
329
  customer_managed_encryption: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']] = None,
330
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
318
331
  effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
319
332
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
320
333
  expire_time: Optional[pulumi.Input[builtins.str]] = None,
@@ -402,6 +415,8 @@ class _RegionalSecretState:
402
415
  pulumi.set(__self__, "create_time", create_time)
403
416
  if customer_managed_encryption is not None:
404
417
  pulumi.set(__self__, "customer_managed_encryption", customer_managed_encryption)
418
+ if deletion_protection is not None:
419
+ pulumi.set(__self__, "deletion_protection", deletion_protection)
405
420
  if effective_annotations is not None:
406
421
  pulumi.set(__self__, "effective_annotations", effective_annotations)
407
422
  if effective_labels is not None:
@@ -480,6 +495,15 @@ class _RegionalSecretState:
480
495
  def customer_managed_encryption(self, value: Optional[pulumi.Input['RegionalSecretCustomerManagedEncryptionArgs']]):
481
496
  pulumi.set(self, "customer_managed_encryption", value)
482
497
 
498
+ @property
499
+ @pulumi.getter(name="deletionProtection")
500
+ def deletion_protection(self) -> Optional[pulumi.Input[builtins.bool]]:
501
+ return pulumi.get(self, "deletion_protection")
502
+
503
+ @deletion_protection.setter
504
+ def deletion_protection(self, value: Optional[pulumi.Input[builtins.bool]]):
505
+ pulumi.set(self, "deletion_protection", value)
506
+
483
507
  @property
484
508
  @pulumi.getter(name="effectiveAnnotations")
485
509
  def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
@@ -689,6 +713,7 @@ class RegionalSecret(pulumi.CustomResource):
689
713
  opts: Optional[pulumi.ResourceOptions] = None,
690
714
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
691
715
  customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
716
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
692
717
  expire_time: Optional[pulumi.Input[builtins.str]] = None,
693
718
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
694
719
  location: Optional[pulumi.Input[builtins.str]] = None,
@@ -727,7 +752,8 @@ class RegionalSecret(pulumi.CustomResource):
727
752
  "key1": "value1",
728
753
  "key2": "value2",
729
754
  "key3": "value3",
730
- })
755
+ },
756
+ deletion_protection=False)
731
757
  ```
732
758
  ### Regional Secret With Cmek
733
759
 
@@ -948,7 +974,8 @@ class RegionalSecret(pulumi.CustomResource):
948
974
  "key1": "value1",
949
975
  "key2": "value2",
950
976
  "key3": "value3",
951
- })
977
+ },
978
+ deletion_protection=False)
952
979
  ```
953
980
  ### Regional Secret With Cmek
954
981
 
@@ -1092,6 +1119,7 @@ class RegionalSecret(pulumi.CustomResource):
1092
1119
  opts: Optional[pulumi.ResourceOptions] = None,
1093
1120
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1094
1121
  customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
1122
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
1095
1123
  expire_time: Optional[pulumi.Input[builtins.str]] = None,
1096
1124
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1097
1125
  location: Optional[pulumi.Input[builtins.str]] = None,
@@ -1113,6 +1141,7 @@ class RegionalSecret(pulumi.CustomResource):
1113
1141
 
1114
1142
  __props__.__dict__["annotations"] = annotations
1115
1143
  __props__.__dict__["customer_managed_encryption"] = customer_managed_encryption
1144
+ __props__.__dict__["deletion_protection"] = deletion_protection
1116
1145
  __props__.__dict__["expire_time"] = expire_time
1117
1146
  __props__.__dict__["labels"] = labels
1118
1147
  if location is None and not opts.urn:
@@ -1147,6 +1176,7 @@ class RegionalSecret(pulumi.CustomResource):
1147
1176
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1148
1177
  create_time: Optional[pulumi.Input[builtins.str]] = None,
1149
1178
  customer_managed_encryption: Optional[pulumi.Input[Union['RegionalSecretCustomerManagedEncryptionArgs', 'RegionalSecretCustomerManagedEncryptionArgsDict']]] = None,
1179
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
1150
1180
  effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1151
1181
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1152
1182
  expire_time: Optional[pulumi.Input[builtins.str]] = None,
@@ -1240,6 +1270,7 @@ class RegionalSecret(pulumi.CustomResource):
1240
1270
  __props__.__dict__["annotations"] = annotations
1241
1271
  __props__.__dict__["create_time"] = create_time
1242
1272
  __props__.__dict__["customer_managed_encryption"] = customer_managed_encryption
1273
+ __props__.__dict__["deletion_protection"] = deletion_protection
1243
1274
  __props__.__dict__["effective_annotations"] = effective_annotations
1244
1275
  __props__.__dict__["effective_labels"] = effective_labels
1245
1276
  __props__.__dict__["expire_time"] = expire_time
@@ -1293,6 +1324,11 @@ class RegionalSecret(pulumi.CustomResource):
1293
1324
  """
1294
1325
  return pulumi.get(self, "customer_managed_encryption")
1295
1326
 
1327
+ @property
1328
+ @pulumi.getter(name="deletionProtection")
1329
+ def deletion_protection(self) -> pulumi.Output[Optional[builtins.bool]]:
1330
+ return pulumi.get(self, "deletion_protection")
1331
+
1296
1332
  @property
1297
1333
  @pulumi.getter(name="effectiveAnnotations")
1298
1334
  def effective_annotations(self) -> pulumi.Output[Mapping[str, builtins.str]]:
@@ -71,6 +71,11 @@ if not MYPY:
71
71
  The resource name of the Cloud KMS key to use for encryption.
72
72
  Format: 'projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}'
73
73
  """
74
+ kms_key_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
75
+ """
76
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
77
+ in the same locations as the Spanner Database.
78
+ """
74
79
  elif False:
75
80
  BackupScheduleEncryptionConfigArgsDict: TypeAlias = Mapping[str, Any]
76
81
 
@@ -78,7 +83,8 @@ elif False:
78
83
  class BackupScheduleEncryptionConfigArgs:
79
84
  def __init__(__self__, *,
80
85
  encryption_type: pulumi.Input[builtins.str],
81
- kms_key_name: Optional[pulumi.Input[builtins.str]] = None):
86
+ kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
87
+ kms_key_names: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
82
88
  """
83
89
  :param pulumi.Input[builtins.str] encryption_type: The encryption type of backups created by the backup schedule.
84
90
  Possible values are USE_DATABASE_ENCRYPTION, GOOGLE_DEFAULT_ENCRYPTION, or CUSTOMER_MANAGED_ENCRYPTION.
@@ -87,10 +93,14 @@ class BackupScheduleEncryptionConfigArgs:
87
93
  Possible values are: `USE_DATABASE_ENCRYPTION`, `GOOGLE_DEFAULT_ENCRYPTION`, `CUSTOMER_MANAGED_ENCRYPTION`.
88
94
  :param pulumi.Input[builtins.str] kms_key_name: The resource name of the Cloud KMS key to use for encryption.
89
95
  Format: 'projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}'
96
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] kms_key_names: Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
97
+ in the same locations as the Spanner Database.
90
98
  """
91
99
  pulumi.set(__self__, "encryption_type", encryption_type)
92
100
  if kms_key_name is not None:
93
101
  pulumi.set(__self__, "kms_key_name", kms_key_name)
102
+ if kms_key_names is not None:
103
+ pulumi.set(__self__, "kms_key_names", kms_key_names)
94
104
 
95
105
  @property
96
106
  @pulumi.getter(name="encryptionType")
@@ -121,6 +131,19 @@ class BackupScheduleEncryptionConfigArgs:
121
131
  def kms_key_name(self, value: Optional[pulumi.Input[builtins.str]]):
122
132
  pulumi.set(self, "kms_key_name", value)
123
133
 
134
+ @property
135
+ @pulumi.getter(name="kmsKeyNames")
136
+ def kms_key_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
137
+ """
138
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
139
+ in the same locations as the Spanner Database.
140
+ """
141
+ return pulumi.get(self, "kms_key_names")
142
+
143
+ @kms_key_names.setter
144
+ def kms_key_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
145
+ pulumi.set(self, "kms_key_names", value)
146
+
124
147
 
125
148
  if not MYPY:
126
149
  class BackupScheduleFullBackupSpecArgsDict(TypedDict):
@@ -54,6 +54,8 @@ class BackupScheduleEncryptionConfig(dict):
54
54
  suggest = "encryption_type"
55
55
  elif key == "kmsKeyName":
56
56
  suggest = "kms_key_name"
57
+ elif key == "kmsKeyNames":
58
+ suggest = "kms_key_names"
57
59
 
58
60
  if suggest:
59
61
  pulumi.log.warn(f"Key '{key}' not found in BackupScheduleEncryptionConfig. Access the value via the '{suggest}' property getter instead.")
@@ -68,7 +70,8 @@ class BackupScheduleEncryptionConfig(dict):
68
70
 
69
71
  def __init__(__self__, *,
70
72
  encryption_type: builtins.str,
71
- kms_key_name: Optional[builtins.str] = None):
73
+ kms_key_name: Optional[builtins.str] = None,
74
+ kms_key_names: Optional[Sequence[builtins.str]] = None):
72
75
  """
73
76
  :param builtins.str encryption_type: The encryption type of backups created by the backup schedule.
74
77
  Possible values are USE_DATABASE_ENCRYPTION, GOOGLE_DEFAULT_ENCRYPTION, or CUSTOMER_MANAGED_ENCRYPTION.
@@ -77,10 +80,14 @@ class BackupScheduleEncryptionConfig(dict):
77
80
  Possible values are: `USE_DATABASE_ENCRYPTION`, `GOOGLE_DEFAULT_ENCRYPTION`, `CUSTOMER_MANAGED_ENCRYPTION`.
78
81
  :param builtins.str kms_key_name: The resource name of the Cloud KMS key to use for encryption.
79
82
  Format: 'projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}'
83
+ :param Sequence[builtins.str] kms_key_names: Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
84
+ in the same locations as the Spanner Database.
80
85
  """
81
86
  pulumi.set(__self__, "encryption_type", encryption_type)
82
87
  if kms_key_name is not None:
83
88
  pulumi.set(__self__, "kms_key_name", kms_key_name)
89
+ if kms_key_names is not None:
90
+ pulumi.set(__self__, "kms_key_names", kms_key_names)
84
91
 
85
92
  @property
86
93
  @pulumi.getter(name="encryptionType")
@@ -103,6 +110,15 @@ class BackupScheduleEncryptionConfig(dict):
103
110
  """
104
111
  return pulumi.get(self, "kms_key_name")
105
112
 
113
+ @property
114
+ @pulumi.getter(name="kmsKeyNames")
115
+ def kms_key_names(self) -> Optional[Sequence[builtins.str]]:
116
+ """
117
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
118
+ in the same locations as the Spanner Database.
119
+ """
120
+ return pulumi.get(self, "kms_key_names")
121
+
106
122
 
107
123
  @pulumi.output_type
108
124
  class BackupScheduleFullBackupSpec(dict):