pulumi-gcp 8.25.0a1743575622__py3-none-any.whl → 8.25.0a1743706148__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.25.0a1743575622.dist-info → pulumi_gcp-8.25.0a1743706148.dist-info}/METADATA +1 -1
  124. {pulumi_gcp-8.25.0a1743575622.dist-info → pulumi_gcp-8.25.0a1743706148.dist-info}/RECORD +126 -107
  125. {pulumi_gcp-8.25.0a1743575622.dist-info → pulumi_gcp-8.25.0a1743706148.dist-info}/WHEEL +0 -0
  126. {pulumi_gcp-8.25.0a1743575622.dist-info → pulumi_gcp-8.25.0a1743706148.dist-info}/top_level.txt +0 -0
@@ -16,7 +16,16 @@ from .. import _utilities
16
16
  from . import outputs
17
17
 
18
18
  __all__ = [
19
+ 'InstanceCrossInstanceReplicationConfig',
20
+ 'InstanceCrossInstanceReplicationConfigMembership',
21
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance',
22
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance',
23
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstance',
24
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstance',
19
25
  'InstanceDesiredPscAutoConnection',
26
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpoint',
27
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection',
28
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection',
20
29
  'InstanceDiscoveryEndpoint',
21
30
  'InstanceEndpoint',
22
31
  'InstanceEndpointConnection',
@@ -29,10 +38,17 @@ __all__ = [
29
38
  'InstancePersistenceConfig',
30
39
  'InstancePersistenceConfigAofConfig',
31
40
  'InstancePersistenceConfigRdbConfig',
41
+ 'InstancePscAttachmentDetail',
32
42
  'InstancePscAutoConnection',
33
43
  'InstanceStateInfo',
34
44
  'InstanceStateInfoUpdateInfo',
35
45
  'InstanceZoneDistributionConfig',
46
+ 'GetInstanceCrossInstanceReplicationConfigResult',
47
+ 'GetInstanceCrossInstanceReplicationConfigMembershipResult',
48
+ 'GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult',
49
+ 'GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult',
50
+ 'GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult',
51
+ 'GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult',
36
52
  'GetInstanceDesiredPscAutoConnectionResult',
37
53
  'GetInstanceDiscoveryEndpointResult',
38
54
  'GetInstanceEndpointResult',
@@ -46,12 +62,305 @@ __all__ = [
46
62
  'GetInstancePersistenceConfigResult',
47
63
  'GetInstancePersistenceConfigAofConfigResult',
48
64
  'GetInstancePersistenceConfigRdbConfigResult',
65
+ 'GetInstancePscAttachmentDetailResult',
49
66
  'GetInstancePscAutoConnectionResult',
50
67
  'GetInstanceStateInfoResult',
51
68
  'GetInstanceStateInfoUpdateInfoResult',
52
69
  'GetInstanceZoneDistributionConfigResult',
53
70
  ]
54
71
 
72
+ @pulumi.output_type
73
+ class InstanceCrossInstanceReplicationConfig(dict):
74
+ @staticmethod
75
+ def __key_warning(key: str):
76
+ suggest = None
77
+ if key == "instanceRole":
78
+ suggest = "instance_role"
79
+ elif key == "primaryInstance":
80
+ suggest = "primary_instance"
81
+ elif key == "secondaryInstances":
82
+ suggest = "secondary_instances"
83
+ elif key == "updateTime":
84
+ suggest = "update_time"
85
+
86
+ if suggest:
87
+ pulumi.log.warn(f"Key '{key}' not found in InstanceCrossInstanceReplicationConfig. Access the value via the '{suggest}' property getter instead.")
88
+
89
+ def __getitem__(self, key: str) -> Any:
90
+ InstanceCrossInstanceReplicationConfig.__key_warning(key)
91
+ return super().__getitem__(key)
92
+
93
+ def get(self, key: str, default = None) -> Any:
94
+ InstanceCrossInstanceReplicationConfig.__key_warning(key)
95
+ return super().get(key, default)
96
+
97
+ def __init__(__self__, *,
98
+ instance_role: Optional[str] = None,
99
+ memberships: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembership']] = None,
100
+ primary_instance: Optional['outputs.InstanceCrossInstanceReplicationConfigPrimaryInstance'] = None,
101
+ secondary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigSecondaryInstance']] = None,
102
+ update_time: Optional[str] = None):
103
+ """
104
+ :param str instance_role: The instance role supports the following values:
105
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
106
+ 2. `NONE`: This is an independent instance that previously participated in cross instance replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
107
+ 3. `PRIMARY`: This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
108
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
109
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
110
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipArgs'] memberships: (Output)
111
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
112
+ Structure is documented below.
113
+ :param 'InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs' primary_instance: This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
114
+ Structure is documented below.
115
+ :param Sequence['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type `PRIMARY`.
116
+ Structure is documented below.
117
+ :param str update_time: (Output)
118
+ The last time cross instance replication config was updated.
119
+ """
120
+ if instance_role is not None:
121
+ pulumi.set(__self__, "instance_role", instance_role)
122
+ if memberships is not None:
123
+ pulumi.set(__self__, "memberships", memberships)
124
+ if primary_instance is not None:
125
+ pulumi.set(__self__, "primary_instance", primary_instance)
126
+ if secondary_instances is not None:
127
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
128
+ if update_time is not None:
129
+ pulumi.set(__self__, "update_time", update_time)
130
+
131
+ @property
132
+ @pulumi.getter(name="instanceRole")
133
+ def instance_role(self) -> Optional[str]:
134
+ """
135
+ The instance role supports the following values:
136
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
137
+ 2. `NONE`: This is an independent instance that previously participated in cross instance replication(either as a `PRIMARY` or `SECONDARY` cluster). It allows both reads and writes.
138
+ 3. `PRIMARY`: This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
139
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
140
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
141
+ """
142
+ return pulumi.get(self, "instance_role")
143
+
144
+ @property
145
+ @pulumi.getter
146
+ def memberships(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembership']]:
147
+ """
148
+ (Output)
149
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
150
+ Structure is documented below.
151
+ """
152
+ return pulumi.get(self, "memberships")
153
+
154
+ @property
155
+ @pulumi.getter(name="primaryInstance")
156
+ def primary_instance(self) -> Optional['outputs.InstanceCrossInstanceReplicationConfigPrimaryInstance']:
157
+ """
158
+ This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type `SECONDARY`.
159
+ Structure is documented below.
160
+ """
161
+ return pulumi.get(self, "primary_instance")
162
+
163
+ @property
164
+ @pulumi.getter(name="secondaryInstances")
165
+ def secondary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigSecondaryInstance']]:
166
+ """
167
+ List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type `PRIMARY`.
168
+ Structure is documented below.
169
+ """
170
+ return pulumi.get(self, "secondary_instances")
171
+
172
+ @property
173
+ @pulumi.getter(name="updateTime")
174
+ def update_time(self) -> Optional[str]:
175
+ """
176
+ (Output)
177
+ The last time cross instance replication config was updated.
178
+ """
179
+ return pulumi.get(self, "update_time")
180
+
181
+
182
+ @pulumi.output_type
183
+ class InstanceCrossInstanceReplicationConfigMembership(dict):
184
+ @staticmethod
185
+ def __key_warning(key: str):
186
+ suggest = None
187
+ if key == "primaryInstances":
188
+ suggest = "primary_instances"
189
+ elif key == "secondaryInstances":
190
+ suggest = "secondary_instances"
191
+
192
+ if suggest:
193
+ pulumi.log.warn(f"Key '{key}' not found in InstanceCrossInstanceReplicationConfigMembership. Access the value via the '{suggest}' property getter instead.")
194
+
195
+ def __getitem__(self, key: str) -> Any:
196
+ InstanceCrossInstanceReplicationConfigMembership.__key_warning(key)
197
+ return super().__getitem__(key)
198
+
199
+ def get(self, key: str, default = None) -> Any:
200
+ InstanceCrossInstanceReplicationConfigMembership.__key_warning(key)
201
+ return super().get(key, default)
202
+
203
+ def __init__(__self__, *,
204
+ primary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance']] = None,
205
+ secondary_instances: Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance']] = None):
206
+ """
207
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs'] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
208
+ :param Sequence['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from the primary instance.
209
+ """
210
+ if primary_instances is not None:
211
+ pulumi.set(__self__, "primary_instances", primary_instances)
212
+ if secondary_instances is not None:
213
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
214
+
215
+ @property
216
+ @pulumi.getter(name="primaryInstances")
217
+ def primary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance']]:
218
+ """
219
+ Details of the primary instance that is used as the replication source for all the secondary instances.
220
+ """
221
+ return pulumi.get(self, "primary_instances")
222
+
223
+ @property
224
+ @pulumi.getter(name="secondaryInstances")
225
+ def secondary_instances(self) -> Optional[Sequence['outputs.InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance']]:
226
+ """
227
+ List of secondary instances that are replicating from the primary instance.
228
+ """
229
+ return pulumi.get(self, "secondary_instances")
230
+
231
+
232
+ @pulumi.output_type
233
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstance(dict):
234
+ def __init__(__self__, *,
235
+ instance: Optional[str] = None,
236
+ uid: Optional[str] = None):
237
+ """
238
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
239
+ :param str uid: (Output)
240
+ The unique id of the primary instance.
241
+ """
242
+ if instance is not None:
243
+ pulumi.set(__self__, "instance", instance)
244
+ if uid is not None:
245
+ pulumi.set(__self__, "uid", uid)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def instance(self) -> Optional[str]:
250
+ """
251
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
252
+ """
253
+ return pulumi.get(self, "instance")
254
+
255
+ @property
256
+ @pulumi.getter
257
+ def uid(self) -> Optional[str]:
258
+ """
259
+ (Output)
260
+ The unique id of the primary instance.
261
+ """
262
+ return pulumi.get(self, "uid")
263
+
264
+
265
+ @pulumi.output_type
266
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstance(dict):
267
+ def __init__(__self__, *,
268
+ instance: Optional[str] = None,
269
+ uid: Optional[str] = None):
270
+ """
271
+ :param str instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
272
+ :param str uid: Output only. System assigned, unique identifier for the instance.
273
+ """
274
+ if instance is not None:
275
+ pulumi.set(__self__, "instance", instance)
276
+ if uid is not None:
277
+ pulumi.set(__self__, "uid", uid)
278
+
279
+ @property
280
+ @pulumi.getter
281
+ def instance(self) -> Optional[str]:
282
+ """
283
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
284
+ """
285
+ return pulumi.get(self, "instance")
286
+
287
+ @property
288
+ @pulumi.getter
289
+ def uid(self) -> Optional[str]:
290
+ """
291
+ Output only. System assigned, unique identifier for the instance.
292
+ """
293
+ return pulumi.get(self, "uid")
294
+
295
+
296
+ @pulumi.output_type
297
+ class InstanceCrossInstanceReplicationConfigPrimaryInstance(dict):
298
+ def __init__(__self__, *,
299
+ instance: Optional[str] = None,
300
+ uid: Optional[str] = None):
301
+ """
302
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
303
+ :param str uid: (Output)
304
+ The unique id of the primary instance.
305
+ """
306
+ if instance is not None:
307
+ pulumi.set(__self__, "instance", instance)
308
+ if uid is not None:
309
+ pulumi.set(__self__, "uid", uid)
310
+
311
+ @property
312
+ @pulumi.getter
313
+ def instance(self) -> Optional[str]:
314
+ """
315
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
316
+ """
317
+ return pulumi.get(self, "instance")
318
+
319
+ @property
320
+ @pulumi.getter
321
+ def uid(self) -> Optional[str]:
322
+ """
323
+ (Output)
324
+ The unique id of the primary instance.
325
+ """
326
+ return pulumi.get(self, "uid")
327
+
328
+
329
+ @pulumi.output_type
330
+ class InstanceCrossInstanceReplicationConfigSecondaryInstance(dict):
331
+ def __init__(__self__, *,
332
+ instance: Optional[str] = None,
333
+ uid: Optional[str] = None):
334
+ """
335
+ :param str instance: (Output)
336
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
337
+ :param str uid: (Output)
338
+ The unique id of the secondary instance.
339
+ """
340
+ if instance is not None:
341
+ pulumi.set(__self__, "instance", instance)
342
+ if uid is not None:
343
+ pulumi.set(__self__, "uid", uid)
344
+
345
+ @property
346
+ @pulumi.getter
347
+ def instance(self) -> Optional[str]:
348
+ """
349
+ (Output)
350
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
351
+ """
352
+ return pulumi.get(self, "instance")
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def uid(self) -> Optional[str]:
357
+ """
358
+ (Output)
359
+ The unique id of the secondary instance.
360
+ """
361
+ return pulumi.get(self, "uid")
362
+
363
+
55
364
  @pulumi.output_type
56
365
  class InstanceDesiredPscAutoConnection(dict):
57
366
  @staticmethod
@@ -81,28 +390,240 @@ class InstanceDesiredPscAutoConnection(dict):
81
390
  :param str project_id: (Output)
82
391
  Output only. The consumer project_id where the forwarding rule is created from.
83
392
  """
84
- pulumi.set(__self__, "network", network)
85
- pulumi.set(__self__, "project_id", project_id)
393
+ pulumi.set(__self__, "network", network)
394
+ pulumi.set(__self__, "project_id", project_id)
395
+
396
+ @property
397
+ @pulumi.getter
398
+ def network(self) -> str:
399
+ """
400
+ (Output)
401
+ Output only. The consumer network where the IP address resides, in the form of
402
+ projects/{project_id}/global/networks/{network_id}.
403
+ """
404
+ return pulumi.get(self, "network")
405
+
406
+ @property
407
+ @pulumi.getter(name="projectId")
408
+ def project_id(self) -> str:
409
+ """
410
+ (Output)
411
+ Output only. The consumer project_id where the forwarding rule is created from.
412
+ """
413
+ return pulumi.get(self, "project_id")
414
+
415
+
416
+ @pulumi.output_type
417
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpoint(dict):
418
+ def __init__(__self__, *,
419
+ connections: Optional[Sequence['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection']] = None):
420
+ """
421
+ :param Sequence['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs'] connections: Structure is documented below.
422
+ """
423
+ if connections is not None:
424
+ pulumi.set(__self__, "connections", connections)
425
+
426
+ @property
427
+ @pulumi.getter
428
+ def connections(self) -> Optional[Sequence['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection']]:
429
+ """
430
+ Structure is documented below.
431
+ """
432
+ return pulumi.get(self, "connections")
433
+
434
+
435
+ @pulumi.output_type
436
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection(dict):
437
+ @staticmethod
438
+ def __key_warning(key: str):
439
+ suggest = None
440
+ if key == "pscConnection":
441
+ suggest = "psc_connection"
442
+
443
+ if suggest:
444
+ pulumi.log.warn(f"Key '{key}' not found in InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection. Access the value via the '{suggest}' property getter instead.")
445
+
446
+ def __getitem__(self, key: str) -> Any:
447
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection.__key_warning(key)
448
+ return super().__getitem__(key)
449
+
450
+ def get(self, key: str, default = None) -> Any:
451
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnection.__key_warning(key)
452
+ return super().get(key, default)
453
+
454
+ def __init__(__self__, *,
455
+ psc_connection: Optional['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection'] = None):
456
+ """
457
+ :param 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs' psc_connection: Detailed information of a PSC connection that is created by the customer
458
+ who owns the cluster.
459
+ Structure is documented below.
460
+ """
461
+ if psc_connection is not None:
462
+ pulumi.set(__self__, "psc_connection", psc_connection)
463
+
464
+ @property
465
+ @pulumi.getter(name="pscConnection")
466
+ def psc_connection(self) -> Optional['outputs.InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection']:
467
+ """
468
+ Detailed information of a PSC connection that is created by the customer
469
+ who owns the cluster.
470
+ Structure is documented below.
471
+ """
472
+ return pulumi.get(self, "psc_connection")
473
+
474
+
475
+ @pulumi.output_type
476
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection(dict):
477
+ @staticmethod
478
+ def __key_warning(key: str):
479
+ suggest = None
480
+ if key == "forwardingRule":
481
+ suggest = "forwarding_rule"
482
+ elif key == "ipAddress":
483
+ suggest = "ip_address"
484
+ elif key == "pscConnectionId":
485
+ suggest = "psc_connection_id"
486
+ elif key == "serviceAttachment":
487
+ suggest = "service_attachment"
488
+ elif key == "connectionType":
489
+ suggest = "connection_type"
490
+ elif key == "projectId":
491
+ suggest = "project_id"
492
+ elif key == "pscConnectionStatus":
493
+ suggest = "psc_connection_status"
494
+
495
+ if suggest:
496
+ pulumi.log.warn(f"Key '{key}' not found in InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection. Access the value via the '{suggest}' property getter instead.")
497
+
498
+ def __getitem__(self, key: str) -> Any:
499
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection.__key_warning(key)
500
+ return super().__getitem__(key)
501
+
502
+ def get(self, key: str, default = None) -> Any:
503
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnection.__key_warning(key)
504
+ return super().get(key, default)
505
+
506
+ def __init__(__self__, *,
507
+ forwarding_rule: str,
508
+ ip_address: str,
509
+ network: str,
510
+ psc_connection_id: str,
511
+ service_attachment: str,
512
+ connection_type: Optional[str] = None,
513
+ project_id: Optional[str] = None,
514
+ psc_connection_status: Optional[str] = None):
515
+ """
516
+ :param str forwarding_rule: The URI of the consumer side forwarding rule.
517
+ Format:
518
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
519
+ :param str ip_address: The IP allocated on the consumer network for the PSC forwarding rule.
520
+ :param str network: The consumer network where the IP address resides, in the form of
521
+ projects/{project_id}/global/networks/{network_id}.
522
+ :param str psc_connection_id: The PSC connection id of the forwarding rule connected to the
523
+ service attachment.
524
+ :param str service_attachment: The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
525
+ :param str connection_type: (Output)
526
+ Output Only. Type of a PSC Connection.
527
+ Possible values:
528
+ CONNECTION_TYPE_DISCOVERY
529
+ CONNECTION_TYPE_PRIMARY
530
+ CONNECTION_TYPE_READER
531
+ :param str project_id: The consumer project_id where the forwarding rule is created from.
532
+ :param str psc_connection_status: (Output)
533
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
534
+ Possible values:
535
+ ACTIVE
536
+ NOT_FOUND
537
+ """
538
+ pulumi.set(__self__, "forwarding_rule", forwarding_rule)
539
+ pulumi.set(__self__, "ip_address", ip_address)
540
+ pulumi.set(__self__, "network", network)
541
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
542
+ pulumi.set(__self__, "service_attachment", service_attachment)
543
+ if connection_type is not None:
544
+ pulumi.set(__self__, "connection_type", connection_type)
545
+ if project_id is not None:
546
+ pulumi.set(__self__, "project_id", project_id)
547
+ if psc_connection_status is not None:
548
+ pulumi.set(__self__, "psc_connection_status", psc_connection_status)
549
+
550
+ @property
551
+ @pulumi.getter(name="forwardingRule")
552
+ def forwarding_rule(self) -> str:
553
+ """
554
+ The URI of the consumer side forwarding rule.
555
+ Format:
556
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
557
+ """
558
+ return pulumi.get(self, "forwarding_rule")
559
+
560
+ @property
561
+ @pulumi.getter(name="ipAddress")
562
+ def ip_address(self) -> str:
563
+ """
564
+ The IP allocated on the consumer network for the PSC forwarding rule.
565
+ """
566
+ return pulumi.get(self, "ip_address")
86
567
 
87
568
  @property
88
569
  @pulumi.getter
89
570
  def network(self) -> str:
90
571
  """
91
- (Output)
92
- Output only. The consumer network where the IP address resides, in the form of
572
+ The consumer network where the IP address resides, in the form of
93
573
  projects/{project_id}/global/networks/{network_id}.
94
574
  """
95
575
  return pulumi.get(self, "network")
96
576
 
97
577
  @property
98
- @pulumi.getter(name="projectId")
99
- def project_id(self) -> str:
578
+ @pulumi.getter(name="pscConnectionId")
579
+ def psc_connection_id(self) -> str:
580
+ """
581
+ The PSC connection id of the forwarding rule connected to the
582
+ service attachment.
583
+ """
584
+ return pulumi.get(self, "psc_connection_id")
585
+
586
+ @property
587
+ @pulumi.getter(name="serviceAttachment")
588
+ def service_attachment(self) -> str:
589
+ """
590
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
591
+ """
592
+ return pulumi.get(self, "service_attachment")
593
+
594
+ @property
595
+ @pulumi.getter(name="connectionType")
596
+ def connection_type(self) -> Optional[str]:
100
597
  """
101
598
  (Output)
102
- Output only. The consumer project_id where the forwarding rule is created from.
599
+ Output Only. Type of a PSC Connection.
600
+ Possible values:
601
+ CONNECTION_TYPE_DISCOVERY
602
+ CONNECTION_TYPE_PRIMARY
603
+ CONNECTION_TYPE_READER
604
+ """
605
+ return pulumi.get(self, "connection_type")
606
+
607
+ @property
608
+ @pulumi.getter(name="projectId")
609
+ def project_id(self) -> Optional[str]:
610
+ """
611
+ The consumer project_id where the forwarding rule is created from.
103
612
  """
104
613
  return pulumi.get(self, "project_id")
105
614
 
615
+ @property
616
+ @pulumi.getter(name="pscConnectionStatus")
617
+ def psc_connection_status(self) -> Optional[str]:
618
+ """
619
+ (Output)
620
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
621
+ Possible values:
622
+ ACTIVE
623
+ NOT_FOUND
624
+ """
625
+ return pulumi.get(self, "psc_connection_status")
626
+
106
627
 
107
628
  @pulumi.output_type
108
629
  class InstanceDiscoveryEndpoint(dict):
@@ -909,6 +1430,68 @@ class InstancePersistenceConfigRdbConfig(dict):
909
1430
  return pulumi.get(self, "rdb_snapshot_start_time")
910
1431
 
911
1432
 
1433
+ @pulumi.output_type
1434
+ class InstancePscAttachmentDetail(dict):
1435
+ @staticmethod
1436
+ def __key_warning(key: str):
1437
+ suggest = None
1438
+ if key == "connectionType":
1439
+ suggest = "connection_type"
1440
+ elif key == "serviceAttachment":
1441
+ suggest = "service_attachment"
1442
+
1443
+ if suggest:
1444
+ pulumi.log.warn(f"Key '{key}' not found in InstancePscAttachmentDetail. Access the value via the '{suggest}' property getter instead.")
1445
+
1446
+ def __getitem__(self, key: str) -> Any:
1447
+ InstancePscAttachmentDetail.__key_warning(key)
1448
+ return super().__getitem__(key)
1449
+
1450
+ def get(self, key: str, default = None) -> Any:
1451
+ InstancePscAttachmentDetail.__key_warning(key)
1452
+ return super().get(key, default)
1453
+
1454
+ def __init__(__self__, *,
1455
+ connection_type: Optional[str] = None,
1456
+ service_attachment: Optional[str] = None):
1457
+ """
1458
+ :param str connection_type: (Output)
1459
+ Output Only. Type of a PSC Connection.
1460
+ Possible values:
1461
+ CONNECTION_TYPE_DISCOVERY
1462
+ CONNECTION_TYPE_PRIMARY
1463
+ CONNECTION_TYPE_READER
1464
+ :param str service_attachment: (Output)
1465
+ Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
1466
+ """
1467
+ if connection_type is not None:
1468
+ pulumi.set(__self__, "connection_type", connection_type)
1469
+ if service_attachment is not None:
1470
+ pulumi.set(__self__, "service_attachment", service_attachment)
1471
+
1472
+ @property
1473
+ @pulumi.getter(name="connectionType")
1474
+ def connection_type(self) -> Optional[str]:
1475
+ """
1476
+ (Output)
1477
+ Output Only. Type of a PSC Connection.
1478
+ Possible values:
1479
+ CONNECTION_TYPE_DISCOVERY
1480
+ CONNECTION_TYPE_PRIMARY
1481
+ CONNECTION_TYPE_READER
1482
+ """
1483
+ return pulumi.get(self, "connection_type")
1484
+
1485
+ @property
1486
+ @pulumi.getter(name="serviceAttachment")
1487
+ def service_attachment(self) -> Optional[str]:
1488
+ """
1489
+ (Output)
1490
+ Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
1491
+ """
1492
+ return pulumi.get(self, "service_attachment")
1493
+
1494
+
912
1495
  @pulumi.output_type
913
1496
  class InstancePscAutoConnection(dict):
914
1497
  @staticmethod
@@ -1138,7 +1721,11 @@ class InstanceStateInfoUpdateInfo(dict):
1138
1721
  @staticmethod
1139
1722
  def __key_warning(key: str):
1140
1723
  suggest = None
1141
- if key == "targetReplicaCount":
1724
+ if key == "targetEngineVersion":
1725
+ suggest = "target_engine_version"
1726
+ elif key == "targetNodeType":
1727
+ suggest = "target_node_type"
1728
+ elif key == "targetReplicaCount":
1142
1729
  suggest = "target_replica_count"
1143
1730
  elif key == "targetShardCount":
1144
1731
  suggest = "target_shard_count"
@@ -1155,19 +1742,47 @@ class InstanceStateInfoUpdateInfo(dict):
1155
1742
  return super().get(key, default)
1156
1743
 
1157
1744
  def __init__(__self__, *,
1745
+ target_engine_version: Optional[str] = None,
1746
+ target_node_type: Optional[str] = None,
1158
1747
  target_replica_count: Optional[int] = None,
1159
1748
  target_shard_count: Optional[int] = None):
1160
1749
  """
1750
+ :param str target_engine_version: (Output)
1751
+ Output only. Target engine version for the instance.
1752
+ :param str target_node_type: (Output)
1753
+ Output only. Target node type for the instance.
1161
1754
  :param int target_replica_count: (Output)
1162
1755
  Output only. Target number of replica nodes per shard for the instance.
1163
1756
  :param int target_shard_count: (Output)
1164
1757
  Output only. Target number of shards for the instance.
1165
1758
  """
1759
+ if target_engine_version is not None:
1760
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
1761
+ if target_node_type is not None:
1762
+ pulumi.set(__self__, "target_node_type", target_node_type)
1166
1763
  if target_replica_count is not None:
1167
1764
  pulumi.set(__self__, "target_replica_count", target_replica_count)
1168
1765
  if target_shard_count is not None:
1169
1766
  pulumi.set(__self__, "target_shard_count", target_shard_count)
1170
1767
 
1768
+ @property
1769
+ @pulumi.getter(name="targetEngineVersion")
1770
+ def target_engine_version(self) -> Optional[str]:
1771
+ """
1772
+ (Output)
1773
+ Output only. Target engine version for the instance.
1774
+ """
1775
+ return pulumi.get(self, "target_engine_version")
1776
+
1777
+ @property
1778
+ @pulumi.getter(name="targetNodeType")
1779
+ def target_node_type(self) -> Optional[str]:
1780
+ """
1781
+ (Output)
1782
+ Output only. Target node type for the instance.
1783
+ """
1784
+ return pulumi.get(self, "target_node_type")
1785
+
1171
1786
  @property
1172
1787
  @pulumi.getter(name="targetReplicaCount")
1173
1788
  def target_replica_count(self) -> Optional[int]:
@@ -1228,6 +1843,221 @@ class InstanceZoneDistributionConfig(dict):
1228
1843
  return pulumi.get(self, "zone")
1229
1844
 
1230
1845
 
1846
+ @pulumi.output_type
1847
+ class GetInstanceCrossInstanceReplicationConfigResult(dict):
1848
+ def __init__(__self__, *,
1849
+ instance_role: str,
1850
+ memberships: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipResult'],
1851
+ primary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult'],
1852
+ secondary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult'],
1853
+ update_time: str):
1854
+ """
1855
+ :param str instance_role: The instance role supports the following values:
1856
+ 1. 'INSTANCE_ROLE_UNSPECIFIED': This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
1857
+ 2. 'NONE': This is an independent instance that previously participated in cross instance replication(either as a 'PRIMARY' or 'SECONDARY' cluster). It allows both reads and writes.
1858
+ 3. 'PRIMARY': This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
1859
+ 4. 'SECONDARY': This instance replicates data from the primary instance. It allows only reads. Possible values: ["INSTANCE_ROLE_UNSPECIFIED", "NONE", "PRIMARY", "SECONDARY"]
1860
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipArgs'] memberships: An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
1861
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigPrimaryInstanceArgs'] primary_instances: This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type 'SECONDARY'.
1862
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type 'PRIMARY'.
1863
+ :param str update_time: The last time cross instance replication config was updated.
1864
+ """
1865
+ pulumi.set(__self__, "instance_role", instance_role)
1866
+ pulumi.set(__self__, "memberships", memberships)
1867
+ pulumi.set(__self__, "primary_instances", primary_instances)
1868
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
1869
+ pulumi.set(__self__, "update_time", update_time)
1870
+
1871
+ @property
1872
+ @pulumi.getter(name="instanceRole")
1873
+ def instance_role(self) -> str:
1874
+ """
1875
+ The instance role supports the following values:
1876
+ 1. 'INSTANCE_ROLE_UNSPECIFIED': This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
1877
+ 2. 'NONE': This is an independent instance that previously participated in cross instance replication(either as a 'PRIMARY' or 'SECONDARY' cluster). It allows both reads and writes.
1878
+ 3. 'PRIMARY': This instance serves as the replication source for secondary instance that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
1879
+ 4. 'SECONDARY': This instance replicates data from the primary instance. It allows only reads. Possible values: ["INSTANCE_ROLE_UNSPECIFIED", "NONE", "PRIMARY", "SECONDARY"]
1880
+ """
1881
+ return pulumi.get(self, "instance_role")
1882
+
1883
+ @property
1884
+ @pulumi.getter
1885
+ def memberships(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipResult']:
1886
+ """
1887
+ An output only view of all the member instance participating in cross instance replication. This field is populated for all the member clusters irrespective of their cluster role.
1888
+ """
1889
+ return pulumi.get(self, "memberships")
1890
+
1891
+ @property
1892
+ @pulumi.getter(name="primaryInstances")
1893
+ def primary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult']:
1894
+ """
1895
+ This field is only set for a secondary instance. Details of the primary instance that is used as the replication source for this secondary instance. This is allowed to be set only for clusters whose cluster role is of type 'SECONDARY'.
1896
+ """
1897
+ return pulumi.get(self, "primary_instances")
1898
+
1899
+ @property
1900
+ @pulumi.getter(name="secondaryInstances")
1901
+ def secondary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult']:
1902
+ """
1903
+ List of secondary instances that are replicating from this primary cluster. This is allowed to be set only for instances whose cluster role is of type 'PRIMARY'.
1904
+ """
1905
+ return pulumi.get(self, "secondary_instances")
1906
+
1907
+ @property
1908
+ @pulumi.getter(name="updateTime")
1909
+ def update_time(self) -> str:
1910
+ """
1911
+ The last time cross instance replication config was updated.
1912
+ """
1913
+ return pulumi.get(self, "update_time")
1914
+
1915
+
1916
+ @pulumi.output_type
1917
+ class GetInstanceCrossInstanceReplicationConfigMembershipResult(dict):
1918
+ def __init__(__self__, *,
1919
+ primary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult'],
1920
+ secondary_instances: Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult']):
1921
+ """
1922
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs'] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
1923
+ :param Sequence['GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs'] secondary_instances: List of secondary instances that are replicating from the primary instance.
1924
+ """
1925
+ pulumi.set(__self__, "primary_instances", primary_instances)
1926
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
1927
+
1928
+ @property
1929
+ @pulumi.getter(name="primaryInstances")
1930
+ def primary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult']:
1931
+ """
1932
+ Details of the primary instance that is used as the replication source for all the secondary instances.
1933
+ """
1934
+ return pulumi.get(self, "primary_instances")
1935
+
1936
+ @property
1937
+ @pulumi.getter(name="secondaryInstances")
1938
+ def secondary_instances(self) -> Sequence['outputs.GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult']:
1939
+ """
1940
+ List of secondary instances that are replicating from the primary instance.
1941
+ """
1942
+ return pulumi.get(self, "secondary_instances")
1943
+
1944
+
1945
+ @pulumi.output_type
1946
+ class GetInstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceResult(dict):
1947
+ def __init__(__self__, *,
1948
+ instance: str,
1949
+ uid: str):
1950
+ """
1951
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1952
+ :param str uid: The unique id of the primary instance.
1953
+ """
1954
+ pulumi.set(__self__, "instance", instance)
1955
+ pulumi.set(__self__, "uid", uid)
1956
+
1957
+ @property
1958
+ @pulumi.getter
1959
+ def instance(self) -> str:
1960
+ """
1961
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1962
+ """
1963
+ return pulumi.get(self, "instance")
1964
+
1965
+ @property
1966
+ @pulumi.getter
1967
+ def uid(self) -> str:
1968
+ """
1969
+ The unique id of the primary instance.
1970
+ """
1971
+ return pulumi.get(self, "uid")
1972
+
1973
+
1974
+ @pulumi.output_type
1975
+ class GetInstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceResult(dict):
1976
+ def __init__(__self__, *,
1977
+ instance: str,
1978
+ uid: str):
1979
+ """
1980
+ :param str instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1981
+ :param str uid: The unique id of the secondary instance.
1982
+ """
1983
+ pulumi.set(__self__, "instance", instance)
1984
+ pulumi.set(__self__, "uid", uid)
1985
+
1986
+ @property
1987
+ @pulumi.getter
1988
+ def instance(self) -> str:
1989
+ """
1990
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
1991
+ """
1992
+ return pulumi.get(self, "instance")
1993
+
1994
+ @property
1995
+ @pulumi.getter
1996
+ def uid(self) -> str:
1997
+ """
1998
+ The unique id of the secondary instance.
1999
+ """
2000
+ return pulumi.get(self, "uid")
2001
+
2002
+
2003
+ @pulumi.output_type
2004
+ class GetInstanceCrossInstanceReplicationConfigPrimaryInstanceResult(dict):
2005
+ def __init__(__self__, *,
2006
+ instance: str,
2007
+ uid: str):
2008
+ """
2009
+ :param str instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
2010
+ :param str uid: The unique id of the primary instance.
2011
+ """
2012
+ pulumi.set(__self__, "instance", instance)
2013
+ pulumi.set(__self__, "uid", uid)
2014
+
2015
+ @property
2016
+ @pulumi.getter
2017
+ def instance(self) -> str:
2018
+ """
2019
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
2020
+ """
2021
+ return pulumi.get(self, "instance")
2022
+
2023
+ @property
2024
+ @pulumi.getter
2025
+ def uid(self) -> str:
2026
+ """
2027
+ The unique id of the primary instance.
2028
+ """
2029
+ return pulumi.get(self, "uid")
2030
+
2031
+
2032
+ @pulumi.output_type
2033
+ class GetInstanceCrossInstanceReplicationConfigSecondaryInstanceResult(dict):
2034
+ def __init__(__self__, *,
2035
+ instance: str,
2036
+ uid: str):
2037
+ """
2038
+ :param str instance: The full resource path of the Nth instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
2039
+ :param str uid: The unique id of the Nth instance.
2040
+ """
2041
+ pulumi.set(__self__, "instance", instance)
2042
+ pulumi.set(__self__, "uid", uid)
2043
+
2044
+ @property
2045
+ @pulumi.getter
2046
+ def instance(self) -> str:
2047
+ """
2048
+ The full resource path of the Nth instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
2049
+ """
2050
+ return pulumi.get(self, "instance")
2051
+
2052
+ @property
2053
+ @pulumi.getter
2054
+ def uid(self) -> str:
2055
+ """
2056
+ The unique id of the Nth instance.
2057
+ """
2058
+ return pulumi.get(self, "uid")
2059
+
2060
+
1231
2061
  @pulumi.output_type
1232
2062
  class GetInstanceDesiredPscAutoConnectionResult(dict):
1233
2063
  def __init__(__self__, *,
@@ -1810,6 +2640,35 @@ class GetInstancePersistenceConfigRdbConfigResult(dict):
1810
2640
  return pulumi.get(self, "rdb_snapshot_start_time")
1811
2641
 
1812
2642
 
2643
+ @pulumi.output_type
2644
+ class GetInstancePscAttachmentDetailResult(dict):
2645
+ def __init__(__self__, *,
2646
+ connection_type: str,
2647
+ service_attachment: str):
2648
+ """
2649
+ :param str connection_type: Service attachment URI which your self-created PscConnection should use as target.
2650
+ :param str service_attachment: Service attachment URI which your self-created PscConnection should use as target.
2651
+ """
2652
+ pulumi.set(__self__, "connection_type", connection_type)
2653
+ pulumi.set(__self__, "service_attachment", service_attachment)
2654
+
2655
+ @property
2656
+ @pulumi.getter(name="connectionType")
2657
+ def connection_type(self) -> str:
2658
+ """
2659
+ Service attachment URI which your self-created PscConnection should use as target.
2660
+ """
2661
+ return pulumi.get(self, "connection_type")
2662
+
2663
+ @property
2664
+ @pulumi.getter(name="serviceAttachment")
2665
+ def service_attachment(self) -> str:
2666
+ """
2667
+ Service attachment URI which your self-created PscConnection should use as target.
2668
+ """
2669
+ return pulumi.get(self, "service_attachment")
2670
+
2671
+
1813
2672
  @pulumi.output_type
1814
2673
  class GetInstancePscAutoConnectionResult(dict):
1815
2674
  def __init__(__self__, *,
@@ -1959,15 +2818,37 @@ class GetInstanceStateInfoResult(dict):
1959
2818
  @pulumi.output_type
1960
2819
  class GetInstanceStateInfoUpdateInfoResult(dict):
1961
2820
  def __init__(__self__, *,
2821
+ target_engine_version: str,
2822
+ target_node_type: str,
1962
2823
  target_replica_count: int,
1963
2824
  target_shard_count: int):
1964
2825
  """
2826
+ :param str target_engine_version: Output only. Target engine version for the instance.
2827
+ :param str target_node_type: Output only. Target node type for the instance.
1965
2828
  :param int target_replica_count: Output only. Target number of replica nodes per shard for the instance.
1966
2829
  :param int target_shard_count: Output only. Target number of shards for the instance.
1967
2830
  """
2831
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
2832
+ pulumi.set(__self__, "target_node_type", target_node_type)
1968
2833
  pulumi.set(__self__, "target_replica_count", target_replica_count)
1969
2834
  pulumi.set(__self__, "target_shard_count", target_shard_count)
1970
2835
 
2836
+ @property
2837
+ @pulumi.getter(name="targetEngineVersion")
2838
+ def target_engine_version(self) -> str:
2839
+ """
2840
+ Output only. Target engine version for the instance.
2841
+ """
2842
+ return pulumi.get(self, "target_engine_version")
2843
+
2844
+ @property
2845
+ @pulumi.getter(name="targetNodeType")
2846
+ def target_node_type(self) -> str:
2847
+ """
2848
+ Output only. Target node type for the instance.
2849
+ """
2850
+ return pulumi.get(self, "target_node_type")
2851
+
1971
2852
  @property
1972
2853
  @pulumi.getter(name="targetReplicaCount")
1973
2854
  def target_replica_count(self) -> int: