pulumi-gcp 8.24.0a1743057423__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 (150) hide show
  1. pulumi_gcp/__init__.py +131 -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/_inputs.py +158 -0
  11. pulumi_gcp/bigquery/outputs.py +115 -0
  12. pulumi_gcp/bigquery/reservation.py +189 -1
  13. pulumi_gcp/bigquery/reservation_assignment.py +7 -7
  14. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +11 -7
  15. pulumi_gcp/bigtable/table.py +8 -8
  16. pulumi_gcp/chronicle/data_access_label.py +16 -0
  17. pulumi_gcp/chronicle/data_access_scope.py +16 -0
  18. pulumi_gcp/chronicle/reference_list.py +16 -0
  19. pulumi_gcp/chronicle/retrohunt.py +16 -0
  20. pulumi_gcp/chronicle/rule.py +16 -0
  21. pulumi_gcp/chronicle/rule_deployment.py +16 -0
  22. pulumi_gcp/chronicle/watchlist.py +16 -0
  23. pulumi_gcp/cloudfunctionsv2/_inputs.py +20 -0
  24. pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
  25. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  26. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  27. pulumi_gcp/cloudrunv2/service.py +14 -14
  28. pulumi_gcp/compute/__init__.py +2 -0
  29. pulumi_gcp/compute/_inputs.py +2627 -61
  30. pulumi_gcp/compute/backend_service.py +121 -3
  31. pulumi_gcp/compute/get_backend_service.py +15 -4
  32. pulumi_gcp/compute/get_images.py +172 -0
  33. pulumi_gcp/compute/get_instance.py +12 -1
  34. pulumi_gcp/compute/get_region_backend_service.py +482 -0
  35. pulumi_gcp/compute/get_resource_policy.py +15 -4
  36. pulumi_gcp/compute/get_router.py +12 -1
  37. pulumi_gcp/compute/get_subnetwork.py +43 -1
  38. pulumi_gcp/compute/image.py +54 -0
  39. pulumi_gcp/compute/instance.py +47 -0
  40. pulumi_gcp/compute/instance_from_machine_image.py +94 -0
  41. pulumi_gcp/compute/instance_from_template.py +47 -0
  42. pulumi_gcp/compute/interconnect.py +14 -7
  43. pulumi_gcp/compute/outputs.py +4522 -391
  44. pulumi_gcp/compute/public_delegated_prefix.py +69 -15
  45. pulumi_gcp/compute/resource_policy.py +169 -3
  46. pulumi_gcp/compute/router.py +54 -0
  47. pulumi_gcp/compute/router_route_policy.py +16 -0
  48. pulumi_gcp/compute/subnetwork.py +35 -5
  49. pulumi_gcp/config/__init__.pyi +8 -0
  50. pulumi_gcp/config/outputs.py +27 -0
  51. pulumi_gcp/config/vars.py +16 -0
  52. pulumi_gcp/container/_inputs.py +274 -13
  53. pulumi_gcp/container/cluster.py +101 -0
  54. pulumi_gcp/container/get_cluster.py +23 -1
  55. pulumi_gcp/container/get_registry_image.py +4 -0
  56. pulumi_gcp/container/get_registry_repository.py +4 -0
  57. pulumi_gcp/container/outputs.py +305 -10
  58. pulumi_gcp/container/registry.py +4 -0
  59. pulumi_gcp/datafusion/instance.py +68 -0
  60. pulumi_gcp/dataproc/__init__.py +8 -0
  61. pulumi_gcp/dataproc/_inputs.py +219 -0
  62. pulumi_gcp/dataproc/get_metastore_database_iam_policy.py +193 -0
  63. pulumi_gcp/dataproc/get_metastore_table_iam_policy.py +210 -0
  64. pulumi_gcp/dataproc/metastore_database_iam_binding.py +848 -0
  65. pulumi_gcp/dataproc/metastore_database_iam_member.py +848 -0
  66. pulumi_gcp/dataproc/metastore_database_iam_policy.py +687 -0
  67. pulumi_gcp/dataproc/metastore_federation.py +38 -2
  68. pulumi_gcp/dataproc/metastore_table_iam_binding.py +895 -0
  69. pulumi_gcp/dataproc/metastore_table_iam_member.py +895 -0
  70. pulumi_gcp/dataproc/metastore_table_iam_policy.py +734 -0
  71. pulumi_gcp/dataproc/outputs.py +139 -0
  72. pulumi_gcp/datastream/_inputs.py +311 -94
  73. pulumi_gcp/datastream/connection_profile.py +40 -0
  74. pulumi_gcp/datastream/outputs.py +244 -51
  75. pulumi_gcp/datastream/stream.py +216 -0
  76. pulumi_gcp/discoveryengine/__init__.py +1 -0
  77. pulumi_gcp/discoveryengine/sitemap.py +504 -0
  78. pulumi_gcp/eventarc/__init__.py +1 -0
  79. pulumi_gcp/eventarc/enrollment.py +980 -0
  80. pulumi_gcp/firebase/__init__.py +1 -0
  81. pulumi_gcp/firebase/_inputs.py +484 -0
  82. pulumi_gcp/firebase/app_hosting_build.py +1232 -0
  83. pulumi_gcp/firebase/outputs.py +333 -0
  84. pulumi_gcp/identityplatform/_inputs.py +91 -0
  85. pulumi_gcp/identityplatform/outputs.py +73 -0
  86. pulumi_gcp/identityplatform/tenant.py +56 -0
  87. pulumi_gcp/lustre/__init__.py +8 -0
  88. pulumi_gcp/lustre/instance.py +983 -0
  89. pulumi_gcp/managedkafka/cluster.py +2 -2
  90. pulumi_gcp/memorystore/__init__.py +1 -0
  91. pulumi_gcp/memorystore/_inputs.py +1252 -7
  92. pulumi_gcp/memorystore/get_instance.py +45 -1
  93. pulumi_gcp/memorystore/instance.py +481 -30
  94. pulumi_gcp/memorystore/instance_desired_user_created_endpoints.py +843 -0
  95. pulumi_gcp/memorystore/outputs.py +1440 -15
  96. pulumi_gcp/networkmanagement/_inputs.py +422 -91
  97. pulumi_gcp/networkmanagement/connectivity_test.py +233 -211
  98. pulumi_gcp/networkmanagement/outputs.py +280 -61
  99. pulumi_gcp/networksecurity/_inputs.py +891 -26
  100. pulumi_gcp/networksecurity/intercept_deployment_group.py +44 -16
  101. pulumi_gcp/networksecurity/intercept_endpoint_group.py +90 -36
  102. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +53 -8
  103. pulumi_gcp/networksecurity/mirroring_deployment_group.py +44 -16
  104. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +94 -36
  105. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +53 -8
  106. pulumi_gcp/networksecurity/outputs.py +531 -1
  107. pulumi_gcp/networksecurity/security_profile.py +8 -0
  108. pulumi_gcp/organizations/__init__.py +2 -0
  109. pulumi_gcp/organizations/get_iam_custom_role.py +198 -0
  110. pulumi_gcp/organizations/get_iam_custom_roles.py +164 -0
  111. pulumi_gcp/organizations/outputs.py +96 -0
  112. pulumi_gcp/osconfig/__init__.py +1 -0
  113. pulumi_gcp/osconfig/_inputs.py +5413 -0
  114. pulumi_gcp/osconfig/outputs.py +3962 -0
  115. pulumi_gcp/osconfig/v2_policy_orchestrator.py +971 -0
  116. pulumi_gcp/parametermanager/get_parameter.py +16 -1
  117. pulumi_gcp/parametermanager/get_parameter_version.py +19 -1
  118. pulumi_gcp/parametermanager/get_parameter_version_render.py +4 -0
  119. pulumi_gcp/parametermanager/get_parameters.py +4 -0
  120. pulumi_gcp/parametermanager/get_regional_parameter.py +4 -0
  121. pulumi_gcp/parametermanager/get_regional_parameter_version.py +4 -0
  122. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +8 -0
  123. pulumi_gcp/parametermanager/get_regional_parameters.py +4 -0
  124. pulumi_gcp/parametermanager/outputs.py +11 -0
  125. pulumi_gcp/parametermanager/parameter.py +88 -0
  126. pulumi_gcp/parametermanager/parameter_version.py +74 -0
  127. pulumi_gcp/parametermanager/regional_parameter.py +12 -0
  128. pulumi_gcp/parametermanager/regional_parameter_version.py +12 -0
  129. pulumi_gcp/provider.py +75 -0
  130. pulumi_gcp/pulumi-plugin.json +1 -1
  131. pulumi_gcp/redis/_inputs.py +136 -0
  132. pulumi_gcp/redis/cluster.py +54 -0
  133. pulumi_gcp/redis/outputs.py +114 -0
  134. pulumi_gcp/secretmanager/regional_secret_version.py +0 -16
  135. pulumi_gcp/storage/__init__.py +6 -0
  136. pulumi_gcp/storage/_inputs.py +1322 -0
  137. pulumi_gcp/storage/bucket.py +7 -7
  138. pulumi_gcp/storage/control_folder_intelligence_config.py +420 -0
  139. pulumi_gcp/storage/control_organization_intelligence_config.py +420 -0
  140. pulumi_gcp/storage/control_project_intelligence_config.py +408 -0
  141. pulumi_gcp/storage/get_bucket_object_content.py +16 -1
  142. pulumi_gcp/storage/get_control_folder_intelligence_config.py +160 -0
  143. pulumi_gcp/storage/get_control_organization_intelligence_config.py +160 -0
  144. pulumi_gcp/storage/get_control_project_intelligence_config.py +160 -0
  145. pulumi_gcp/storage/outputs.py +1553 -17
  146. pulumi_gcp/workbench/instance.py +14 -2
  147. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/METADATA +1 -1
  148. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/RECORD +150 -124
  149. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/WHEEL +0 -0
  150. {pulumi_gcp-8.24.0a1743057423.dist-info → pulumi_gcp-8.25.0.dist-info}/top_level.txt +0 -0
@@ -21,15 +21,17 @@ __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,
34
+ maintenance_policy: Optional[pulumi.Input['InstanceMaintenancePolicyArgs']] = None,
33
35
  mode: Optional[pulumi.Input[str]] = None,
34
36
  node_type: Optional[pulumi.Input[str]] = None,
35
37
  persistence_config: Optional[pulumi.Input['InstancePersistenceConfigArgs']] = None,
@@ -39,7 +41,6 @@ class InstanceArgs:
39
41
  zone_distribution_config: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']] = None):
40
42
  """
41
43
  The set of arguments for constructing a Instance resource.
42
- :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]] desired_psc_auto_connections: Required. Immutable. User inputs for the auto-created PSC connections.
43
44
  :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
44
45
  the instance's resource name.
45
46
  This value is subject to the following restrictions:
@@ -56,18 +57,23 @@ class InstanceArgs:
56
57
  :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
57
58
  AUTH_DISABLED
58
59
  IAM_AUTH
60
+ :param pulumi.Input['InstanceCrossInstanceReplicationConfigArgs'] cross_instance_replication_config: Cross instance replication config
61
+ Structure is documented below.
59
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.
60
64
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
61
65
  :param pulumi.Input[str] engine_version: Optional. Engine version of the instance.
62
66
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels to represent user-provided metadata.
63
67
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
64
68
  Please refer to the field `effective_labels` for all of the labels present on the resource.
69
+ :param pulumi.Input['InstanceMaintenancePolicyArgs'] maintenance_policy: Maintenance policy for a cluster
70
+ Structure is documented below.
65
71
  :param pulumi.Input[str] mode: Optional. cluster or cluster-disabled.
66
72
  Possible values:
67
73
  CLUSTER
68
74
  CLUSTER_DISABLED
69
75
  Possible values are: `CLUSTER`, `CLUSTER_DISABLED`.
70
- :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
76
+ :param pulumi.Input[str] node_type: Optional. Machine type for individual nodes of the instance.
71
77
  Possible values:
72
78
  SHARED_CORE_NANO
73
79
  HIGHMEM_MEDIUM
@@ -85,20 +91,25 @@ class InstanceArgs:
85
91
  :param pulumi.Input['InstanceZoneDistributionConfigArgs'] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
86
92
  Structure is documented below.
87
93
  """
88
- pulumi.set(__self__, "desired_psc_auto_connections", desired_psc_auto_connections)
89
94
  pulumi.set(__self__, "instance_id", instance_id)
90
95
  pulumi.set(__self__, "location", location)
91
96
  pulumi.set(__self__, "shard_count", shard_count)
92
97
  if authorization_mode is not None:
93
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)
94
101
  if deletion_protection_enabled is not None:
95
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)
96
105
  if engine_configs is not None:
97
106
  pulumi.set(__self__, "engine_configs", engine_configs)
98
107
  if engine_version is not None:
99
108
  pulumi.set(__self__, "engine_version", engine_version)
100
109
  if labels is not None:
101
110
  pulumi.set(__self__, "labels", labels)
111
+ if maintenance_policy is not None:
112
+ pulumi.set(__self__, "maintenance_policy", maintenance_policy)
102
113
  if mode is not None:
103
114
  pulumi.set(__self__, "mode", mode)
104
115
  if node_type is not None:
@@ -114,18 +125,6 @@ class InstanceArgs:
114
125
  if zone_distribution_config is not None:
115
126
  pulumi.set(__self__, "zone_distribution_config", zone_distribution_config)
116
127
 
117
- @property
118
- @pulumi.getter(name="desiredPscAutoConnections")
119
- def desired_psc_auto_connections(self) -> pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]:
120
- """
121
- Required. Immutable. User inputs for the auto-created PSC connections.
122
- """
123
- return pulumi.get(self, "desired_psc_auto_connections")
124
-
125
- @desired_psc_auto_connections.setter
126
- def desired_psc_auto_connections(self, value: pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]):
127
- pulumi.set(self, "desired_psc_auto_connections", value)
128
-
129
128
  @property
130
129
  @pulumi.getter(name="instanceId")
131
130
  def instance_id(self) -> pulumi.Input[str]:
@@ -186,6 +185,19 @@ class InstanceArgs:
186
185
  def authorization_mode(self, value: Optional[pulumi.Input[str]]):
187
186
  pulumi.set(self, "authorization_mode", value)
188
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
+
189
201
  @property
190
202
  @pulumi.getter(name="deletionProtectionEnabled")
191
203
  def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -198,6 +210,18 @@ class InstanceArgs:
198
210
  def deletion_protection_enabled(self, value: Optional[pulumi.Input[bool]]):
199
211
  pulumi.set(self, "deletion_protection_enabled", value)
200
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
+
201
225
  @property
202
226
  @pulumi.getter(name="engineConfigs")
203
227
  def engine_configs(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -236,6 +260,19 @@ class InstanceArgs:
236
260
  def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
237
261
  pulumi.set(self, "labels", value)
238
262
 
263
+ @property
264
+ @pulumi.getter(name="maintenancePolicy")
265
+ def maintenance_policy(self) -> Optional[pulumi.Input['InstanceMaintenancePolicyArgs']]:
266
+ """
267
+ Maintenance policy for a cluster
268
+ Structure is documented below.
269
+ """
270
+ return pulumi.get(self, "maintenance_policy")
271
+
272
+ @maintenance_policy.setter
273
+ def maintenance_policy(self, value: Optional[pulumi.Input['InstanceMaintenancePolicyArgs']]):
274
+ pulumi.set(self, "maintenance_policy", value)
275
+
239
276
  @property
240
277
  @pulumi.getter
241
278
  def mode(self) -> Optional[pulumi.Input[str]]:
@@ -256,7 +293,7 @@ class InstanceArgs:
256
293
  @pulumi.getter(name="nodeType")
257
294
  def node_type(self) -> Optional[pulumi.Input[str]]:
258
295
  """
259
- Optional. Immutable. Machine type for individual nodes of the instance.
296
+ Optional. Machine type for individual nodes of the instance.
260
297
  Possible values:
261
298
  SHARED_CORE_NANO
262
299
  HIGHMEM_MEDIUM
@@ -341,6 +378,7 @@ class _InstanceState:
341
378
  def __init__(__self__, *,
342
379
  authorization_mode: Optional[pulumi.Input[str]] = None,
343
380
  create_time: Optional[pulumi.Input[str]] = None,
381
+ cross_instance_replication_config: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']] = None,
344
382
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
345
383
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]] = None,
346
384
  discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]]] = None,
@@ -351,12 +389,15 @@ class _InstanceState:
351
389
  instance_id: Optional[pulumi.Input[str]] = None,
352
390
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
353
391
  location: Optional[pulumi.Input[str]] = None,
392
+ maintenance_policy: Optional[pulumi.Input['InstanceMaintenancePolicyArgs']] = None,
393
+ maintenance_schedules: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenanceScheduleArgs']]]] = None,
354
394
  mode: Optional[pulumi.Input[str]] = None,
355
395
  name: Optional[pulumi.Input[str]] = None,
356
396
  node_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]]] = None,
357
397
  node_type: Optional[pulumi.Input[str]] = None,
358
398
  persistence_config: Optional[pulumi.Input['InstancePersistenceConfigArgs']] = None,
359
399
  project: Optional[pulumi.Input[str]] = None,
400
+ psc_attachment_details: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAttachmentDetailArgs']]]] = None,
360
401
  psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]] = None,
361
402
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
362
403
  replica_count: Optional[pulumi.Input[int]] = None,
@@ -373,8 +414,10 @@ class _InstanceState:
373
414
  AUTH_DISABLED
374
415
  IAM_AUTH
375
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.
376
419
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
377
- :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.
378
421
  :param pulumi.Input[Sequence[pulumi.Input['InstanceDiscoveryEndpointArgs']]] discovery_endpoints: Output only. Endpoints clients can connect to the instance through. Currently only one
379
422
  discovery endpoint is supported.
380
423
  Structure is documented below.
@@ -398,6 +441,10 @@ class _InstanceState:
398
441
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
399
442
  Please refer to the field `effective_labels` for all of the labels present on the resource.
400
443
  :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
444
+ :param pulumi.Input['InstanceMaintenancePolicyArgs'] maintenance_policy: Maintenance policy for a cluster
445
+ Structure is documented below.
446
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceMaintenanceScheduleArgs']]] maintenance_schedules: Upcoming maintenance schedule.
447
+ Structure is documented below.
401
448
  :param pulumi.Input[str] mode: Optional. cluster or cluster-disabled.
402
449
  Possible values:
403
450
  CLUSTER
@@ -407,7 +454,7 @@ class _InstanceState:
407
454
  Format: projects/{project}/locations/{location}/instances/{instance}
408
455
  :param pulumi.Input[Sequence[pulumi.Input['InstanceNodeConfigArgs']]] node_configs: Represents configuration for nodes of the instance.
409
456
  Structure is documented below.
410
- :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
457
+ :param pulumi.Input[str] node_type: Optional. Machine type for individual nodes of the instance.
411
458
  Possible values:
412
459
  SHARED_CORE_NANO
413
460
  HIGHMEM_MEDIUM
@@ -417,6 +464,8 @@ class _InstanceState:
417
464
  Structure is documented below.
418
465
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
419
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.
420
469
  :param pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]] psc_auto_connections: Output only. User inputs and resource details of the auto-created PSC connections.
421
470
  Structure is documented below.
422
471
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -444,6 +493,8 @@ class _InstanceState:
444
493
  pulumi.set(__self__, "authorization_mode", authorization_mode)
445
494
  if create_time is not None:
446
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)
447
498
  if deletion_protection_enabled is not None:
448
499
  pulumi.set(__self__, "deletion_protection_enabled", deletion_protection_enabled)
449
500
  if desired_psc_auto_connections is not None:
@@ -464,6 +515,10 @@ class _InstanceState:
464
515
  pulumi.set(__self__, "labels", labels)
465
516
  if location is not None:
466
517
  pulumi.set(__self__, "location", location)
518
+ if maintenance_policy is not None:
519
+ pulumi.set(__self__, "maintenance_policy", maintenance_policy)
520
+ if maintenance_schedules is not None:
521
+ pulumi.set(__self__, "maintenance_schedules", maintenance_schedules)
467
522
  if mode is not None:
468
523
  pulumi.set(__self__, "mode", mode)
469
524
  if name is not None:
@@ -476,6 +531,8 @@ class _InstanceState:
476
531
  pulumi.set(__self__, "persistence_config", persistence_config)
477
532
  if project is not None:
478
533
  pulumi.set(__self__, "project", project)
534
+ if psc_attachment_details is not None:
535
+ pulumi.set(__self__, "psc_attachment_details", psc_attachment_details)
479
536
  if psc_auto_connections is not None:
480
537
  pulumi.set(__self__, "psc_auto_connections", psc_auto_connections)
481
538
  if pulumi_labels is not None:
@@ -523,6 +580,19 @@ class _InstanceState:
523
580
  def create_time(self, value: Optional[pulumi.Input[str]]):
524
581
  pulumi.set(self, "create_time", value)
525
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
+
526
596
  @property
527
597
  @pulumi.getter(name="deletionProtectionEnabled")
528
598
  def deletion_protection_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -539,7 +609,7 @@ class _InstanceState:
539
609
  @pulumi.getter(name="desiredPscAutoConnections")
540
610
  def desired_psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredPscAutoConnectionArgs']]]]:
541
611
  """
542
- Required. Immutable. User inputs for the auto-created PSC connections.
612
+ Immutable. User inputs for the auto-created PSC connections.
543
613
  """
544
614
  return pulumi.get(self, "desired_psc_auto_connections")
545
615
 
@@ -658,6 +728,32 @@ class _InstanceState:
658
728
  def location(self, value: Optional[pulumi.Input[str]]):
659
729
  pulumi.set(self, "location", value)
660
730
 
731
+ @property
732
+ @pulumi.getter(name="maintenancePolicy")
733
+ def maintenance_policy(self) -> Optional[pulumi.Input['InstanceMaintenancePolicyArgs']]:
734
+ """
735
+ Maintenance policy for a cluster
736
+ Structure is documented below.
737
+ """
738
+ return pulumi.get(self, "maintenance_policy")
739
+
740
+ @maintenance_policy.setter
741
+ def maintenance_policy(self, value: Optional[pulumi.Input['InstanceMaintenancePolicyArgs']]):
742
+ pulumi.set(self, "maintenance_policy", value)
743
+
744
+ @property
745
+ @pulumi.getter(name="maintenanceSchedules")
746
+ def maintenance_schedules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenanceScheduleArgs']]]]:
747
+ """
748
+ Upcoming maintenance schedule.
749
+ Structure is documented below.
750
+ """
751
+ return pulumi.get(self, "maintenance_schedules")
752
+
753
+ @maintenance_schedules.setter
754
+ def maintenance_schedules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceMaintenanceScheduleArgs']]]]):
755
+ pulumi.set(self, "maintenance_schedules", value)
756
+
661
757
  @property
662
758
  @pulumi.getter
663
759
  def mode(self) -> Optional[pulumi.Input[str]]:
@@ -704,7 +800,7 @@ class _InstanceState:
704
800
  @pulumi.getter(name="nodeType")
705
801
  def node_type(self) -> Optional[pulumi.Input[str]]:
706
802
  """
707
- Optional. Immutable. Machine type for individual nodes of the instance.
803
+ Optional. Machine type for individual nodes of the instance.
708
804
  Possible values:
709
805
  SHARED_CORE_NANO
710
806
  HIGHMEM_MEDIUM
@@ -743,6 +839,19 @@ class _InstanceState:
743
839
  def project(self, value: Optional[pulumi.Input[str]]):
744
840
  pulumi.set(self, "project", value)
745
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
+
746
855
  @property
747
856
  @pulumi.getter(name="pscAutoConnections")
748
857
  def psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstancePscAutoConnectionArgs']]]]:
@@ -882,6 +991,7 @@ class Instance(pulumi.CustomResource):
882
991
  resource_name: str,
883
992
  opts: Optional[pulumi.ResourceOptions] = None,
884
993
  authorization_mode: Optional[pulumi.Input[str]] = None,
994
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
885
995
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
886
996
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
887
997
  engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -889,6 +999,7 @@ class Instance(pulumi.CustomResource):
889
999
  instance_id: Optional[pulumi.Input[str]] = None,
890
1000
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
891
1001
  location: Optional[pulumi.Input[str]] = None,
1002
+ maintenance_policy: Optional[pulumi.Input[Union['InstanceMaintenancePolicyArgs', 'InstanceMaintenancePolicyArgsDict']]] = None,
892
1003
  mode: Optional[pulumi.Input[str]] = None,
893
1004
  node_type: Optional[pulumi.Input[str]] = None,
894
1005
  persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
@@ -901,6 +1012,12 @@ class Instance(pulumi.CustomResource):
901
1012
  """
902
1013
  A Google Cloud Memorystore instance.
903
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
+
904
1021
  ## Example Usage
905
1022
 
906
1023
  ### Memorystore Instance Basic
@@ -936,6 +1053,17 @@ class Instance(pulumi.CustomResource):
936
1053
  }],
937
1054
  location="us-central1",
938
1055
  deletion_protection_enabled=False,
1056
+ maintenance_policy={
1057
+ "weekly_maintenance_windows": [{
1058
+ "day": "MONDAY",
1059
+ "start_time": {
1060
+ "hours": 1,
1061
+ "minutes": 0,
1062
+ "seconds": 0,
1063
+ "nanos": 0,
1064
+ },
1065
+ }],
1066
+ },
939
1067
  opts = pulumi.ResourceOptions(depends_on=[default]))
940
1068
  ```
941
1069
  ### Memorystore Instance Full
@@ -981,6 +1109,17 @@ class Instance(pulumi.CustomResource):
981
1109
  "mode": "SINGLE_ZONE",
982
1110
  "zone": "us-central1-b",
983
1111
  },
1112
+ maintenance_policy={
1113
+ "weekly_maintenance_windows": [{
1114
+ "day": "MONDAY",
1115
+ "start_time": {
1116
+ "hours": 1,
1117
+ "minutes": 0,
1118
+ "seconds": 0,
1119
+ "nanos": 0,
1120
+ },
1121
+ }],
1122
+ },
984
1123
  engine_version="VALKEY_7_2",
985
1124
  deletion_protection_enabled=False,
986
1125
  mode="CLUSTER",
@@ -1037,6 +1176,118 @@ class Instance(pulumi.CustomResource):
1037
1176
  deletion_protection_enabled=False,
1038
1177
  opts = pulumi.ResourceOptions(depends_on=[default]))
1039
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
+ ```
1040
1291
 
1041
1292
  ## Import
1042
1293
 
@@ -1067,8 +1318,10 @@ class Instance(pulumi.CustomResource):
1067
1318
  :param pulumi.Input[str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
1068
1319
  AUTH_DISABLED
1069
1320
  IAM_AUTH
1321
+ :param pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']] cross_instance_replication_config: Cross instance replication config
1322
+ Structure is documented below.
1070
1323
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1071
- :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.
1072
1325
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] engine_configs: Optional. User-provided engine configurations for the instance.
1073
1326
  :param pulumi.Input[str] engine_version: Optional. Engine version of the instance.
1074
1327
  :param pulumi.Input[str] instance_id: Required. The ID to use for the instance, which will become the final component of
@@ -1086,12 +1339,14 @@ class Instance(pulumi.CustomResource):
1086
1339
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1087
1340
  Please refer to the field `effective_labels` for all of the labels present on the resource.
1088
1341
  :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
1342
+ :param pulumi.Input[Union['InstanceMaintenancePolicyArgs', 'InstanceMaintenancePolicyArgsDict']] maintenance_policy: Maintenance policy for a cluster
1343
+ Structure is documented below.
1089
1344
  :param pulumi.Input[str] mode: Optional. cluster or cluster-disabled.
1090
1345
  Possible values:
1091
1346
  CLUSTER
1092
1347
  CLUSTER_DISABLED
1093
1348
  Possible values are: `CLUSTER`, `CLUSTER_DISABLED`.
1094
- :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
1349
+ :param pulumi.Input[str] node_type: Optional. Machine type for individual nodes of the instance.
1095
1350
  Possible values:
1096
1351
  SHARED_CORE_NANO
1097
1352
  HIGHMEM_MEDIUM
@@ -1119,6 +1374,12 @@ class Instance(pulumi.CustomResource):
1119
1374
  """
1120
1375
  A Google Cloud Memorystore instance.
1121
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
+
1122
1383
  ## Example Usage
1123
1384
 
1124
1385
  ### Memorystore Instance Basic
@@ -1154,6 +1415,17 @@ class Instance(pulumi.CustomResource):
1154
1415
  }],
1155
1416
  location="us-central1",
1156
1417
  deletion_protection_enabled=False,
1418
+ maintenance_policy={
1419
+ "weekly_maintenance_windows": [{
1420
+ "day": "MONDAY",
1421
+ "start_time": {
1422
+ "hours": 1,
1423
+ "minutes": 0,
1424
+ "seconds": 0,
1425
+ "nanos": 0,
1426
+ },
1427
+ }],
1428
+ },
1157
1429
  opts = pulumi.ResourceOptions(depends_on=[default]))
1158
1430
  ```
1159
1431
  ### Memorystore Instance Full
@@ -1199,6 +1471,17 @@ class Instance(pulumi.CustomResource):
1199
1471
  "mode": "SINGLE_ZONE",
1200
1472
  "zone": "us-central1-b",
1201
1473
  },
1474
+ maintenance_policy={
1475
+ "weekly_maintenance_windows": [{
1476
+ "day": "MONDAY",
1477
+ "start_time": {
1478
+ "hours": 1,
1479
+ "minutes": 0,
1480
+ "seconds": 0,
1481
+ "nanos": 0,
1482
+ },
1483
+ }],
1484
+ },
1202
1485
  engine_version="VALKEY_7_2",
1203
1486
  deletion_protection_enabled=False,
1204
1487
  mode="CLUSTER",
@@ -1255,6 +1538,118 @@ class Instance(pulumi.CustomResource):
1255
1538
  deletion_protection_enabled=False,
1256
1539
  opts = pulumi.ResourceOptions(depends_on=[default]))
1257
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
+ ```
1258
1653
 
1259
1654
  ## Import
1260
1655
 
@@ -1296,6 +1691,7 @@ class Instance(pulumi.CustomResource):
1296
1691
  resource_name: str,
1297
1692
  opts: Optional[pulumi.ResourceOptions] = None,
1298
1693
  authorization_mode: Optional[pulumi.Input[str]] = None,
1694
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
1299
1695
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1300
1696
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1301
1697
  engine_configs: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -1303,6 +1699,7 @@ class Instance(pulumi.CustomResource):
1303
1699
  instance_id: Optional[pulumi.Input[str]] = None,
1304
1700
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1305
1701
  location: Optional[pulumi.Input[str]] = None,
1702
+ maintenance_policy: Optional[pulumi.Input[Union['InstanceMaintenancePolicyArgs', 'InstanceMaintenancePolicyArgsDict']]] = None,
1306
1703
  mode: Optional[pulumi.Input[str]] = None,
1307
1704
  node_type: Optional[pulumi.Input[str]] = None,
1308
1705
  persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
@@ -1321,9 +1718,8 @@ class Instance(pulumi.CustomResource):
1321
1718
  __props__ = InstanceArgs.__new__(InstanceArgs)
1322
1719
 
1323
1720
  __props__.__dict__["authorization_mode"] = authorization_mode
1721
+ __props__.__dict__["cross_instance_replication_config"] = cross_instance_replication_config
1324
1722
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1325
- if desired_psc_auto_connections is None and not opts.urn:
1326
- raise TypeError("Missing required property 'desired_psc_auto_connections'")
1327
1723
  __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1328
1724
  __props__.__dict__["engine_configs"] = engine_configs
1329
1725
  __props__.__dict__["engine_version"] = engine_version
@@ -1334,6 +1730,7 @@ class Instance(pulumi.CustomResource):
1334
1730
  if location is None and not opts.urn:
1335
1731
  raise TypeError("Missing required property 'location'")
1336
1732
  __props__.__dict__["location"] = location
1733
+ __props__.__dict__["maintenance_policy"] = maintenance_policy
1337
1734
  __props__.__dict__["mode"] = mode
1338
1735
  __props__.__dict__["node_type"] = node_type
1339
1736
  __props__.__dict__["persistence_config"] = persistence_config
@@ -1348,8 +1745,10 @@ class Instance(pulumi.CustomResource):
1348
1745
  __props__.__dict__["discovery_endpoints"] = None
1349
1746
  __props__.__dict__["effective_labels"] = None
1350
1747
  __props__.__dict__["endpoints"] = None
1748
+ __props__.__dict__["maintenance_schedules"] = None
1351
1749
  __props__.__dict__["name"] = None
1352
1750
  __props__.__dict__["node_configs"] = None
1751
+ __props__.__dict__["psc_attachment_details"] = None
1353
1752
  __props__.__dict__["psc_auto_connections"] = None
1354
1753
  __props__.__dict__["pulumi_labels"] = None
1355
1754
  __props__.__dict__["state"] = None
@@ -1370,6 +1769,7 @@ class Instance(pulumi.CustomResource):
1370
1769
  opts: Optional[pulumi.ResourceOptions] = None,
1371
1770
  authorization_mode: Optional[pulumi.Input[str]] = None,
1372
1771
  create_time: Optional[pulumi.Input[str]] = None,
1772
+ cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
1373
1773
  deletion_protection_enabled: Optional[pulumi.Input[bool]] = None,
1374
1774
  desired_psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDesiredPscAutoConnectionArgs', 'InstanceDesiredPscAutoConnectionArgsDict']]]]] = None,
1375
1775
  discovery_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceDiscoveryEndpointArgs', 'InstanceDiscoveryEndpointArgsDict']]]]] = None,
@@ -1380,12 +1780,15 @@ class Instance(pulumi.CustomResource):
1380
1780
  instance_id: Optional[pulumi.Input[str]] = None,
1381
1781
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1382
1782
  location: Optional[pulumi.Input[str]] = None,
1783
+ maintenance_policy: Optional[pulumi.Input[Union['InstanceMaintenancePolicyArgs', 'InstanceMaintenancePolicyArgsDict']]] = None,
1784
+ maintenance_schedules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceMaintenanceScheduleArgs', 'InstanceMaintenanceScheduleArgsDict']]]]] = None,
1383
1785
  mode: Optional[pulumi.Input[str]] = None,
1384
1786
  name: Optional[pulumi.Input[str]] = None,
1385
1787
  node_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceNodeConfigArgs', 'InstanceNodeConfigArgsDict']]]]] = None,
1386
1788
  node_type: Optional[pulumi.Input[str]] = None,
1387
1789
  persistence_config: Optional[pulumi.Input[Union['InstancePersistenceConfigArgs', 'InstancePersistenceConfigArgsDict']]] = None,
1388
1790
  project: Optional[pulumi.Input[str]] = None,
1791
+ psc_attachment_details: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAttachmentDetailArgs', 'InstancePscAttachmentDetailArgsDict']]]]] = None,
1389
1792
  psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstancePscAutoConnectionArgs', 'InstancePscAutoConnectionArgsDict']]]]] = None,
1390
1793
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1391
1794
  replica_count: Optional[pulumi.Input[int]] = None,
@@ -1407,8 +1810,10 @@ class Instance(pulumi.CustomResource):
1407
1810
  AUTH_DISABLED
1408
1811
  IAM_AUTH
1409
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.
1410
1815
  :param pulumi.Input[bool] deletion_protection_enabled: Optional. If set to true deletion of the instance will fail.
1411
- :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.
1412
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
1413
1818
  discovery endpoint is supported.
1414
1819
  Structure is documented below.
@@ -1432,6 +1837,10 @@ class Instance(pulumi.CustomResource):
1432
1837
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1433
1838
  Please refer to the field `effective_labels` for all of the labels present on the resource.
1434
1839
  :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
1840
+ :param pulumi.Input[Union['InstanceMaintenancePolicyArgs', 'InstanceMaintenancePolicyArgsDict']] maintenance_policy: Maintenance policy for a cluster
1841
+ Structure is documented below.
1842
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceMaintenanceScheduleArgs', 'InstanceMaintenanceScheduleArgsDict']]]] maintenance_schedules: Upcoming maintenance schedule.
1843
+ Structure is documented below.
1435
1844
  :param pulumi.Input[str] mode: Optional. cluster or cluster-disabled.
1436
1845
  Possible values:
1437
1846
  CLUSTER
@@ -1441,7 +1850,7 @@ class Instance(pulumi.CustomResource):
1441
1850
  Format: projects/{project}/locations/{location}/instances/{instance}
1442
1851
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceNodeConfigArgs', 'InstanceNodeConfigArgsDict']]]] node_configs: Represents configuration for nodes of the instance.
1443
1852
  Structure is documented below.
1444
- :param pulumi.Input[str] node_type: Optional. Immutable. Machine type for individual nodes of the instance.
1853
+ :param pulumi.Input[str] node_type: Optional. Machine type for individual nodes of the instance.
1445
1854
  Possible values:
1446
1855
  SHARED_CORE_NANO
1447
1856
  HIGHMEM_MEDIUM
@@ -1451,6 +1860,8 @@ class Instance(pulumi.CustomResource):
1451
1860
  Structure is documented below.
1452
1861
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1453
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.
1454
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.
1455
1866
  Structure is documented below.
1456
1867
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
@@ -1480,6 +1891,7 @@ class Instance(pulumi.CustomResource):
1480
1891
 
1481
1892
  __props__.__dict__["authorization_mode"] = authorization_mode
1482
1893
  __props__.__dict__["create_time"] = create_time
1894
+ __props__.__dict__["cross_instance_replication_config"] = cross_instance_replication_config
1483
1895
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1484
1896
  __props__.__dict__["desired_psc_auto_connections"] = desired_psc_auto_connections
1485
1897
  __props__.__dict__["discovery_endpoints"] = discovery_endpoints
@@ -1490,12 +1902,15 @@ class Instance(pulumi.CustomResource):
1490
1902
  __props__.__dict__["instance_id"] = instance_id
1491
1903
  __props__.__dict__["labels"] = labels
1492
1904
  __props__.__dict__["location"] = location
1905
+ __props__.__dict__["maintenance_policy"] = maintenance_policy
1906
+ __props__.__dict__["maintenance_schedules"] = maintenance_schedules
1493
1907
  __props__.__dict__["mode"] = mode
1494
1908
  __props__.__dict__["name"] = name
1495
1909
  __props__.__dict__["node_configs"] = node_configs
1496
1910
  __props__.__dict__["node_type"] = node_type
1497
1911
  __props__.__dict__["persistence_config"] = persistence_config
1498
1912
  __props__.__dict__["project"] = project
1913
+ __props__.__dict__["psc_attachment_details"] = psc_attachment_details
1499
1914
  __props__.__dict__["psc_auto_connections"] = psc_auto_connections
1500
1915
  __props__.__dict__["pulumi_labels"] = pulumi_labels
1501
1916
  __props__.__dict__["replica_count"] = replica_count
@@ -1526,6 +1941,15 @@ class Instance(pulumi.CustomResource):
1526
1941
  """
1527
1942
  return pulumi.get(self, "create_time")
1528
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
+
1529
1953
  @property
1530
1954
  @pulumi.getter(name="deletionProtectionEnabled")
1531
1955
  def deletion_protection_enabled(self) -> pulumi.Output[Optional[bool]]:
@@ -1536,9 +1960,9 @@ class Instance(pulumi.CustomResource):
1536
1960
 
1537
1961
  @property
1538
1962
  @pulumi.getter(name="desiredPscAutoConnections")
1539
- def desired_psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstanceDesiredPscAutoConnection']]:
1963
+ def desired_psc_auto_connections(self) -> pulumi.Output[Optional[Sequence['outputs.InstanceDesiredPscAutoConnection']]]:
1540
1964
  """
1541
- Required. Immutable. User inputs for the auto-created PSC connections.
1965
+ Immutable. User inputs for the auto-created PSC connections.
1542
1966
  """
1543
1967
  return pulumi.get(self, "desired_psc_auto_connections")
1544
1968
 
@@ -1621,6 +2045,24 @@ class Instance(pulumi.CustomResource):
1621
2045
  """
1622
2046
  return pulumi.get(self, "location")
1623
2047
 
2048
+ @property
2049
+ @pulumi.getter(name="maintenancePolicy")
2050
+ def maintenance_policy(self) -> pulumi.Output[Optional['outputs.InstanceMaintenancePolicy']]:
2051
+ """
2052
+ Maintenance policy for a cluster
2053
+ Structure is documented below.
2054
+ """
2055
+ return pulumi.get(self, "maintenance_policy")
2056
+
2057
+ @property
2058
+ @pulumi.getter(name="maintenanceSchedules")
2059
+ def maintenance_schedules(self) -> pulumi.Output[Sequence['outputs.InstanceMaintenanceSchedule']]:
2060
+ """
2061
+ Upcoming maintenance schedule.
2062
+ Structure is documented below.
2063
+ """
2064
+ return pulumi.get(self, "maintenance_schedules")
2065
+
1624
2066
  @property
1625
2067
  @pulumi.getter
1626
2068
  def mode(self) -> pulumi.Output[str]:
@@ -1655,7 +2097,7 @@ class Instance(pulumi.CustomResource):
1655
2097
  @pulumi.getter(name="nodeType")
1656
2098
  def node_type(self) -> pulumi.Output[str]:
1657
2099
  """
1658
- Optional. Immutable. Machine type for individual nodes of the instance.
2100
+ Optional. Machine type for individual nodes of the instance.
1659
2101
  Possible values:
1660
2102
  SHARED_CORE_NANO
1661
2103
  HIGHMEM_MEDIUM
@@ -1682,6 +2124,15 @@ class Instance(pulumi.CustomResource):
1682
2124
  """
1683
2125
  return pulumi.get(self, "project")
1684
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
+
1685
2136
  @property
1686
2137
  @pulumi.getter(name="pscAutoConnections")
1687
2138
  def psc_auto_connections(self) -> pulumi.Output[Sequence['outputs.InstancePscAutoConnection']]: