pulumi-gcp 8.24.0a1743177741__py3-none-any.whl → 8.25.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. pulumi_gcp/__init__.py +104 -0
  2. pulumi_gcp/_inputs.py +48 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +324 -12
  4. pulumi_gcp/accesscontextmanager/outputs.py +204 -12
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/apigee/__init__.py +1 -0
  7. pulumi_gcp/apigee/_inputs.py +58 -0
  8. pulumi_gcp/apigee/dns_zone.py +491 -0
  9. pulumi_gcp/apigee/outputs.py +53 -0
  10. pulumi_gcp/bigquery/reservation_assignment.py +7 -7
  11. pulumi_gcp/bigtable/table.py +8 -8
  12. pulumi_gcp/chronicle/data_access_label.py +2 -2
  13. pulumi_gcp/chronicle/data_access_scope.py +16 -0
  14. pulumi_gcp/chronicle/reference_list.py +16 -0
  15. pulumi_gcp/chronicle/retrohunt.py +16 -0
  16. pulumi_gcp/chronicle/rule.py +16 -0
  17. pulumi_gcp/chronicle/rule_deployment.py +16 -0
  18. pulumi_gcp/chronicle/watchlist.py +16 -0
  19. pulumi_gcp/cloudfunctionsv2/_inputs.py +20 -0
  20. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  21. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  22. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  23. pulumi_gcp/compute/__init__.py +1 -0
  24. pulumi_gcp/compute/_inputs.py +2011 -43
  25. pulumi_gcp/compute/backend_service.py +121 -3
  26. pulumi_gcp/compute/get_backend_service.py +15 -4
  27. pulumi_gcp/compute/get_instance.py +12 -1
  28. pulumi_gcp/compute/get_region_backend_service.py +482 -0
  29. pulumi_gcp/compute/get_router.py +12 -1
  30. pulumi_gcp/compute/get_subnetwork.py +43 -1
  31. pulumi_gcp/compute/instance.py +47 -0
  32. pulumi_gcp/compute/instance_from_machine_image.py +94 -0
  33. pulumi_gcp/compute/instance_from_template.py +47 -0
  34. pulumi_gcp/compute/outputs.py +3578 -139
  35. pulumi_gcp/compute/public_delegated_prefix.py +69 -15
  36. pulumi_gcp/compute/router.py +54 -0
  37. pulumi_gcp/compute/subnetwork.py +35 -5
  38. pulumi_gcp/config/__init__.pyi +2 -0
  39. pulumi_gcp/config/outputs.py +27 -0
  40. pulumi_gcp/config/vars.py +4 -0
  41. pulumi_gcp/container/_inputs.py +12 -12
  42. pulumi_gcp/container/cluster.py +47 -0
  43. pulumi_gcp/container/get_cluster.py +12 -1
  44. pulumi_gcp/container/get_registry_image.py +4 -0
  45. pulumi_gcp/container/get_registry_repository.py +4 -0
  46. pulumi_gcp/container/outputs.py +8 -8
  47. pulumi_gcp/container/registry.py +4 -0
  48. pulumi_gcp/datafusion/instance.py +68 -0
  49. pulumi_gcp/dataproc/__init__.py +8 -0
  50. pulumi_gcp/dataproc/_inputs.py +196 -0
  51. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +193 -0
  52. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +210 -0
  53. pulumi_gcp/dataproc/metastore_database_iam_binding.py +848 -0
  54. pulumi_gcp/dataproc/metastore_database_iam_member.py +848 -0
  55. pulumi_gcp/dataproc/metastore_database_iam_policy.py +687 -0
  56. pulumi_gcp/dataproc/metastore_federation.py +38 -2
  57. pulumi_gcp/dataproc/metastore_table_iam_binding.py +895 -0
  58. pulumi_gcp/dataproc/metastore_table_iam_member.py +895 -0
  59. pulumi_gcp/dataproc/metastore_table_iam_policy.py +734 -0
  60. pulumi_gcp/dataproc/outputs.py +112 -0
  61. pulumi_gcp/datastream/_inputs.py +311 -94
  62. pulumi_gcp/datastream/connection_profile.py +40 -0
  63. pulumi_gcp/datastream/outputs.py +244 -51
  64. pulumi_gcp/datastream/stream.py +216 -0
  65. pulumi_gcp/discoveryengine/__init__.py +1 -0
  66. pulumi_gcp/discoveryengine/sitemap.py +504 -0
  67. pulumi_gcp/eventarc/__init__.py +1 -0
  68. pulumi_gcp/eventarc/enrollment.py +980 -0
  69. pulumi_gcp/firebase/__init__.py +1 -0
  70. pulumi_gcp/firebase/_inputs.py +484 -0
  71. pulumi_gcp/firebase/app_hosting_build.py +1232 -0
  72. pulumi_gcp/firebase/outputs.py +333 -0
  73. pulumi_gcp/identityplatform/_inputs.py +91 -0
  74. pulumi_gcp/identityplatform/outputs.py +73 -0
  75. pulumi_gcp/identityplatform/tenant.py +56 -0
  76. pulumi_gcp/managedkafka/cluster.py +2 -2
  77. pulumi_gcp/memorystore/__init__.py +1 -0
  78. pulumi_gcp/memorystore/_inputs.py +826 -0
  79. pulumi_gcp/memorystore/get_instance.py +23 -1
  80. pulumi_gcp/memorystore/instance.py +344 -23
  81. pulumi_gcp/memorystore/instance_desired_user_created_endpoints.py +843 -0
  82. pulumi_gcp/memorystore/outputs.py +889 -8
  83. pulumi_gcp/networksecurity/_inputs.py +473 -0
  84. pulumi_gcp/networksecurity/mirroring_deployment_group.py +44 -16
  85. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +94 -36
  86. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +53 -8
  87. pulumi_gcp/networksecurity/outputs.py +291 -1
  88. pulumi_gcp/networksecurity/security_profile.py +8 -0
  89. pulumi_gcp/organizations/__init__.py +1 -0
  90. pulumi_gcp/organizations/get_iam_custom_roles.py +164 -0
  91. pulumi_gcp/organizations/outputs.py +96 -0
  92. pulumi_gcp/parametermanager/get_parameter.py +16 -1
  93. pulumi_gcp/parametermanager/get_parameter_version.py +19 -1
  94. pulumi_gcp/parametermanager/get_parameter_version_render.py +4 -0
  95. pulumi_gcp/parametermanager/get_parameters.py +4 -0
  96. pulumi_gcp/parametermanager/get_regional_parameter.py +4 -0
  97. pulumi_gcp/parametermanager/get_regional_parameter_version.py +4 -0
  98. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +8 -0
  99. pulumi_gcp/parametermanager/get_regional_parameters.py +4 -0
  100. pulumi_gcp/parametermanager/outputs.py +11 -0
  101. pulumi_gcp/parametermanager/parameter.py +88 -0
  102. pulumi_gcp/parametermanager/parameter_version.py +74 -0
  103. pulumi_gcp/parametermanager/regional_parameter.py +12 -0
  104. pulumi_gcp/parametermanager/regional_parameter_version.py +12 -0
  105. pulumi_gcp/provider.py +15 -0
  106. pulumi_gcp/pulumi-plugin.json +1 -1
  107. pulumi_gcp/redis/_inputs.py +136 -0
  108. pulumi_gcp/redis/cluster.py +54 -0
  109. pulumi_gcp/redis/outputs.py +114 -0
  110. pulumi_gcp/secretmanager/regional_secret_version.py +0 -16
  111. pulumi_gcp/storage/__init__.py +4 -0
  112. pulumi_gcp/storage/_inputs.py +596 -0
  113. pulumi_gcp/storage/bucket.py +7 -7
  114. pulumi_gcp/storage/control_folder_intelligence_config.py +420 -0
  115. pulumi_gcp/storage/control_organization_intelligence_config.py +420 -0
  116. pulumi_gcp/storage/control_project_intelligence_config.py +49 -7
  117. pulumi_gcp/storage/get_bucket_object_content.py +16 -1
  118. pulumi_gcp/storage/get_control_folder_intelligence_config.py +160 -0
  119. pulumi_gcp/storage/get_control_organization_intelligence_config.py +160 -0
  120. pulumi_gcp/storage/get_control_project_intelligence_config.py +32 -2
  121. pulumi_gcp/storage/outputs.py +2132 -1312
  122. pulumi_gcp/workbench/instance.py +14 -2
  123. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/METADATA +1 -1
  124. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/RECORD +126 -107
  125. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/WHEEL +0 -0
  126. {pulumi_gcp-8.24.0a1743177741.dist-info → pulumi_gcp-8.25.0.dist-info}/top_level.txt +0 -0
@@ -21,12 +21,13 @@ __all__ = ['InstanceArgs', 'Instance']
21
21
  @pulumi.input_type
22
22
  class InstanceArgs:
23
23
  def __init__(__self__, *,
24
- desired_psc_auto_connections: pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]],
25
24
  instance_id: pulumi.Input[str],
26
25
  location: pulumi.Input[str],
27
26
  shard_count: pulumi.Input[int],
28
27
  authorization_mode: Optional[pulumi.Input[str]] = None,
28
+ cross_instance_replication_config: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']] = None,
29
29
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
30
+ desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]] = None,
30
31
  engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
31
32
  engine_version: Optional[pulumi.Input[str]] = None,
32
33
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -40,7 +41,6 @@ class InstanceArgs:
40
41
  zone_distribution_config: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']] = None):
41
42
  """
42
43
  The set of arguments for constructing a Instance resource.
43
- :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
44
44
  :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
45
45
  the instance's resource name.
46
46
  This value is subject to the following restrictions:
@@ -57,7 +57,10 @@ class InstanceArgs:
57
57
  :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
58
58
  AUTH_DISABLED
59
59
  IAM_AUTH
60
+ :param pulumi.Input['InstanceCrossInstanceReplicationConfigArgs'] cross_instance_replication_config: Cross instance replication config
61
+ Structure is documented below.
60
62
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
63
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Immutable. User inputs for the auto-created PSC connections.
61
64
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
62
65
  :param pulumi.Input[str] engine_version: Optional. Engine version of the instance.
63
66
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
@@ -88,14 +91,17 @@ class InstanceArgs:
88
91
  :param pulumi.Input['InstanceZoneDistributionConfigArgs'] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
89
92
  Structure is documented below.
90
93
  """
91
- pulumi.set(__self__, "desired_psc_auto_connections", desired_psc_auto_connections)
92
94
  pulumi.set(__self__, "instance_id", instance_id)
93
95
  pulumi.set(__self__, "location", location)
94
96
  pulumi.set(__self__, "shard_count", shard_count)
95
97
  if authorization_mode is not None:
96
98
  pulumi.set(__self__, "authorization_mode", authorization_mode)
99
+ if cross_instance_replication_config is not None:
100
+ pulumi.set(__self__, "cross_instance_replication_config", cross_instance_replication_config)
97
101
  if deletion_protection_enabled is not None:
98
102
  pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled)
103
+ if desired_psc_auto_connections is not None:
104
+ pulumi.set(__self__, "desired_psc_auto_connections", desired_psc_auto_connections)
99
105
  if engine_configs is not None:
100
106
  pulumi.set(__self__, "engine_configs", engine_configs)
101
107
  if engine_version is not None:
@@ -119,18 +125,6 @@ class InstanceArgs:
119
125
  if zone_distribution_config is not None:
120
126
  pulumi.set(__self__, "zone_distribution_config", zone_distribution_config)
121
127
 
122
- @property
123
- @pulumi.getter(name="desiredPscAutoConnections")
124
- def desired_psc_auto_connections(self) -> pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]:
125
- """
126
- Required. Immutable. User inputs for the auto-created PSC connections.
127
- """
128
- return pulumi.get(self, "desired_psc_auto_connections")
129
-
130
- @desired_psc_auto_connections.setter
131
- def desired_psc_auto_connections(self, value: pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]):
132
- pulumi.set(self, "desired_psc_auto_connections", value)
133
-
134
128
  @property
135
129
  @pulumi.getter(name="instanceId")
136
130
  def instance_id(self) -> pulumi.Input[str]:
@@ -191,6 +185,19 @@ class InstanceArgs:
191
185
  def authorization_mode(self, value: Optional[pulumi.Input[str]]):
192
186
  pulumi.set(self, "authorization_mode", value)
193
187
 
188
+ @property
189
+ @pulumi.getter(name="crossInstanceReplicationConfig")
190
+ def cross_instance_replication_config(self) -> Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']]:
191
+ """
192
+ Cross instance replication config
193
+ Structure is documented below.
194
+ """
195
+ return pulumi.get(self, "cross_instance_replication_config")
196
+
197
+ @cross_instance_replication_config.setter
198
+ def cross_instance_replication_config(self, value: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']]):
199
+ pulumi.set(self, "cross_instance_replication_config", value)
200
+
194
201
  @property
195
202
  @pulumi.getter(name="deletionProtectionEnabled")
196
203
  def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -203,6 +210,18 @@ class InstanceArgs:
203
210
  def deletion_protection_enabled(self, value: Optional[pulumi.Input[bool]]):
204
211
  pulumi.set(self, "deletion_protection_enabled", value)
205
212
 
213
+ @property
214
+ @pulumi.getter(name="desiredPscAutoConnections")
215
+ def desired_psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]:
216
+ """
217
+ Immutable. User inputs for the auto-created PSC connections.
218
+ """
219
+ return pulumi.get(self, "desired_psc_auto_connections")
220
+
221
+ @desired_psc_auto_connections.setter
222
+ def desired_psc_auto_connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]):
223
+ pulumi.set(self, "desired_psc_auto_connections", value)
224
+
206
225
  @property
207
226
  @pulumi.getter(name="engineConfigs")
208
227
  def engine_configs(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -359,6 +378,7 @@ class _InstanceState:
359
378
  def __init__(__self__, *,
360
379
  authorization_mode: Optional[pulumi.Input[str]] = None,
361
380
  create_time: Optional[pulumi.Input[str]] = None,
381
+ cross_instance_replication_config: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']] = None,
362
382
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
363
383
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]] = None,
364
384
  discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]]] = None,
@@ -377,6 +397,7 @@ class _InstanceState:
377
397
  node_type: Optional[pulumi.Input[str]] = None,
378
398
  persistence_config: Optional[pulumi.Input['InstancePersistenceConfigArgs']] = None,
379
399
  project: Optional[pulumi.Input[str]] = None,
400
+ psc_attachment_details: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAttachmentDetailArgs']]]] = None,
380
401
  psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]] = None,
381
402
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
382
403
  replica_count: Optional[pulumi.Input[int]] = None,
@@ -393,8 +414,10 @@ class _InstanceState:
393
414
  AUTH_DISABLED
394
415
  IAM_AUTH
395
416
  :param pulumi.Input[str] create_time: Output only. Creation timestamp of the instance.
417
+ :param pulumi.Input['InstanceCrossInstanceReplicationConfigArgs'] cross_instance_replication_config: Cross instance replication config
418
+ Structure is documented below.
396
419
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
397
- :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
420
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Immutable. User inputs for the auto-created PSC connections.
398
421
  :param pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]] discovery_endpoints: Output only. Endpoints clients can connect to the instance through. Currently only one
399
422
  discovery endpoint is supported.
400
423
  Structure is documented below.
@@ -441,6 +464,8 @@ class _InstanceState:
441
464
  Structure is documented below.
442
465
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
443
466
  If it is not provided, the provider project is used.
467
+ :param pulumi.Input[Sequence[pulumi.Input['InstancePscAttachmentDetailArgs']]] psc_attachment_details: Configuration of a service attachment of the cluster, for creating PSC connections.
468
+ Structure is documented below.
444
469
  :param pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]] psc_auto_connections: Output only. User inputs and resource details of the auto-created PSC connections.
445
470
  Structure is documented below.
446
471
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -468,6 +493,8 @@ class _InstanceState:
468
493
  pulumi.set(__self__, "authorization_mode", authorization_mode)
469
494
  if create_time is not None:
470
495
  pulumi.set(__self__, "create_time", create_time)
496
+ if cross_instance_replication_config is not None:
497
+ pulumi.set(__self__, "cross_instance_replication_config", cross_instance_replication_config)
471
498
  if deletion_protection_enabled is not None:
472
499
  pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled)
473
500
  if desired_psc_auto_connections is not None:
@@ -504,6 +531,8 @@ class _InstanceState:
504
531
  pulumi.set(__self__, "persistence_config", persistence_config)
505
532
  if project is not None:
506
533
  pulumi.set(__self__, "project", project)
534
+ if psc_attachment_details is not None:
535
+ pulumi.set(__self__, "psc_attachment_details", psc_attachment_details)
507
536
  if psc_auto_connections is not None:
508
537
  pulumi.set(__self__, "psc_auto_connections", psc_auto_connections)
509
538
  if pulumi_labels is not None:
@@ -551,6 +580,19 @@ class _InstanceState:
551
580
  def create_time(self, value: Optional[pulumi.Input[str]]):
552
581
  pulumi.set(self, "create_time", value)
553
582
 
583
+ @property
584
+ @pulumi.getter(name="crossInstanceReplicationConfig")
585
+ def cross_instance_replication_config(self) -> Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']]:
586
+ """
587
+ Cross instance replication config
588
+ Structure is documented below.
589
+ """
590
+ return pulumi.get(self, "cross_instance_replication_config")
591
+
592
+ @cross_instance_replication_config.setter
593
+ def cross_instance_replication_config(self, value: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']]):
594
+ pulumi.set(self, "cross_instance_replication_config", value)
595
+
554
596
  @property
555
597
  @pulumi.getter(name="deletionProtectionEnabled")
556
598
  def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -567,7 +609,7 @@ class _InstanceState:
567
609
  @pulumi.getter(name="desiredPscAutoConnections")
568
610
  def desired_psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]:
569
611
  """
570
- Required. Immutable. User inputs for the auto-created PSC connections.
612
+ Immutable. User inputs for the auto-created PSC connections.
571
613
  """
572
614
  return pulumi.get(self, "desired_psc_auto_connections")
573
615
 
@@ -797,6 +839,19 @@ class _InstanceState:
797
839
  def project(self, value: Optional[pulumi.Input[str]]):
798
840
  pulumi.set(self, "project", value)
799
841
 
842
+ @property
843
+ @pulumi.getter(name="pscAttachmentDetails")
844
+ def psc_attachment_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAttachmentDetailArgs']]]]:
845
+ """
846
+ Configuration of a service attachment of the cluster, for creating PSC connections.
847
+ Structure is documented below.
848
+ """
849
+ return pulumi.get(self, "psc_attachment_details")
850
+
851
+ @psc_attachment_details.setter
852
+ def psc_attachment_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAttachmentDetailArgs']]]]):
853
+ pulumi.set(self, "psc_attachment_details", value)
854
+
800
855
  @property
801
856
  @pulumi.getter(name="pscAutoConnections")
802
857
  def psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]]:
@@ -936,6 +991,7 @@ class Instance(pulumi.CustomResource):
936
991
  resource_name: str,
937
992
  opts: Optional[pulumi.ResourceOptions] = None,
938
993
  authorization_mode: Optional[pulumi.Input[str]] = None,
994
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
939
995
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
940
996
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
941
997
  engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -956,6 +1012,12 @@ class Instance(pulumi.CustomResource):
956
1012
  """
957
1013
  A Google Cloud Memorystore instance.
958
1014
 
1015
+ To get more information about Instance, see:
1016
+
1017
+ * [API documentation](https://cloud.google.com/memorystore/docs/valkey/reference/rest/v1/projects.locations.instances)
1018
+ * How-to Guides
1019
+ * [Official Documentation](https://cloud.google.com/memorystore/docs/valkey/create-instances)
1020
+
959
1021
  ## Example Usage
960
1022
 
961
1023
  ### Memorystore Instance Basic
@@ -1114,6 +1176,118 @@ class Instance(pulumi.CustomResource):
1114
1176
  deletion_protection_enabled=False,
1115
1177
  opts = pulumi.ResourceOptions(depends_on=[default]))
1116
1178
  ```
1179
+ ### Memorystore Instance Secondary Instance
1180
+
1181
+ ```python
1182
+ import pulumi
1183
+ import pulumi_gcp as gcp
1184
+
1185
+ primary_producer_net = gcp.compute.Network("primary_producer_net",
1186
+ name="my-network-primary-instance",
1187
+ auto_create_subnetworks=False)
1188
+ primary_producer_subnet = gcp.compute.Subnetwork("primary_producer_subnet",
1189
+ name="my-subnet-primary-instance",
1190
+ ip_cidr_range="10.0.1.0/29",
1191
+ region="asia-east1",
1192
+ network=primary_producer_net.id)
1193
+ primary_policy = gcp.networkconnectivity.ServiceConnectionPolicy("primary_policy",
1194
+ name="my-policy-primary-instance",
1195
+ location="asia-east1",
1196
+ service_class="gcp-memorystore",
1197
+ description="my basic service connection policy",
1198
+ network=primary_producer_net.id,
1199
+ psc_config={
1200
+ "subnetworks": [primary_producer_subnet.id],
1201
+ })
1202
+ project = gcp.organizations.get_project()
1203
+ # Primary instance
1204
+ primary_instance = gcp.memorystore.Instance("primary_instance",
1205
+ instance_id="primary-instance",
1206
+ shard_count=1,
1207
+ desired_psc_auto_connections=[{
1208
+ "network": primary_producer_net.id,
1209
+ "project_id": project.project_id,
1210
+ }],
1211
+ location="asia-east1",
1212
+ replica_count=1,
1213
+ node_type="SHARED_CORE_NANO",
1214
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
1215
+ authorization_mode="AUTH_DISABLED",
1216
+ engine_configs={
1217
+ "maxmemory-policy": "volatile-ttl",
1218
+ },
1219
+ zone_distribution_config={
1220
+ "mode": "SINGLE_ZONE",
1221
+ "zone": "asia-east1-c",
1222
+ },
1223
+ deletion_protection_enabled=True,
1224
+ persistence_config={
1225
+ "mode": "RDB",
1226
+ "rdb_config": {
1227
+ "rdb_snapshot_period": "ONE_HOUR",
1228
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
1229
+ },
1230
+ },
1231
+ labels={
1232
+ "abc": "xyz",
1233
+ },
1234
+ opts = pulumi.ResourceOptions(depends_on=[primary_policy]))
1235
+ secondary_producer_net = gcp.compute.Network("secondary_producer_net",
1236
+ name="my-network-secondary-instance",
1237
+ auto_create_subnetworks=False)
1238
+ secondary_producer_subnet = gcp.compute.Subnetwork("secondary_producer_subnet",
1239
+ name="my-subnet-secondary-instance",
1240
+ ip_cidr_range="10.0.2.0/29",
1241
+ region="europe-north1",
1242
+ network=secondary_producer_net.id)
1243
+ secondary_policy = gcp.networkconnectivity.ServiceConnectionPolicy("secondary_policy",
1244
+ name="my-policy-secondary-instance",
1245
+ location="europe-north1",
1246
+ service_class="gcp-memorystore",
1247
+ description="my basic service connection policy",
1248
+ network=secondary_producer_net.id,
1249
+ psc_config={
1250
+ "subnetworks": [secondary_producer_subnet.id],
1251
+ })
1252
+ # Secondary instance
1253
+ secondary_instance = gcp.memorystore.Instance("secondary_instance",
1254
+ instance_id="secondary-instance",
1255
+ shard_count=1,
1256
+ desired_psc_auto_connections=[{
1257
+ "network": secondary_producer_net.id,
1258
+ "project_id": project.project_id,
1259
+ }],
1260
+ location="europe-north1",
1261
+ replica_count=1,
1262
+ node_type="SHARED_CORE_NANO",
1263
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
1264
+ authorization_mode="AUTH_DISABLED",
1265
+ engine_configs={
1266
+ "maxmemory-policy": "volatile-ttl",
1267
+ },
1268
+ zone_distribution_config={
1269
+ "mode": "SINGLE_ZONE",
1270
+ "zone": "europe-north1-c",
1271
+ },
1272
+ deletion_protection_enabled=True,
1273
+ cross_instance_replication_config={
1274
+ "instance_role": "SECONDARY",
1275
+ "primary_instance": {
1276
+ "instance": primary_instance.id,
1277
+ },
1278
+ },
1279
+ persistence_config={
1280
+ "mode": "RDB",
1281
+ "rdb_config": {
1282
+ "rdb_snapshot_period": "ONE_HOUR",
1283
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
1284
+ },
1285
+ },
1286
+ labels={
1287
+ "abc": "xyz",
1288
+ },
1289
+ opts = pulumi.ResourceOptions(depends_on=[secondary_policy]))
1290
+ ```
1117
1291
 
1118
1292
  ## Import
1119
1293
 
@@ -1144,8 +1318,10 @@ class Instance(pulumi.CustomResource):
1144
1318
  :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
1145
1319
  AUTH_DISABLED
1146
1320
  IAM_AUTH
1321
+ :param pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']] cross_instance_replication_config: Cross instance replication config
1322
+ Structure is documented below.
1147
1323
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1148
- :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
1324
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Immutable. User inputs for the auto-created PSC connections.
1149
1325
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
1150
1326
  :param pulumi.Input[str] engine_version: Optional. Engine version of the instance.
1151
1327
  :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
@@ -1198,6 +1374,12 @@ class Instance(pulumi.CustomResource):
1198
1374
  """
1199
1375
  A Google Cloud Memorystore instance.
1200
1376
 
1377
+ To get more information about Instance, see:
1378
+
1379
+ * [API documentation](https://cloud.google.com/memorystore/docs/valkey/reference/rest/v1/projects.locations.instances)
1380
+ * How-to Guides
1381
+ * [Official Documentation](https://cloud.google.com/memorystore/docs/valkey/create-instances)
1382
+
1201
1383
  ## Example Usage
1202
1384
 
1203
1385
  ### Memorystore Instance Basic
@@ -1356,6 +1538,118 @@ class Instance(pulumi.CustomResource):
1356
1538
  deletion_protection_enabled=False,
1357
1539
  opts = pulumi.ResourceOptions(depends_on=[default]))
1358
1540
  ```
1541
+ ### Memorystore Instance Secondary Instance
1542
+
1543
+ ```python
1544
+ import pulumi
1545
+ import pulumi_gcp as gcp
1546
+
1547
+ primary_producer_net = gcp.compute.Network("primary_producer_net",
1548
+ name="my-network-primary-instance",
1549
+ auto_create_subnetworks=False)
1550
+ primary_producer_subnet = gcp.compute.Subnetwork("primary_producer_subnet",
1551
+ name="my-subnet-primary-instance",
1552
+ ip_cidr_range="10.0.1.0/29",
1553
+ region="asia-east1",
1554
+ network=primary_producer_net.id)
1555
+ primary_policy = gcp.networkconnectivity.ServiceConnectionPolicy("primary_policy",
1556
+ name="my-policy-primary-instance",
1557
+ location="asia-east1",
1558
+ service_class="gcp-memorystore",
1559
+ description="my basic service connection policy",
1560
+ network=primary_producer_net.id,
1561
+ psc_config={
1562
+ "subnetworks": [primary_producer_subnet.id],
1563
+ })
1564
+ project = gcp.organizations.get_project()
1565
+ # Primary instance
1566
+ primary_instance = gcp.memorystore.Instance("primary_instance",
1567
+ instance_id="primary-instance",
1568
+ shard_count=1,
1569
+ desired_psc_auto_connections=[{
1570
+ "network": primary_producer_net.id,
1571
+ "project_id": project.project_id,
1572
+ }],
1573
+ location="asia-east1",
1574
+ replica_count=1,
1575
+ node_type="SHARED_CORE_NANO",
1576
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
1577
+ authorization_mode="AUTH_DISABLED",
1578
+ engine_configs={
1579
+ "maxmemory-policy": "volatile-ttl",
1580
+ },
1581
+ zone_distribution_config={
1582
+ "mode": "SINGLE_ZONE",
1583
+ "zone": "asia-east1-c",
1584
+ },
1585
+ deletion_protection_enabled=True,
1586
+ persistence_config={
1587
+ "mode": "RDB",
1588
+ "rdb_config": {
1589
+ "rdb_snapshot_period": "ONE_HOUR",
1590
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
1591
+ },
1592
+ },
1593
+ labels={
1594
+ "abc": "xyz",
1595
+ },
1596
+ opts = pulumi.ResourceOptions(depends_on=[primary_policy]))
1597
+ secondary_producer_net = gcp.compute.Network("secondary_producer_net",
1598
+ name="my-network-secondary-instance",
1599
+ auto_create_subnetworks=False)
1600
+ secondary_producer_subnet = gcp.compute.Subnetwork("secondary_producer_subnet",
1601
+ name="my-subnet-secondary-instance",
1602
+ ip_cidr_range="10.0.2.0/29",
1603
+ region="europe-north1",
1604
+ network=secondary_producer_net.id)
1605
+ secondary_policy = gcp.networkconnectivity.ServiceConnectionPolicy("secondary_policy",
1606
+ name="my-policy-secondary-instance",
1607
+ location="europe-north1",
1608
+ service_class="gcp-memorystore",
1609
+ description="my basic service connection policy",
1610
+ network=secondary_producer_net.id,
1611
+ psc_config={
1612
+ "subnetworks": [secondary_producer_subnet.id],
1613
+ })
1614
+ # Secondary instance
1615
+ secondary_instance = gcp.memorystore.Instance("secondary_instance",
1616
+ instance_id="secondary-instance",
1617
+ shard_count=1,
1618
+ desired_psc_auto_connections=[{
1619
+ "network": secondary_producer_net.id,
1620
+ "project_id": project.project_id,
1621
+ }],
1622
+ location="europe-north1",
1623
+ replica_count=1,
1624
+ node_type="SHARED_CORE_NANO",
1625
+ transit_encryption_mode="TRANSIT_ENCRYPTION_DISABLED",
1626
+ authorization_mode="AUTH_DISABLED",
1627
+ engine_configs={
1628
+ "maxmemory-policy": "volatile-ttl",
1629
+ },
1630
+ zone_distribution_config={
1631
+ "mode": "SINGLE_ZONE",
1632
+ "zone": "europe-north1-c",
1633
+ },
1634
+ deletion_protection_enabled=True,
1635
+ cross_instance_replication_config={
1636
+ "instance_role": "SECONDARY",
1637
+ "primary_instance": {
1638
+ "instance": primary_instance.id,
1639
+ },
1640
+ },
1641
+ persistence_config={
1642
+ "mode": "RDB",
1643
+ "rdb_config": {
1644
+ "rdb_snapshot_period": "ONE_HOUR",
1645
+ "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
1646
+ },
1647
+ },
1648
+ labels={
1649
+ "abc": "xyz",
1650
+ },
1651
+ opts = pulumi.ResourceOptions(depends_on=[secondary_policy]))
1652
+ ```
1359
1653
 
1360
1654
  ## Import
1361
1655
 
@@ -1397,6 +1691,7 @@ class Instance(pulumi.CustomResource):
1397
1691
  resource_name: str,
1398
1692
  opts: Optional[pulumi.ResourceOptions] = None,
1399
1693
  authorization_mode: Optional[pulumi.Input[str]] = None,
1694
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
1400
1695
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1401
1696
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1402
1697
  engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -1423,9 +1718,8 @@ class Instance(pulumi.CustomResource):
1423
1718
  __props__ = InstanceArgs.__new__(InstanceArgs)
1424
1719
 
1425
1720
  __props__.__dict__["authorization_mode"] = authorization_mode
1721
+ __props__.__dict__["cross_instance_replication_config"] = cross_instance_replication_config
1426
1722
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1427
- if desired_psc_auto_connections is None and not opts.urn:
1428
- raise TypeError("Missing required property 'desired_psc_auto_connections'")
1429
1723
  __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1430
1724
  __props__.__dict__["engine_configs"] = engine_configs
1431
1725
  __props__.__dict__["engine_version"] = engine_version
@@ -1454,6 +1748,7 @@ class Instance(pulumi.CustomResource):
1454
1748
  __props__.__dict__["maintenance_schedules"] = None
1455
1749
  __props__.__dict__["name"] = None
1456
1750
  __props__.__dict__["node_configs"] = None
1751
+ __props__.__dict__["psc_attachment_details"] = None
1457
1752
  __props__.__dict__["psc_auto_connections"] = None
1458
1753
  __props__.__dict__["pulumi_labels"] = None
1459
1754
  __props__.__dict__["state"] = None
@@ -1474,6 +1769,7 @@ class Instance(pulumi.CustomResource):
1474
1769
  opts: Optional[pulumi.ResourceOptions] = None,
1475
1770
  authorization_mode: Optional[pulumi.Input[str]] = None,
1476
1771
  create_time: Optional[pulumi.Input[str]] = None,
1772
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
1477
1773
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1478
1774
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1479
1775
  discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDiscoveryEndpointArgs', 'InstanceDiscoveryEndpointArgsDict']]]]] = None,
@@ -1492,6 +1788,7 @@ class Instance(pulumi.CustomResource):
1492
1788
  node_type: Optional[pulumi.Input[str]] = None,
1493
1789
  persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
1494
1790
  project: Optional[pulumi.Input[str]] = None,
1791
+ psc_attachment_details: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAttachmentDetailArgs', 'InstancePscAttachmentDetailArgsDict']]]]] = None,
1495
1792
  psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAutoConnectionArgs', 'InstancePscAutoConnectionArgsDict']]]]] = None,
1496
1793
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1497
1794
  replica_count: Optional[pulumi.Input[int]] = None,
@@ -1513,8 +1810,10 @@ class Instance(pulumi.CustomResource):
1513
1810
  AUTH_DISABLED
1514
1811
  IAM_AUTH
1515
1812
  :param pulumi.Input[str] create_time: Output only. Creation timestamp of the instance.
1813
+ :param pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']] cross_instance_replication_config: Cross instance replication config
1814
+ Structure is documented below.
1516
1815
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1517
- :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
1816
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]] desired_psc_auto_connections: Immutable. User inputs for the auto-created PSC connections.
1518
1817
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceDiscoveryEndpointArgs', 'InstanceDiscoveryEndpointArgsDict']]]] discovery_endpoints: Output only. Endpoints clients can connect to the instance through. Currently only one
1519
1818
  discovery endpoint is supported.
1520
1819
  Structure is documented below.
@@ -1561,6 +1860,8 @@ class Instance(pulumi.CustomResource):
1561
1860
  Structure is documented below.
1562
1861
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1563
1862
  If it is not provided, the provider project is used.
1863
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAttachmentDetailArgs', 'InstancePscAttachmentDetailArgsDict']]]] psc_attachment_details: Configuration of a service attachment of the cluster, for creating PSC connections.
1864
+ Structure is documented below.
1564
1865
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAutoConnectionArgs', 'InstancePscAutoConnectionArgsDict']]]] psc_auto_connections: Output only. User inputs and resource details of the auto-created PSC connections.
1565
1866
  Structure is documented below.
1566
1867
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -1590,6 +1891,7 @@ class Instance(pulumi.CustomResource):
1590
1891
 
1591
1892
  __props__.__dict__["authorization_mode"] = authorization_mode
1592
1893
  __props__.__dict__["create_time"] = create_time
1894
+ __props__.__dict__["cross_instance_replication_config"] = cross_instance_replication_config
1593
1895
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1594
1896
  __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1595
1897
  __props__.__dict__["discovery_endpoints"] = discovery_endpoints
@@ -1608,6 +1910,7 @@ class Instance(pulumi.CustomResource):
1608
1910
  __props__.__dict__["node_type"] = node_type
1609
1911
  __props__.__dict__["persistence_config"] = persistence_config
1610
1912
  __props__.__dict__["project"] = project
1913
+ __props__.__dict__["psc_attachment_details"] = psc_attachment_details
1611
1914
  __props__.__dict__["psc_auto_connections"] = psc_auto_connections
1612
1915
  __props__.__dict__["pulumi_labels"] = pulumi_labels
1613
1916
  __props__.__dict__["replica_count"] = replica_count
@@ -1638,6 +1941,15 @@ class Instance(pulumi.CustomResource):
1638
1941
  """
1639
1942
  return pulumi.get(self, "create_time")
1640
1943
 
1944
+ @property
1945
+ @pulumi.getter(name="crossInstanceReplicationConfig")
1946
+ def cross_instance_replication_config(self) -> pulumi.Output['outputs.InstanceCrossInstanceReplicationConfig']:
1947
+ """
1948
+ Cross instance replication config
1949
+ Structure is documented below.
1950
+ """
1951
+ return pulumi.get(self, "cross_instance_replication_config")
1952
+
1641
1953
  @property
1642
1954
  @pulumi.getter(name="deletionProtectionEnabled")
1643
1955
  def deletion_protection_enabled(self) -> pulumi.Output[Optional[bool]]:
@@ -1648,9 +1960,9 @@ class Instance(pulumi.CustomResource):
1648
1960
 
1649
1961
  @property
1650
1962
  @pulumi.getter(name="desiredPscAutoConnections")
1651
- def desired_psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstanceDesiredPscAutoConnection']]:
1963
+ def desired_psc_auto_connections(self) -> pulumi.Output[Optional[Sequence['outputs.InstanceDesiredPscAutoConnection']]]:
1652
1964
  """
1653
- Required. Immutable. User inputs for the auto-created PSC connections.
1965
+ Immutable. User inputs for the auto-created PSC connections.
1654
1966
  """
1655
1967
  return pulumi.get(self, "desired_psc_auto_connections")
1656
1968
 
@@ -1812,6 +2124,15 @@ class Instance(pulumi.CustomResource):
1812
2124
  """
1813
2125
  return pulumi.get(self, "project")
1814
2126
 
2127
+ @property
2128
+ @pulumi.getter(name="pscAttachmentDetails")
2129
+ def psc_attachment_details(self) -> pulumi.Output[Sequence['outputs.InstancePscAttachmentDetail']]:
2130
+ """
2131
+ Configuration of a service attachment of the cluster, for creating PSC connections.
2132
+ Structure is documented below.
2133
+ """
2134
+ return pulumi.get(self, "psc_attachment_details")
2135
+
1815
2136
  @property
1816
2137
  @pulumi.getter(name="pscAutoConnections")
1817
2138
  def psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstancePscAutoConnection']]: