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
@@ -15,8 +15,26 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'InstanceCrossInstanceReplicationConfigArgs',
19
+ 'InstanceCrossInstanceReplicationConfigArgsDict',
20
+ 'InstanceCrossInstanceReplicationConfigMembershipArgs',
21
+ 'InstanceCrossInstanceReplicationConfigMembershipArgsDict',
22
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs',
23
+ 'InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict',
24
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs',
25
+ 'InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict',
26
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs',
27
+ 'InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict',
28
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs',
29
+ 'InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict',
18
30
  'InstanceDesiredPscAutoConnectionArgs',
19
31
  'InstanceDesiredPscAutoConnectionArgsDict',
32
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgs',
33
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict',
34
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs',
35
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict',
36
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs',
37
+ 'InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict',
20
38
  'InstanceDiscoveryEndpointArgs',
21
39
  'InstanceDiscoveryEndpointArgsDict',
22
40
  'InstanceEndpointArgs',
@@ -41,6 +59,8 @@ __all__ = [
41
59
  'InstancePersistenceConfigAofConfigArgsDict',
42
60
  'InstancePersistenceConfigRdbConfigArgs',
43
61
  'InstancePersistenceConfigRdbConfigArgsDict',
62
+ 'InstancePscAttachmentDetailArgs',
63
+ 'InstancePscAttachmentDetailArgsDict',
44
64
  'InstancePscAutoConnectionArgs',
45
65
  'InstancePscAutoConnectionArgsDict',
46
66
  'InstanceStateInfoArgs',
@@ -53,6 +73,420 @@ __all__ = [
53
73
 
54
74
  MYPY = False
55
75
 
76
+ if not MYPY:
77
+ class InstanceCrossInstanceReplicationConfigArgsDict(TypedDict):
78
+ instance_role: NotRequired[pulumi.Input[str]]
79
+ """
80
+ The instance role supports the following values:
81
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
82
+ 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.
83
+ 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.
84
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
85
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
86
+ """
87
+ memberships: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgsDict']]]]
88
+ """
89
+ (Output)
90
+ 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.
91
+ Structure is documented below.
92
+ """
93
+ primary_instance: NotRequired[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict']]
94
+ """
95
+ 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`.
96
+ Structure is documented below.
97
+ """
98
+ secondary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict']]]]
99
+ """
100
+ 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`.
101
+ Structure is documented below.
102
+ """
103
+ update_time: NotRequired[pulumi.Input[str]]
104
+ """
105
+ (Output)
106
+ The last time cross instance replication config was updated.
107
+ """
108
+ elif False:
109
+ InstanceCrossInstanceReplicationConfigArgsDict: TypeAlias = Mapping[str, Any]
110
+
111
+ @pulumi.input_type
112
+ class InstanceCrossInstanceReplicationConfigArgs:
113
+ def __init__(__self__, *,
114
+ instance_role: Optional[pulumi.Input[str]] = None,
115
+ memberships: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]] = None,
116
+ primary_instance: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']] = None,
117
+ secondary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]] = None,
118
+ update_time: Optional[pulumi.Input[str]] = None):
119
+ """
120
+ :param pulumi.Input[str] instance_role: The instance role supports the following values:
121
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
122
+ 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.
123
+ 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.
124
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
125
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
126
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]] memberships: (Output)
127
+ 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.
128
+ Structure is documented below.
129
+ :param pulumi.Input['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`.
130
+ Structure is documented below.
131
+ :param pulumi.Input[Sequence[pulumi.Input['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`.
132
+ Structure is documented below.
133
+ :param pulumi.Input[str] update_time: (Output)
134
+ The last time cross instance replication config was updated.
135
+ """
136
+ if instance_role is not None:
137
+ pulumi.set(__self__, "instance_role", instance_role)
138
+ if memberships is not None:
139
+ pulumi.set(__self__, "memberships", memberships)
140
+ if primary_instance is not None:
141
+ pulumi.set(__self__, "primary_instance", primary_instance)
142
+ if secondary_instances is not None:
143
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
144
+ if update_time is not None:
145
+ pulumi.set(__self__, "update_time", update_time)
146
+
147
+ @property
148
+ @pulumi.getter(name="instanceRole")
149
+ def instance_role(self) -> Optional[pulumi.Input[str]]:
150
+ """
151
+ The instance role supports the following values:
152
+ 1. `INSTANCE_ROLE_UNSPECIFIED`: This is an independent instance that has never participated in cross instance replication. It allows both reads and writes.
153
+ 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.
154
+ 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.
155
+ 4. `SECONDARY`: This instance replicates data from the primary instance. It allows only reads.
156
+ Possible values are: `INSTANCE_ROLE_UNSPECIFIED`, `NONE`, `PRIMARY`, `SECONDARY`.
157
+ """
158
+ return pulumi.get(self, "instance_role")
159
+
160
+ @instance_role.setter
161
+ def instance_role(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "instance_role", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def memberships(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]]:
167
+ """
168
+ (Output)
169
+ 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.
170
+ Structure is documented below.
171
+ """
172
+ return pulumi.get(self, "memberships")
173
+
174
+ @memberships.setter
175
+ def memberships(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipArgs']]]]):
176
+ pulumi.set(self, "memberships", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="primaryInstance")
180
+ def primary_instance(self) -> Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']]:
181
+ """
182
+ 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`.
183
+ Structure is documented below.
184
+ """
185
+ return pulumi.get(self, "primary_instance")
186
+
187
+ @primary_instance.setter
188
+ def primary_instance(self, value: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs']]):
189
+ pulumi.set(self, "primary_instance", value)
190
+
191
+ @property
192
+ @pulumi.getter(name="secondaryInstances")
193
+ def secondary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]]:
194
+ """
195
+ 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`.
196
+ Structure is documented below.
197
+ """
198
+ return pulumi.get(self, "secondary_instances")
199
+
200
+ @secondary_instances.setter
201
+ def secondary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs']]]]):
202
+ pulumi.set(self, "secondary_instances", value)
203
+
204
+ @property
205
+ @pulumi.getter(name="updateTime")
206
+ def update_time(self) -> Optional[pulumi.Input[str]]:
207
+ """
208
+ (Output)
209
+ The last time cross instance replication config was updated.
210
+ """
211
+ return pulumi.get(self, "update_time")
212
+
213
+ @update_time.setter
214
+ def update_time(self, value: Optional[pulumi.Input[str]]):
215
+ pulumi.set(self, "update_time", value)
216
+
217
+
218
+ if not MYPY:
219
+ class InstanceCrossInstanceReplicationConfigMembershipArgsDict(TypedDict):
220
+ primary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict']]]]
221
+ """
222
+ Details of the primary instance that is used as the replication source for all the secondary instances.
223
+ """
224
+ secondary_instances: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict']]]]
225
+ """
226
+ List of secondary instances that are replicating from the primary instance.
227
+ """
228
+ elif False:
229
+ InstanceCrossInstanceReplicationConfigMembershipArgsDict: TypeAlias = Mapping[str, Any]
230
+
231
+ @pulumi.input_type
232
+ class InstanceCrossInstanceReplicationConfigMembershipArgs:
233
+ def __init__(__self__, *,
234
+ primary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]] = None,
235
+ secondary_instances: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]] = None):
236
+ """
237
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]] primary_instances: Details of the primary instance that is used as the replication source for all the secondary instances.
238
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]] secondary_instances: List of secondary instances that are replicating from the primary instance.
239
+ """
240
+ if primary_instances is not None:
241
+ pulumi.set(__self__, "primary_instances", primary_instances)
242
+ if secondary_instances is not None:
243
+ pulumi.set(__self__, "secondary_instances", secondary_instances)
244
+
245
+ @property
246
+ @pulumi.getter(name="primaryInstances")
247
+ def primary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]]:
248
+ """
249
+ Details of the primary instance that is used as the replication source for all the secondary instances.
250
+ """
251
+ return pulumi.get(self, "primary_instances")
252
+
253
+ @primary_instances.setter
254
+ def primary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs']]]]):
255
+ pulumi.set(self, "primary_instances", value)
256
+
257
+ @property
258
+ @pulumi.getter(name="secondaryInstances")
259
+ def secondary_instances(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]]:
260
+ """
261
+ List of secondary instances that are replicating from the primary instance.
262
+ """
263
+ return pulumi.get(self, "secondary_instances")
264
+
265
+ @secondary_instances.setter
266
+ def secondary_instances(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs']]]]):
267
+ pulumi.set(self, "secondary_instances", value)
268
+
269
+
270
+ if not MYPY:
271
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict(TypedDict):
272
+ instance: NotRequired[pulumi.Input[str]]
273
+ """
274
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
275
+ """
276
+ uid: NotRequired[pulumi.Input[str]]
277
+ """
278
+ (Output)
279
+ The unique id of the primary instance.
280
+ """
281
+ elif False:
282
+ InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
283
+
284
+ @pulumi.input_type
285
+ class InstanceCrossInstanceReplicationConfigMembershipPrimaryInstanceArgs:
286
+ def __init__(__self__, *,
287
+ instance: Optional[pulumi.Input[str]] = None,
288
+ uid: Optional[pulumi.Input[str]] = None):
289
+ """
290
+ :param pulumi.Input[str] instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
291
+ :param pulumi.Input[str] uid: (Output)
292
+ The unique id of the primary instance.
293
+ """
294
+ if instance is not None:
295
+ pulumi.set(__self__, "instance", instance)
296
+ if uid is not None:
297
+ pulumi.set(__self__, "uid", uid)
298
+
299
+ @property
300
+ @pulumi.getter
301
+ def instance(self) -> Optional[pulumi.Input[str]]:
302
+ """
303
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
304
+ """
305
+ return pulumi.get(self, "instance")
306
+
307
+ @instance.setter
308
+ def instance(self, value: Optional[pulumi.Input[str]]):
309
+ pulumi.set(self, "instance", value)
310
+
311
+ @property
312
+ @pulumi.getter
313
+ def uid(self) -> Optional[pulumi.Input[str]]:
314
+ """
315
+ (Output)
316
+ The unique id of the primary instance.
317
+ """
318
+ return pulumi.get(self, "uid")
319
+
320
+ @uid.setter
321
+ def uid(self, value: Optional[pulumi.Input[str]]):
322
+ pulumi.set(self, "uid", value)
323
+
324
+
325
+ if not MYPY:
326
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict(TypedDict):
327
+ instance: NotRequired[pulumi.Input[str]]
328
+ """
329
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
330
+ """
331
+ uid: NotRequired[pulumi.Input[str]]
332
+ """
333
+ Output only. System assigned, unique identifier for the instance.
334
+ """
335
+ elif False:
336
+ InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
337
+
338
+ @pulumi.input_type
339
+ class InstanceCrossInstanceReplicationConfigMembershipSecondaryInstanceArgs:
340
+ def __init__(__self__, *,
341
+ instance: Optional[pulumi.Input[str]] = None,
342
+ uid: Optional[pulumi.Input[str]] = None):
343
+ """
344
+ :param pulumi.Input[str] instance: The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
345
+ :param pulumi.Input[str] uid: Output only. System assigned, unique identifier for the instance.
346
+ """
347
+ if instance is not None:
348
+ pulumi.set(__self__, "instance", instance)
349
+ if uid is not None:
350
+ pulumi.set(__self__, "uid", uid)
351
+
352
+ @property
353
+ @pulumi.getter
354
+ def instance(self) -> Optional[pulumi.Input[str]]:
355
+ """
356
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
357
+ """
358
+ return pulumi.get(self, "instance")
359
+
360
+ @instance.setter
361
+ def instance(self, value: Optional[pulumi.Input[str]]):
362
+ pulumi.set(self, "instance", value)
363
+
364
+ @property
365
+ @pulumi.getter
366
+ def uid(self) -> Optional[pulumi.Input[str]]:
367
+ """
368
+ Output only. System assigned, unique identifier for the instance.
369
+ """
370
+ return pulumi.get(self, "uid")
371
+
372
+ @uid.setter
373
+ def uid(self, value: Optional[pulumi.Input[str]]):
374
+ pulumi.set(self, "uid", value)
375
+
376
+
377
+ if not MYPY:
378
+ class InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict(TypedDict):
379
+ instance: NotRequired[pulumi.Input[str]]
380
+ """
381
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
382
+ """
383
+ uid: NotRequired[pulumi.Input[str]]
384
+ """
385
+ (Output)
386
+ The unique id of the primary instance.
387
+ """
388
+ elif False:
389
+ InstanceCrossInstanceReplicationConfigPrimaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
390
+
391
+ @pulumi.input_type
392
+ class InstanceCrossInstanceReplicationConfigPrimaryInstanceArgs:
393
+ def __init__(__self__, *,
394
+ instance: Optional[pulumi.Input[str]] = None,
395
+ uid: Optional[pulumi.Input[str]] = None):
396
+ """
397
+ :param pulumi.Input[str] instance: The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
398
+ :param pulumi.Input[str] uid: (Output)
399
+ The unique id of the primary instance.
400
+ """
401
+ if instance is not None:
402
+ pulumi.set(__self__, "instance", instance)
403
+ if uid is not None:
404
+ pulumi.set(__self__, "uid", uid)
405
+
406
+ @property
407
+ @pulumi.getter
408
+ def instance(self) -> Optional[pulumi.Input[str]]:
409
+ """
410
+ The full resource path of the primary instance in the format: projects/{project}/locations/{region}/instances/{instance-id}
411
+ """
412
+ return pulumi.get(self, "instance")
413
+
414
+ @instance.setter
415
+ def instance(self, value: Optional[pulumi.Input[str]]):
416
+ pulumi.set(self, "instance", value)
417
+
418
+ @property
419
+ @pulumi.getter
420
+ def uid(self) -> Optional[pulumi.Input[str]]:
421
+ """
422
+ (Output)
423
+ The unique id of the primary instance.
424
+ """
425
+ return pulumi.get(self, "uid")
426
+
427
+ @uid.setter
428
+ def uid(self, value: Optional[pulumi.Input[str]]):
429
+ pulumi.set(self, "uid", value)
430
+
431
+
432
+ if not MYPY:
433
+ class InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict(TypedDict):
434
+ instance: NotRequired[pulumi.Input[str]]
435
+ """
436
+ (Output)
437
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
438
+ """
439
+ uid: NotRequired[pulumi.Input[str]]
440
+ """
441
+ (Output)
442
+ The unique id of the secondary instance.
443
+ """
444
+ elif False:
445
+ InstanceCrossInstanceReplicationConfigSecondaryInstanceArgsDict: TypeAlias = Mapping[str, Any]
446
+
447
+ @pulumi.input_type
448
+ class InstanceCrossInstanceReplicationConfigSecondaryInstanceArgs:
449
+ def __init__(__self__, *,
450
+ instance: Optional[pulumi.Input[str]] = None,
451
+ uid: Optional[pulumi.Input[str]] = None):
452
+ """
453
+ :param pulumi.Input[str] instance: (Output)
454
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
455
+ :param pulumi.Input[str] uid: (Output)
456
+ The unique id of the secondary instance.
457
+ """
458
+ if instance is not None:
459
+ pulumi.set(__self__, "instance", instance)
460
+ if uid is not None:
461
+ pulumi.set(__self__, "uid", uid)
462
+
463
+ @property
464
+ @pulumi.getter
465
+ def instance(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ (Output)
468
+ The full resource path of the secondary instance in the format: projects/{project}/locations/{region}/instance/{instance-id}
469
+ """
470
+ return pulumi.get(self, "instance")
471
+
472
+ @instance.setter
473
+ def instance(self, value: Optional[pulumi.Input[str]]):
474
+ pulumi.set(self, "instance", value)
475
+
476
+ @property
477
+ @pulumi.getter
478
+ def uid(self) -> Optional[pulumi.Input[str]]:
479
+ """
480
+ (Output)
481
+ The unique id of the secondary instance.
482
+ """
483
+ return pulumi.get(self, "uid")
484
+
485
+ @uid.setter
486
+ def uid(self, value: Optional[pulumi.Input[str]]):
487
+ pulumi.set(self, "uid", value)
488
+
489
+
56
490
  if not MYPY:
57
491
  class InstanceDesiredPscAutoConnectionArgsDict(TypedDict):
58
492
  network: pulumi.Input[str]
@@ -112,6 +546,282 @@ class InstanceDesiredPscAutoConnectionArgs:
112
546
  pulumi.set(self, "project_id", value)
113
547
 
114
548
 
549
+ if not MYPY:
550
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict(TypedDict):
551
+ connections: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict']]]]
552
+ """
553
+ Structure is documented below.
554
+ """
555
+ elif False:
556
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgsDict: TypeAlias = Mapping[str, Any]
557
+
558
+ @pulumi.input_type
559
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointArgs:
560
+ def __init__(__self__, *,
561
+ connections: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]] = None):
562
+ """
563
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]] connections: Structure is documented below.
564
+ """
565
+ if connections is not None:
566
+ pulumi.set(__self__, "connections", connections)
567
+
568
+ @property
569
+ @pulumi.getter
570
+ def connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]]:
571
+ """
572
+ Structure is documented below.
573
+ """
574
+ return pulumi.get(self, "connections")
575
+
576
+ @connections.setter
577
+ def connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs']]]]):
578
+ pulumi.set(self, "connections", value)
579
+
580
+
581
+ if not MYPY:
582
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict(TypedDict):
583
+ psc_connection: NotRequired[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict']]
584
+ """
585
+ Detailed information of a PSC connection that is created by the customer
586
+ who owns the cluster.
587
+ Structure is documented below.
588
+ """
589
+ elif False:
590
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgsDict: TypeAlias = Mapping[str, Any]
591
+
592
+ @pulumi.input_type
593
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionArgs:
594
+ def __init__(__self__, *,
595
+ psc_connection: Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']] = None):
596
+ """
597
+ :param pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs'] psc_connection: Detailed information of a PSC connection that is created by the customer
598
+ who owns the cluster.
599
+ Structure is documented below.
600
+ """
601
+ if psc_connection is not None:
602
+ pulumi.set(__self__, "psc_connection", psc_connection)
603
+
604
+ @property
605
+ @pulumi.getter(name="pscConnection")
606
+ def psc_connection(self) -> Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']]:
607
+ """
608
+ Detailed information of a PSC connection that is created by the customer
609
+ who owns the cluster.
610
+ Structure is documented below.
611
+ """
612
+ return pulumi.get(self, "psc_connection")
613
+
614
+ @psc_connection.setter
615
+ def psc_connection(self, value: Optional[pulumi.Input['InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs']]):
616
+ pulumi.set(self, "psc_connection", value)
617
+
618
+
619
+ if not MYPY:
620
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict(TypedDict):
621
+ forwarding_rule: pulumi.Input[str]
622
+ """
623
+ The URI of the consumer side forwarding rule.
624
+ Format:
625
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
626
+ """
627
+ ip_address: pulumi.Input[str]
628
+ """
629
+ The IP allocated on the consumer network for the PSC forwarding rule.
630
+ """
631
+ network: pulumi.Input[str]
632
+ """
633
+ The consumer network where the IP address resides, in the form of
634
+ projects/{project_id}/global/networks/{network_id}.
635
+ """
636
+ psc_connection_id: pulumi.Input[str]
637
+ """
638
+ The PSC connection id of the forwarding rule connected to the
639
+ service attachment.
640
+ """
641
+ service_attachment: pulumi.Input[str]
642
+ """
643
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
644
+ """
645
+ connection_type: NotRequired[pulumi.Input[str]]
646
+ """
647
+ (Output)
648
+ Output Only. Type of a PSC Connection.
649
+ Possible values:
650
+ CONNECTION_TYPE_DISCOVERY
651
+ CONNECTION_TYPE_PRIMARY
652
+ CONNECTION_TYPE_READER
653
+ """
654
+ project_id: NotRequired[pulumi.Input[str]]
655
+ """
656
+ The consumer project_id where the forwarding rule is created from.
657
+ """
658
+ psc_connection_status: NotRequired[pulumi.Input[str]]
659
+ """
660
+ (Output)
661
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
662
+ Possible values:
663
+ ACTIVE
664
+ NOT_FOUND
665
+ """
666
+ elif False:
667
+ InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgsDict: TypeAlias = Mapping[str, Any]
668
+
669
+ @pulumi.input_type
670
+ class InstanceDesiredUserCreatedEndpointsDesiredUserCreatedEndpointConnectionPscConnectionArgs:
671
+ def __init__(__self__, *,
672
+ forwarding_rule: pulumi.Input[str],
673
+ ip_address: pulumi.Input[str],
674
+ network: pulumi.Input[str],
675
+ psc_connection_id: pulumi.Input[str],
676
+ service_attachment: pulumi.Input[str],
677
+ connection_type: Optional[pulumi.Input[str]] = None,
678
+ project_id: Optional[pulumi.Input[str]] = None,
679
+ psc_connection_status: Optional[pulumi.Input[str]] = None):
680
+ """
681
+ :param pulumi.Input[str] forwarding_rule: The URI of the consumer side forwarding rule.
682
+ Format:
683
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
684
+ :param pulumi.Input[str] ip_address: The IP allocated on the consumer network for the PSC forwarding rule.
685
+ :param pulumi.Input[str] network: The consumer network where the IP address resides, in the form of
686
+ projects/{project_id}/global/networks/{network_id}.
687
+ :param pulumi.Input[str] psc_connection_id: The PSC connection id of the forwarding rule connected to the
688
+ service attachment.
689
+ :param pulumi.Input[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}.
690
+ :param pulumi.Input[str] connection_type: (Output)
691
+ Output Only. Type of a PSC Connection.
692
+ Possible values:
693
+ CONNECTION_TYPE_DISCOVERY
694
+ CONNECTION_TYPE_PRIMARY
695
+ CONNECTION_TYPE_READER
696
+ :param pulumi.Input[str] project_id: The consumer project_id where the forwarding rule is created from.
697
+ :param pulumi.Input[str] psc_connection_status: (Output)
698
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
699
+ Possible values:
700
+ ACTIVE
701
+ NOT_FOUND
702
+ """
703
+ pulumi.set(__self__, "forwarding_rule", forwarding_rule)
704
+ pulumi.set(__self__, "ip_address", ip_address)
705
+ pulumi.set(__self__, "network", network)
706
+ pulumi.set(__self__, "psc_connection_id", psc_connection_id)
707
+ pulumi.set(__self__, "service_attachment", service_attachment)
708
+ if connection_type is not None:
709
+ pulumi.set(__self__, "connection_type", connection_type)
710
+ if project_id is not None:
711
+ pulumi.set(__self__, "project_id", project_id)
712
+ if psc_connection_status is not None:
713
+ pulumi.set(__self__, "psc_connection_status", psc_connection_status)
714
+
715
+ @property
716
+ @pulumi.getter(name="forwardingRule")
717
+ def forwarding_rule(self) -> pulumi.Input[str]:
718
+ """
719
+ The URI of the consumer side forwarding rule.
720
+ Format:
721
+ projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}
722
+ """
723
+ return pulumi.get(self, "forwarding_rule")
724
+
725
+ @forwarding_rule.setter
726
+ def forwarding_rule(self, value: pulumi.Input[str]):
727
+ pulumi.set(self, "forwarding_rule", value)
728
+
729
+ @property
730
+ @pulumi.getter(name="ipAddress")
731
+ def ip_address(self) -> pulumi.Input[str]:
732
+ """
733
+ The IP allocated on the consumer network for the PSC forwarding rule.
734
+ """
735
+ return pulumi.get(self, "ip_address")
736
+
737
+ @ip_address.setter
738
+ def ip_address(self, value: pulumi.Input[str]):
739
+ pulumi.set(self, "ip_address", value)
740
+
741
+ @property
742
+ @pulumi.getter
743
+ def network(self) -> pulumi.Input[str]:
744
+ """
745
+ The consumer network where the IP address resides, in the form of
746
+ projects/{project_id}/global/networks/{network_id}.
747
+ """
748
+ return pulumi.get(self, "network")
749
+
750
+ @network.setter
751
+ def network(self, value: pulumi.Input[str]):
752
+ pulumi.set(self, "network", value)
753
+
754
+ @property
755
+ @pulumi.getter(name="pscConnectionId")
756
+ def psc_connection_id(self) -> pulumi.Input[str]:
757
+ """
758
+ The PSC connection id of the forwarding rule connected to the
759
+ service attachment.
760
+ """
761
+ return pulumi.get(self, "psc_connection_id")
762
+
763
+ @psc_connection_id.setter
764
+ def psc_connection_id(self, value: pulumi.Input[str]):
765
+ pulumi.set(self, "psc_connection_id", value)
766
+
767
+ @property
768
+ @pulumi.getter(name="serviceAttachment")
769
+ def service_attachment(self) -> pulumi.Input[str]:
770
+ """
771
+ The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.
772
+ """
773
+ return pulumi.get(self, "service_attachment")
774
+
775
+ @service_attachment.setter
776
+ def service_attachment(self, value: pulumi.Input[str]):
777
+ pulumi.set(self, "service_attachment", value)
778
+
779
+ @property
780
+ @pulumi.getter(name="connectionType")
781
+ def connection_type(self) -> Optional[pulumi.Input[str]]:
782
+ """
783
+ (Output)
784
+ Output Only. Type of a PSC Connection.
785
+ Possible values:
786
+ CONNECTION_TYPE_DISCOVERY
787
+ CONNECTION_TYPE_PRIMARY
788
+ CONNECTION_TYPE_READER
789
+ """
790
+ return pulumi.get(self, "connection_type")
791
+
792
+ @connection_type.setter
793
+ def connection_type(self, value: Optional[pulumi.Input[str]]):
794
+ pulumi.set(self, "connection_type", value)
795
+
796
+ @property
797
+ @pulumi.getter(name="projectId")
798
+ def project_id(self) -> Optional[pulumi.Input[str]]:
799
+ """
800
+ The consumer project_id where the forwarding rule is created from.
801
+ """
802
+ return pulumi.get(self, "project_id")
803
+
804
+ @project_id.setter
805
+ def project_id(self, value: Optional[pulumi.Input[str]]):
806
+ pulumi.set(self, "project_id", value)
807
+
808
+ @property
809
+ @pulumi.getter(name="pscConnectionStatus")
810
+ def psc_connection_status(self) -> Optional[pulumi.Input[str]]:
811
+ """
812
+ (Output)
813
+ Output Only. The status of the PSC connection: whether a connection exists and ACTIVE or it no longer exists.
814
+ Possible values:
815
+ ACTIVE
816
+ NOT_FOUND
817
+ """
818
+ return pulumi.get(self, "psc_connection_status")
819
+
820
+ @psc_connection_status.setter
821
+ def psc_connection_status(self, value: Optional[pulumi.Input[str]]):
822
+ pulumi.set(self, "psc_connection_status", value)
823
+
824
+
115
825
  if not MYPY:
116
826
  class InstanceDiscoveryEndpointArgsDict(TypedDict):
117
827
  address: NotRequired[pulumi.Input[str]]
@@ -1142,6 +1852,76 @@ class InstancePersistenceConfigRdbConfigArgs:
1142
1852
  pulumi.set(self, "rdb_snapshot_start_time", value)
1143
1853
 
1144
1854
 
1855
+ if not MYPY:
1856
+ class InstancePscAttachmentDetailArgsDict(TypedDict):
1857
+ connection_type: NotRequired[pulumi.Input[str]]
1858
+ """
1859
+ (Output)
1860
+ Output Only. Type of a PSC Connection.
1861
+ Possible values:
1862
+ CONNECTION_TYPE_DISCOVERY
1863
+ CONNECTION_TYPE_PRIMARY
1864
+ CONNECTION_TYPE_READER
1865
+ """
1866
+ service_attachment: NotRequired[pulumi.Input[str]]
1867
+ """
1868
+ (Output)
1869
+ 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}.
1870
+ """
1871
+ elif False:
1872
+ InstancePscAttachmentDetailArgsDict: TypeAlias = Mapping[str, Any]
1873
+
1874
+ @pulumi.input_type
1875
+ class InstancePscAttachmentDetailArgs:
1876
+ def __init__(__self__, *,
1877
+ connection_type: Optional[pulumi.Input[str]] = None,
1878
+ service_attachment: Optional[pulumi.Input[str]] = None):
1879
+ """
1880
+ :param pulumi.Input[str] connection_type: (Output)
1881
+ Output Only. Type of a PSC Connection.
1882
+ Possible values:
1883
+ CONNECTION_TYPE_DISCOVERY
1884
+ CONNECTION_TYPE_PRIMARY
1885
+ CONNECTION_TYPE_READER
1886
+ :param pulumi.Input[str] service_attachment: (Output)
1887
+ 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}.
1888
+ """
1889
+ if connection_type is not None:
1890
+ pulumi.set(__self__, "connection_type", connection_type)
1891
+ if service_attachment is not None:
1892
+ pulumi.set(__self__, "service_attachment", service_attachment)
1893
+
1894
+ @property
1895
+ @pulumi.getter(name="connectionType")
1896
+ def connection_type(self) -> Optional[pulumi.Input[str]]:
1897
+ """
1898
+ (Output)
1899
+ Output Only. Type of a PSC Connection.
1900
+ Possible values:
1901
+ CONNECTION_TYPE_DISCOVERY
1902
+ CONNECTION_TYPE_PRIMARY
1903
+ CONNECTION_TYPE_READER
1904
+ """
1905
+ return pulumi.get(self, "connection_type")
1906
+
1907
+ @connection_type.setter
1908
+ def connection_type(self, value: Optional[pulumi.Input[str]]):
1909
+ pulumi.set(self, "connection_type", value)
1910
+
1911
+ @property
1912
+ @pulumi.getter(name="serviceAttachment")
1913
+ def service_attachment(self) -> Optional[pulumi.Input[str]]:
1914
+ """
1915
+ (Output)
1916
+ 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}.
1917
+ """
1918
+ return pulumi.get(self, "service_attachment")
1919
+
1920
+ @service_attachment.setter
1921
+ def service_attachment(self, value: Optional[pulumi.Input[str]]):
1922
+ pulumi.set(self, "service_attachment", value)
1923
+
1924
+
1145
1925
  if not MYPY:
1146
1926
  class InstancePscAutoConnectionArgsDict(TypedDict):
1147
1927
  connection_type: NotRequired[pulumi.Input[str]]
@@ -1434,6 +2214,16 @@ class InstanceStateInfoArgs:
1434
2214
 
1435
2215
  if not MYPY:
1436
2216
  class InstanceStateInfoUpdateInfoArgsDict(TypedDict):
2217
+ target_engine_version: NotRequired[pulumi.Input[str]]
2218
+ """
2219
+ (Output)
2220
+ Output only. Target engine version for the instance.
2221
+ """
2222
+ target_node_type: NotRequired[pulumi.Input[str]]
2223
+ """
2224
+ (Output)
2225
+ Output only. Target node type for the instance.
2226
+ """
1437
2227
  target_replica_count: NotRequired[pulumi.Input[int]]
1438
2228
  """
1439
2229
  (Output)
@@ -1450,19 +2240,55 @@ elif False:
1450
2240
  @pulumi.input_type
1451
2241
  class InstanceStateInfoUpdateInfoArgs:
1452
2242
  def __init__(__self__, *,
2243
+ target_engine_version: Optional[pulumi.Input[str]] = None,
2244
+ target_node_type: Optional[pulumi.Input[str]] = None,
1453
2245
  target_replica_count: Optional[pulumi.Input[int]] = None,
1454
2246
  target_shard_count: Optional[pulumi.Input[int]] = None):
1455
2247
  """
2248
+ :param pulumi.Input[str] target_engine_version: (Output)
2249
+ Output only. Target engine version for the instance.
2250
+ :param pulumi.Input[str] target_node_type: (Output)
2251
+ Output only. Target node type for the instance.
1456
2252
  :param pulumi.Input[int] target_replica_count: (Output)
1457
2253
  Output only. Target number of replica nodes per shard for the instance.
1458
2254
  :param pulumi.Input[int] target_shard_count: (Output)
1459
2255
  Output only. Target number of shards for the instance.
1460
2256
  """
2257
+ if target_engine_version is not None:
2258
+ pulumi.set(__self__, "target_engine_version", target_engine_version)
2259
+ if target_node_type is not None:
2260
+ pulumi.set(__self__, "target_node_type", target_node_type)
1461
2261
  if target_replica_count is not None:
1462
2262
  pulumi.set(__self__, "target_replica_count", target_replica_count)
1463
2263
  if target_shard_count is not None:
1464
2264
  pulumi.set(__self__, "target_shard_count", target_shard_count)
1465
2265
 
2266
+ @property
2267
+ @pulumi.getter(name="targetEngineVersion")
2268
+ def target_engine_version(self) -> Optional[pulumi.Input[str]]:
2269
+ """
2270
+ (Output)
2271
+ Output only. Target engine version for the instance.
2272
+ """
2273
+ return pulumi.get(self, "target_engine_version")
2274
+
2275
+ @target_engine_version.setter
2276
+ def target_engine_version(self, value: Optional[pulumi.Input[str]]):
2277
+ pulumi.set(self, "target_engine_version", value)
2278
+
2279
+ @property
2280
+ @pulumi.getter(name="targetNodeType")
2281
+ def target_node_type(self) -> Optional[pulumi.Input[str]]:
2282
+ """
2283
+ (Output)
2284
+ Output only. Target node type for the instance.
2285
+ """
2286
+ return pulumi.get(self, "target_node_type")
2287
+
2288
+ @target_node_type.setter
2289
+ def target_node_type(self, value: Optional[pulumi.Input[str]]):
2290
+ pulumi.set(self, "target_node_type", value)
2291
+
1466
2292
  @property
1467
2293
  @pulumi.getter(name="targetReplicaCount")
1468
2294
  def target_replica_count(self) -> Optional[pulumi.Input[int]]: